Skip to content

使用 Python 自动查询 Azure Monitor 日志与指标

解决云端运维手动查询低效的问题:通过集成 Azure Monitor Query SDK,实现通过 Python 脚本自动提取 Log Analytics 日志和资源指标,支持数据分析与自动化告警。

为什么需要这个技能

在管理 Azure 云资源时,通过 Azure 门户界面手动运行 KQL (Kusto Query Language) 查询虽然直观,但在处理大规模数据分析、定期生成运维报告或构建自定义监控面板时效率低下。

通过该 SDK,开发者可以将复杂的 Kusto 查询逻辑集成到 Python 工作流中。这意味着你可以将查询结果直接转换为 Pandas DataFrame 进行深度分析,或者利用异步客户端在短时间内并发请求大量指标数据,从而将监控从“手动巡检”升级为“自动化分析”。

适用场景

  • 自动化运维报告:每天定时提取 AppRequests 错误率并发送至团队邮件。
  • 性能趋势分析:将 CPU 和网络 IO 指标导出到 Dataframe,进行时间序列预测。
  • 故障快速定位:编写脚本快速筛选出过去一小时内 DurationMs > 1000ms 的慢请求。
  • 多资源批量监控:利用批处理查询(Batch Query)同时检查多个工作区的运行状态。

核心工作流

1. 环境准备与认证

安装 SDK 并配置必要的环境变量(工作区 ID 和资源 URI),使用 DefaultAzureCredential 实现无缝认证。

bash
pip install azure-monitor-query
python
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()

2. 日志查询 (LogsQueryClient)

编写 KQL 语句,通过 query_workspace 获取结果。若结果集较大,可通过 LogsQueryStatus 处理部分返回结果。

python
from azure.monitor.query import LogsQueryClient
from datetime import timedelta

client = LogsQueryClient(credential)
query = "AppRequests | where TimeGenerated > ago(1h) | summarize count() by ResultCode"

response = client.query_workspace(
    workspace_id="你的workspace-id",
    query=query,
    timespan=timedelta(hours=1)
)

3. 指标查询 (MetricsQueryClient)

针对特定资源 URI 查询性能指标,支持定义聚合方式(平均值、最大值等)和维度过滤。

python
from azure.monitor.query import MetricsQueryClient

metrics_client = MetricsQueryClient(credential)
response = metrics_client.query_resource(
    resource_uri="你的resource-uri",
    metric_names=["Percentage CPU"],
    timespan=timedelta(hours=1),
    granularity=timedelta(minutes=5)
)

下载和安装

下载 azure-monitor-query-py 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