第一章:Azure Monitor 概述与核心组件

说到 Azure 监控,我个人最喜欢的还是 Azure Monitor。它是我日常巡检、排障时最常用的工具。说白了,Azure Monitor 就是一个统一的数据收集、分析、报警平台。它把 Azure 上所有资源产生的日志、性能计数器、事件、自定义指标全拉到一个池子里,方便你集中查看。

我记得刚接手一个大客户的 Azure 环境时,光诊断设置就配了上百条,日志分散在十几个存储账户里,想查个特定故障点得翻好几个地方。后来用 Azure Monitor 一整合,世界清静了。

1.1 Azure Monitor 的定位与价值

Azure Monitor 不是单打独斗的工具。它跟 Azure 各类服务深度绑定——虚拟机、AKS、数据库、应用网关,甚至本地服务器都能接入。你不需要在每台机器上重复装代理,也不用自己在脚本里拼凑日志。它帮你干三件事:

  • 收集:自动从 Azure 资源拉取平台日志、指标,也支持自定义来源。
  • 存储与分析:Log Analytics Workspace 就是日志的“大本营”,支持 KQL 查询。
  • 响应:你可以在数据上创建告警规则,触发自动动作或通知。

核心价值点:把分散的数据集中到一个查询引擎里,用 KQL(Kusto 查询语言)就能做跨资源、跨订阅的分析。我经常用它做容量趋势分析——几行 KQL 就搞定了三个月的数据聚合。

1.2 核心组件一览

Azure Monitor 的组件挺多,但我把它拆成五个核心部分。下面这张图能帮你快速建立印象:

Azure Monitor 核心组件架构图 数据源(Azure 资源、本地) 数据收集(诊断设置、代理、API) Log Analytics Workspace 日志 + 文本数据 Azure Monitor 指标 数值型时间序列 查询与分析(KQL、工作簿) 告警规则 & 自动化 仪表板 & 工作簿 说明: 数据收集层支持多种来源:诊断设置(平台日志)、Azure Monitor Agent(性能)、 REST API(自定义维度)、Data Collector API(自定义日志)。 存储与分析紧密关联,指标自动保留 30 天(可配置),日志保留按 workspace 定价层设定。

1.3 五大组件详解

1.3.1 Log Analytics Workspace

这就是日志的“宅基地”。所有 Azure 平台的诊断日志、活动日志、安全日志、自定义数据都会流到这里。你可以把 Workspace 理解成一个数据库——表结构可拓展,你还可以用 KQL 做 join 或跨表查询。

我之前踩过一个坑:给所有虚拟机配了诊断设置,但忘了把 Workspace 配在同一个区域,导致数据跨境传输成本飙升。嗯,这里要注意——Log Analytics Workspace 尽量部署在资源所在的区域,不然流量费会让你心痛。

Workspace 定价层对比
定价层数据保留适用于
免费层(已弃用)7 天测试,不推荐生产
按量付费30 天起,可增加到 730 天小型项目、开发环境
预留容量与按量付费一致高频查询、大数据量业务

1.3.2 Azure Monitor 指标

指标是最轻量的监控方式。每台虚拟机默认都有 CPU、内存、磁盘 IO 等指标,你甚至不需要装代理。这些指标按分钟级粒度收集,自动保留 30 天(超过 30 天需要路由到 Log Analytics)。

我个人习惯用指标来设“快速告警”——比如当 CPU 超过 90% 持续 5 分钟,立刻触发告警。因为它延迟低、费用也低,适合做阈值型报警。

1.3.3 工作簿 (Workbooks)

工作簿就像一个交互式报表。你可以把 KQL 查询的结果直接绘制成表格或图表,还能添加参数让其他人筛选时间范围或资源组。我经常在排障时先用工作簿把相关指标和日志放在同一个页面,一眼就能看出异常关联。

小技巧:我建议把常用的排障查询做成工作簿模板,团队内共享。比如“VM 异常排查工作簿”包含性能计数器、应用日志、Azure 活动日志,直接复制一份就能用。

1.3.4 告警规则 (Alerts)

告警规则是监控的出口。你可以在指标或者日志查询上创建规则,条件满足时触发邮件、短信、Webhook 或自动化 Runbook。配置时要注意“静默时间”——我曾经在凌晨两点被一个重复告警吵醒,后来加了个“降噪”动作,只在业务时段发送邮件。

1.3.5 视图与仪表板

Azure 门户自带的仪表板可以把上述所有组件的可视化内容钉在一起。你也可以使用 Azure Dashboards 或者 Grafana(需要连接 Azure Monitor 数据源)。我个人比较偏爱 Grafana,因为它对时序图的展示更灵活,能画告警线、趋势线。

1.4 常见集成场景

说几个我实际遇到过的场景:

  • VM 监控:安装 Azure Monitor Agent,搭配诊断设置拉取 Windows 事件和 Syslog,用工作簿展示 CPU、内存、磁盘变化,并设置 CPU > 90% 告警。
  • Web 应用监控:为 App Service 开启 Application Insights,把请求率、响应时间、异常栈写入 Log Analytics,用 KQL 统计错误率。
  • 混合环境监控:通过 Azure Arc 把本地服务器注册到 Azure,再配置 Log Analytics Agent 推送日志。我曾经在客户机房配了一个 Arc 网关,数据就能统一进 workspace。

注意:不管用哪种集成方式,一定要先算好数据量。有些客户把所有调试日志都丢进 workspace,每月费用翻了好几倍。建议在诊断设置中只选择必要的日志类别,并配置合理的保留天数。

1.5 架构小结

本章的内容就这些。总结一下:Azure Monitor 的核心就是“采-存-查-报-动”。数据经过收集层进入 Log Analytics 或指标存储,然后通过 KQL 或工作簿分析,最后通过告警和仪表板输出价值。我在实际工作中几乎每天都离不开它——不管是排查应用慢的问题,还是分析资源利用率,Azure Monitor 都是第一站。