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