跳至主要内容

Azure Monitor 入门:关键功能与最佳实践

了解 Azure Monitor 的关键功能和最佳实践,以优化资源使用与成本,确保合规,并解决性能或安全问题。
· 11分钟 阅读

使用 AI 探索

监控您的云环境对于维持性能、安全性和可靠性至关重要。在微软的云平台 Azure 中,您将使用 Azure Monitor 来确保资源和应用平稳运行。

Azure Monitor 是一项全面的监控服务,可帮助您了解云环境的运行状况,并主动识别问题。

监控您的 Azure 环境有助于优化资源使用和成本、确保合规,并快速解决性能或安全问题。

在本教程中,您将了解 Azure Monitor 的基础知识、如何进行设置,以及如何将其用于性能监控、成本管理、安全和合规等方面。

什么是 Azure Monitor?

Azure Monitor 用于收集资源数据,并对这些数据进行分析和可视化,以监控性能并识别问题。

The Azure Monitor overview screen

Azure Monitor

Azure Monitor 有三个核心组件:

  • Application Insights:用于监控 Web 应用。
  • Log Analytics:用于查询和分析记录的事件数据。
  • 警报(Alerts):用于在检测到问题时设置自动通知和操作。

如果您想试用 Azure Monitor,最简单的方法是注册 Azure 免费账户或 Azure 学生账户。这将为您提供对包括 Monitor 在内的热门 Azure 服务的 12 个月免费访问。

免费期结束后,您将回到 Azure 的主要定价模式,即按需付费(pay-as-you-go)。按需付费是一种基于使用量的定价模式,意味着您只需为实际使用付费。此外,Azure 还为某些服务提供每月免费额度。

例如,在 Azure Monitor 中,使用从资源收集的标准指标无需付费。但如果您创建自定义指标,Azure 将根据摄取数据的大小收费。Azure Monitor 中通常最大的成本来自日志数据的摄取与保留。摄取的日志数据越多、保留时间越长,成本就越高。

Azure 中的成本计算可能相当复杂,并取决于多个因素,包括您所在的 Azure 区域。要更详细地计算成本,最好使用定价计算器。

设置 Azure Monitor

只要您在 Azure 中拥有有效订阅,Azure Monitor 就可开箱即用。

如果您需要(重新)创建订阅或想要添加新的订阅,请按照这篇Azure 设置教程中的步骤操作。

要使用 Azure Monitor 的所有功能,您还需要一个或多个处于活动状态的资源进行监控,例如虚拟机(VM)或存储帐户。

常见场景的监控解决方案

Azure Monitor 为一些常见监控场景提供了额外支持。

一个常见场景是监控虚拟机。Azure 通过 VM Insights 为 VM 提供监控支持。VM Insights 提供一组预定义的工作簿,可让您快速、轻松地为 VM 设置监控,包括设置 Azure Monitor 代理以监控工作负载和 VM 来宾操作系统。工作簿用于在 Monitor 中创建可自定义、可交互的报告和可视化。

另一个常见监控场景是使用Azure Monitor 监控容器化应用。Azure Monitor 提供的功能可收集和分析来自 Kubernetes 集群的数据,并支持与 Prometheus(广泛使用的开源监控工具包)集成。

最后一个要讨论的监控解决方案是Application Insights。Application Insights 过去是 Azure 的独立服务,如今已作为 Azure Monitor 的一部分集成。Application Insights 专用于监控 Web 应用。这些应用不必运行在 Azure 上。Application Insights 也可以监控在本地或其他云环境中运行的应用。

数据收集与分析

Azure Monitor 会从您的资源收集数据。这些数据可以是指标或日志。

指标

指标是从资源按固定时间间隔收集的数值数据,例如虚拟机的内存使用率。

Azure 中主要有三类指标:

  • 标准或平台指标:从 Azure 资源收集。
  • 自定义指标:由您自行定义,也可从外部收集。
  • Prometheus 指标:专门从 Kubernetes 集群收集,使用 PromQL 和 Grafana 等开源分析工具处理。

您将在 Metrics Explorer 中探索这些指标。此功能可让您快速、轻松地为感兴趣的指标创建自定义图表。

要创建标准指标图表,请按以下步骤操作:

  1. 在 Azure 门户中转到 Monitor。
  2. 在左侧选择 Metrics。
  3. 选择图表的 Scope,即您要监控的资源或资源组。
  4. 选择指标类型和聚合方式。

