📌  相关文章
📜  Microsoft Azure – 跨订阅范围内的 VM CPU 利用率(1)

📅  最后修改于: 2023-12-03 15:17:38.433000             🧑  作者: Mango

Microsoft Azure – 跨订阅范围内的 VM CPU 利用率

在 Microsoft Azure 上,我们可以创建和管理虚拟机 (VM) 来托管我们的应用程序和服务。VM 可以是单个订阅内的,也可以跨越多个订阅。

当我们管理多个订阅时,需要一种在跨订阅范围内检查 VM CPU 利用率的方法。本文将介绍如何在 Microsoft Azure 中实现这一目标。

1. 使用 Azure Monitor 监视 VM

Azure Monitor 是一个在 Azure 中开箱即用的服务,可以帮助我们监视不同资源的性能、诊断问题、设置警报等。在 VM 上使用 Azure Monitor 可以帮助我们监视 VM 的 CPU 利用率。

要启用 VM 的监视,需要创建一个监视策略。以下是一个示例 PowerShell 脚本,用于创建一个监视策略,该策略将监视指定订阅中所有 VM 的 CPU 利用率并生成警报:

# 连接到 Azure 订阅
Connect-AzAccount

# 指定要监视的订阅 ID
$subscriptionId = "YOUR_SUBSCRIPTION_ID"

# 创建监视策略
$alertRule = New-AzMetricAlertRuleV2 `
  -Name "VM CPU Usage" `
  -Location "global" `
  -ResourceScope "/subscriptions/$subscriptionId" `
  -Description "Alert on high CPU usage on any VM" `
  -WindowSize "00:05:00" `
  -Criteria `
    "{\"odata.type\":\"Microsoft.Azure.Monitor.Web.Models.MicrosoftThresholdCriteria\",\"dataSource\":\"microsoft.insights/metrics\",\"metricName\":\"Percentage CPU\",\"operator\":\"GreaterThan\",\"threshold\":80,\"timeAggregation\":\"Average\",\"dimensions\":\"[{'name':'ComputerName','value':'*'}]\",\"metricNamespace\":\"microsoft.compute/virtualmachines\",\"windowSize\":\"00:05:00\",\"evaluationFrequency\":\"00:01:00\"}" `
  -Actions `
    (New-AzAlertRuleEmail -CustomEmails "youremail@example.com" | New-AzAlertRuleEmail -CustomEmails "yourotheremail@example.com")

该脚本会创建一个名为“VM CPU Usage”的新监视策略,并在订阅中的所有 VM 上设置警报。警报将在任何 VM 的 CPU 利用率超过 80% 时触发,并发送电子邮件到指定的自定义电子邮件地址。

2. 使用 Azure Log Analytics 查询 VM CPU 利用率

Azure Log Analytics 是一个用于存储、分析和可视化日志数据的服务。我们可以将 VM 的性能计数器数据发送到 Log Analytics,并使用 Log Analytics 查询语言 (Kusto) 来查询和分析这些数据。

以下是一个示例 Kusto 查询,该查询会返回指定订阅中所有 VM 的平均 CPU 利用率:

Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName != "_Total"
| summarize avg(CounterValue) by Computer, bin(TimeGenerated, 5m)

该查询将返回一个表格,其中列出了所有 VM 的计算机名称 (Computer)、时间戳 (TimeGenerated) 和平均 CPU 利用率 (avg_CounterValue)。

结论

在 Microsoft Azure 中跨订阅范围内监视 VM 的 CPU 利用率可以通过使用 Azure Monitor 或 Log Analytics 来实现。使用 PowerShell 和 Azure Monitor 的组合可以帮助我们轻松地设置警报和通知,以便在发生问题时快速采取行动。使用 Log Analytics 可以帮助我们更深入地分析 VM 的性能并提供灵活的可视化选项。