Microsoft Azure – 使用 KQL 日志查询跟踪 Azure 虚拟机的 CPU 利用率
在本文中,我们将研究使用 KQL 日志查询查找所有 Azure 虚拟机的最小、平均和最大 CPU 利用率的过程。
此处 Perf KQL Counter Operator 用于从收集的数据日志中查找 Azure 虚拟机的性能。
执行:
按照以下步骤运行日志查询。
步骤 1:登录到 Azure 门户。
第 2 步:搜索/转到Log Analytics 工作区并选择您的Log Analytics 工作区。如果您没有,请创建一个并启用代理配置。
- 然后,从左侧菜单导航到General >> Logs。
现在,粘贴以下查询以获取日志数据。
在运行查询之前了解查询语法。
以下所有示例的说明:
这里, Perf代表性能,这是一个运算符,用于获取 Azure Compute 资源(如 Azure VM、SQL Server、磁盘存储等)的性能日志。
我们使用ObjectName == “Processor” 和 CounterName == “% Processor Time”这两个条件都使用where关键字过滤 Windows 和 Linux VM 的进程组件。
TimeGenerated > ago(7d) 或 TimeGenerated > ago(5h)有助于过滤在该时间跨度内收集的日志。
使用summarise关键字,我们以表格图表的形式呈现所需的数据。
用于分析 Azure VM 的 CPU 性能的 KQL 查询。
示例:查找过去 7 天 Azure 虚拟机的最低 CPU 利用率。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(7d)
| summarize MIN_CPU = min(CounterValue) by Computer, _ResourceId
输出:
示例:查找过去 5 小时内 Azure 虚拟机的最低 CPU 利用率
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(5h)
| summarize MIN_CPU = min(CounterValue) by Computer, _ResourceId
输出:
示例:查找过去 7 天 Azure 虚拟机的平均 CPU 利用率
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(7d)
| summarize AVG_CPU = avg(CounterValue) by Computer, _ResourceId
输出:
示例:查找过去 5 小时内 Azure 虚拟机的平均 CPU 利用率。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(5h)
| summarize AVG_CPU = avg(CounterValue) by Computer, _ResourceId
输出:
示例:查找过去 7 天 Azure 虚拟机的最大 CPU 利用率。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(7d)
| summarize MAX_CPU = max(CounterValue) by Computer, _ResourceId
输出:
示例:查找过去 5 小时内 Azure 虚拟机的最大 CPU 利用率。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(2h)
| summarize MAX_CPU = max(CounterValue) by Computer, _ResourceId
输出:
示例:在单个表格图表中分析最近 7 天的 VM CPU 利用率最小值、平均值和最大值。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(7d)
| summarize MIN_CPU = min(CounterValue), AVG_CPU = avg(CounterValue), MAX_CPU = max(CounterValue) by Computer, _ResourceId
输出:
示例:在单个表格图表中分析过去 5 小时的 VM CPU 利用率最小值、平均值和最大值。
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time" and InstanceName == "_Total"
| where TimeGenerated > ago(5h)
| summarize MIN_CPU = min(CounterValue), AVG_CPU = avg(CounterValue), MAX_CPU = max(CounterValue) by Computer, _ResourceId
输出:
注意:此过程适用于两种操作系统类型。即,Windows 和 Linux。
就是这样,我们完成了。