An example of a metrics chart

指标图表示例

您可以通过选择图表类型、应用筛选器或设置时间范围进一步配置图表。此外,您还可以通过设置多个资源的并排对比或将图表添加到仪表板来自定义图表,以便后续使用。

日志

日志是与 Azure 中自动或用户操作相关的事件数据,例如对虚拟机的修改。在 Log Analytics 中,您可以查询日志数据,并通过创建表格或图表来分析结果。

为帮助您入门,Log Analytics 提供了一组预定义的查询脚本,使您无需自行编写查询即可检索日志。

您可以通过以下步骤访问这些预定义查询:

  1. 在 Azure 门户中转到 Monitor。
  2. 在左侧选择 Log Analytics。
  3. “Queries” 对话框将自动出现。
  4. 从左侧列表中选择查询类别。您也可以使用搜索栏查找特定查询。
  5. 单击 “Load to editor” 将其加载到编辑器,或单击 “Run” 立即运行查询。

The Queries tab with predefined queries in Logs

Logs 中带有预定义查询的 Queries 选项卡

如果您想自定义查询或自行编写查询,需要使用 Kusto 查询语言(KQL)。这是一种在 Azure 中使用的自定义查询语言,类似于 SQL。

设置警报

借助警报,您可以在 Azure Monitor 检测到特定问题(如资源可用性低)时设置自动操作。您可以配置警报阈值与逻辑,并确保在警报触发时自动通知到合适的人员。

甚至可以在警报触发时设置自动操作,例如运行脚本或临时禁用某个资源。

您可以创建三种类型的警报:

  • 警报规则(Alert rule):用于定义满足条件时触发警报的具体条件。
  • 警报处理规则(Alert processing rule):用于在警报被触发后自动化对警报的操作或修改。
  • 操作组(Action group):是一组通知与操作偏好设置,用于定义当警报规则触发时如何响应。

按以下步骤设置带通知的示例警报规则:

  1. 在 Azure 门户中转到 Monitor。
  2. 在左侧选择 “Alerts”。
  3. 单击 Create > Alert Rule。
  4. 选择资源范围(resource scope)。
  5. 转到 “Conditions” 选项卡以创建警报逻辑。
  6. 转到 “Actions”,并在右侧的 “Quick Actions” 选项卡中填写详细信息以设置通知。
  7. 转到 “Details” 选项卡,填写警报名称并选择其严重性。
  8. 单击 “Review+create” 完成警报创建。

在 Azure Monitor 中创建警报规则

实践用例与示例

性能监控

假设我们希望跟踪并监控某个 Web 应用的 KPI。

我们可以按以下步骤设置 Azure Monitor:

  1. 定义 KPI。例如,请求速率、响应时间和错误率。
  2. 在 Application Insights 中设置这些 KPI,以便可视化和跟踪。
  3. 为 KPI 阈值设置警报。例如,当平均响应时间超过 5 秒时触发警报。

成本管理

Azure 的主要定价模式是基于消耗的“按需付费”模式。我们可以通过识别未充分利用的资源,将 Azure Monitor 用于节省成本。例如,VM 的成本由其内存和 CPU 使用情况决定。我们可以按以下步骤进行跟踪:

  1. 设置指标以跟踪所有 VM 的内存和 CPU 使用率。
  2. 创建图表,在预定义周期(例如过去 30 天)内跟踪这两项指标。
  3. 识别内存或 CPU 使用率持续偏低的 VM。
  4. 必要时设置警报,以便未来出现低使用率时提醒我们。

安全与合规

虽然 Azure 还提供了专门用于安全或合规的其他服务,但 Azure Monitor 可以通过分析、可视化或汇总相关日志数据来提供辅助。例如,我们可以使用 Azure Monitor 来帮助合规与审计。

  1. 设置 Log Analytics 工作区以收集安全日志。
  2. 为审计日志创建工作簿。
  3. 创建自定义合规仪表板,以跟踪资源的合规状态。

高级功能与自定义

Azure Monitor 提供的高级功能可与其他 Azure 服务或外部来源集成,从而根据特定需求自定义监控解决方案。

与其他 Azure 服务集成

Azure 可以从任何其他 Azure 服务摄取日志数据。例如,我们可以将来自 Azure Security Center 的建议与警报发送到 Log Analytics 工作区。随后我们可以对数据进行分析与可视化,以获得新洞见、识别潜在问题并优化云环境的安全性。

与外部来源集成

在某些情况下,您可能希望从 Azure 之外的来源向 Azure Monitor 发送数据,或从 Azure Monitor 向外发送数据。

要向Azure Monitor 发送数据,您可以使用其 SDK 或 API:

  • 使用适用于您编程语言(例如 Python)的 Azure Monitor SDK 或通过 REST 请求调用 REST API 发送自定义指标。
  • 使用 Logs Ingestion API 将自定义日志发送到 Log Analytics 工作区。

要从Azure Monitor 导出数据,您可以将其连接到 PowerBI 和 Excel 等微软产品。您可以设置自动数据流,然后使用这些产品的功能进行分析与可视化。如果您希望在 PowerBI 中创建更详细或更个性化的仪表板,或已有的仪表板需要使用来自 Azure 的数据,这将非常有用。

Azure 监控最佳实践

实施 Azure 监控的最佳实践可确保您高效管理并优化 Azure 环境。这些实践有助于您建立健全的监控策略,并持续改进监控设置。

建立有效的监控策略

主动监控有助于在问题变得严重之前识别潜在风险。以下是您可以采用的一些有效监控策略:

策略 1:建立基线指标与阈值

首先定义能够代表资源正常运行状态的基线指标。使用这些基线来设置合适的警报阈值。这有助于区分正常波动与实际问题。

例如,确定 VM 在正常负载下的平均 CPU 使用率,并将阈值设置在该平均值略高的位置,以便检测潜在的性能问题。

持续分析收集到的数据,优化基线与阈值,确保它们随环境演进而保持有效。

策略 2:建立有效的警报管理

有效的警报管理对于在信息充足与避免干扰之间保持平衡至关重要。

过多的警报会让您不堪重负,导致错过重要告警。为避免“告警疲劳”,您可以将相关警报进行分组以减少通知数量,也可以在警报规则中使用临时抑制条件,以避免对已知问题重复告警。

在有效的警报管理中,区分关键与非关键警报同样重要。这样可以对关键警报进行优先处理,确保高优先级问题得到即时关注。

为帮助区分不同警报,请为其分配严重性级别,并相应配置通知渠道。例如,将高严重性警报通过短信和电子邮件发送,而低严重性警报则通过仪表板或周期性报告等干扰更小的渠道发送。

持续改进

定期审查并更新监控设置对于保持其有效性与相关性至关重要。

以下是确保持续改进的一些建议:

  • 定期审查监控设置:安排定期审查,确保监控配置与当前的运营需求和业务目标保持一致。
  • 审计您的监控:进行审计以识别监控覆盖中的空白,并确保符合内部与外部标准。
  • 定期优化:根据最新数据与性能趋势,调整阈值、更新警报规则并优化仪表板。
  • 建立反馈回路:建立反馈回路,在事件与警报解决后进行分析,以改进监控规则与配置。

总结

Azure Monitor 是维护 Azure 资源性能、安全性和可靠性的关键工具。通过利用其全面的监控能力,您可以主动识别并解决问题,优化云端资源。

如果您想掌握 Azure 的基础知识,请查看Azure 基础知识学习路径。该学习路径还将帮助您准备首次Azure 认证。

Azure Monitor 常见问题

Azure Monitor 用于做什么?

Azure Monitor 跟踪资源性能,并识别与处理潜在问题。

Azure Monitor 能监控外部资源吗?

可以。您可以将 Azure Monitor 连接到本地或其他云环境中的资源。

Azure Monitor 能使用自定义指标吗?

可以,您可以在 Azure Monitor 中创建或导入自己的指标,并在分析中使用它们。

Azure Monitor 是否可免费使用?

如果您注册 Azure 免费账户或学生账户,Azure Monitor 属于 12 个月免费服务的一部分。

Azure Monitor 能用于实时监控吗?

可以,Azure Monitor 既可用于实时监控,也可用于分析历史数据。

Anneleen Rummens

作者

Anneleen Rummens

Anneleen 是一名数据科学家,具备统计学和社会科学背景。她目前在金融行业担任自由职业数据科学家,并攻读应用人工智能的研究生学位。Anneleen 是四门 DataCamp 课程的讲师,其中包括“Azure 管理与治理”。

主题