你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Monitor 概述

Azure Monitor 可帮助最大程度地提高应用程序和服务的可用性和性能。 它提供了一个全面的解决方案,用于从云和本地环境收集、分析和处理遥测数据。 此信息可以帮助你了解应用程序的性能,并主动识别影响应用程序及其所依赖资源的问题。

可以使用 Azure Monitor 执行的操作的几个示例包括:

注意

此服务支持 Azure Lighthouse;通过它,服务提供商可登录自己的租户来管理客户委托的订阅和资源组。

概述

下图提供了 Azure Monitor 的概要视图。

  • 示意图的中心是用于指标、日志和更改(Azure Monitor 使用的基本类型的数据)的数据存储。
  • 左侧是用于填充这些数据存储监视数据源
  • 右侧是 Azure Monitor 针对这些收集的数据执行的不同功能。 其中包括分析、警报和集成(例如流式传输到外部系统)等操作。

显示 Azure Monitor 概述的示意图。

下面的视频使用上图的早期版本,但其说明仍然相关。

可观测性和 Azure Monitor 数据平台

指标、日志和分布式跟踪通常称作观测功能的三大支柱。 可以通过聚合和关联整个系统的这些不同类型的受监视数据来实现可观测性。

Azure Monitor 以原生方式将数据存储为指标、日志或更改。 跟踪存储在日志存储中。 每个存储平台都已针对特定的监视方案进行优化,各自支持 Azure Monitor 中的不同功能。 使用数据分析、可视化或警报等功能需要了解数据的差异,以便能够以最经济高效的方式实现所需的方案。

构成要素 说明
指标 指标是数字值,用于描述系统某些方面在特定时间点的情况。 指标是定期收集的,使用时间戳、名称、值以及一个或多个定义标签进行标识。 可以使用各种算法来聚合指标、将其与其他指标进行比较,以及通过分析指标来了解随时间推移的指标趋势。

Azure Monitor 中的指标存储在时序数据库中,该数据库经过优化,可用于分析带时间戳的数据。 有关详细信息,请参阅 Azure Monitor 指标
日志 日志是系统中发生的事件。 它们可以包含不同类型的数据,并可以结构化,或者采用带时间戳的自由文本格式。 当环境中的事件生成日志条目时,可以偶发性地创建日志;负载较重的系统通常会生成更多的日志卷。

Azure Monitor 存储 Azure Monitor 日志存储的日志。 使用存储,你可以将日志隔离到单独的“Log Analytics 工作区”中。 在那里,你可以使用 Log Analytics 工具分析它们。 Log Analytics 工作区基于 Azure 数据资源管理器,后者提供功能强大的分析引擎和 Kusto 富查询语言。 有关详细信息,请参阅 Azure Monitor 日志
分布式跟踪 跟踪是通过分布式系统跟进用户请求的相关事件系列。 跟踪可用于确定应用程序代码的行为,以及不同事务的性能。 日志通常是由分布式系统的单个组件创建的,而跟踪可以度量应用程序在整套组件中的运行状况和性能。

可在 Azure Monitor 中通过 Application Insights SDK 实现分布式跟踪。 跟踪数据与 Application Insights 收集的其他应用程序日志数据存储在一起,存储在 Azure Monitor 日志中。 有关详细信息,请参阅什么是分布式跟踪?
更改 使用更改分析跟踪更改。 更改是在 Azure 应用程序和资源中发生的一系列事件。 更改分析是一种订阅级别的可观察性工具,它建立在 Azure Resource Graph 的强大功能之上。

启用更改分析后,Microsoft.ChangeAnalysis 资源提供程序将注册到 Azure 资源管理器订阅。 更改分析与监视和诊断工具的集成提供数据,帮助用户了解哪些变更可能导致了问题。 在使用 Azure Monitor 中的更改分析中了解有关更改分析的详细信息。

除了托管其他服务的数据,Azure Monitor 还会聚合和关联多个 Azure 订阅和租户的数据。 由于这些数据存储在一起,因此可以使用一组常见的工具对其进行关联和分析。

注意

区分 Azure Monitor 日志和 Azure 中的日志数据源很重要。 例如,Azure 中的订阅级别事件将写入活动日志,你可以从 Azure Monitor 菜单查看该日志。 大多数资源将操作信息写入资源日志,你可以将其转发到不同的位置。 Azure Monitor 日志是一种日志数据平台,它收集活动日志和资源日志以及其他监视数据,以便对整个资源集进行深入分析。

Azure 门户中的“概述”页会直接显示 Azure Monitor 针对许多 Azure 资源收集的数据。 例如,在查看任一虚拟机 (VM) 时,多个图表会显示性能指标。 选择任一图形会在 Azure 门户中的指标资源管理器中打开数据。 通过指标资源管理器,你可根据一段时间内多个指标的值来绘制图表。 可以通过交互方式查看图表,也可以将其固定到某个仪表板,与其他可视化效果一起查看。

显示流入指标资源管理器中的要在可视化效果中使用的指标数据的示意图。

可以使用查询来分析 Azure Monitor 收集的日志数据,这些查询可以快速检索、合并和分析所收集的数据。 可以使用 Azure 门户中的 Log Analytics 用户界面创建和测试查询。 然后可以直接使用不同的工具分析数据,或者保存查询以便与可视化效果预警规则配合使用。

Azure Monitor 日志使用 Kusto 查询语言的某个版本,该查询语言适用于简单的日志查询,但也包括高级功能,例如聚合、联接、智能分析。 可以通过多个课程快速了解此查询语言。 特定指南提供给已熟悉 SQLSplunk 的用户。

显示流入 Log Analytics 中进行分析的日志数据的示意图。

更改分析会提醒你实时站点问题、中断、组件故障或其他更改数据, 还可以让你深入了解这些应用程序更改、提高可观测性并缩短平均修复时间。 通过 Azure 门户转到更改分析,可以自动将 Microsoft.ChangeAnalysis 资源提供程序注册到 Azure 资源管理器订阅。 对于 Web 应用的来宾内更改,可以使用诊断和解决问题工具启用更改分析。

更改分析以 Azure Resource Graph 为基础,提供有关 Azure 资源随时间变化的历史记录, 并检测托管标识、平台操作系统升级和主机名更改。 更改分析可安全地查询 IP 配置规则、TLS 设置和扩展版本,以提供更详细的更改数据。

Azure Monitor 收集哪些数据?

Azure Monitor 可以从各种收集数据,范围从应用程序到应用程序所依赖的任何操作系统和服务,再到平台本身。 Azure Monitor 从以下每个层收集数据:

  • 应用程序 - 有关编写的代码的性能和功能的数据,不管其平台是什么。
  • 来宾操作系统:有关运行应用程序的操作系统的数据。 该系统可以在 Azure 中运行,也可以在其他云中或本地运行。
  • Azure 资源 - 有关 Azure 资源的操作的数据。 如需具有指标或日志的资源的完整列表,请参阅可以使用 Azure Monitor 监视哪些内容?
  • Azure 订阅 - 有关 Azure 订阅的操作和管理的数据,以及有关 Azure 本身的运行状况和操作的数据。
  • Azure 租户 - 有关租户级 Azure 服务(例如 Azure Active Directory)的操作的数据。
  • Azure 资源更改 - 有关 Azure 资源中的更改以及如何处理和会审事件和问题的数据。

在创建 Azure 订阅并添加 VM 和 Web 应用等资源后,Azure Monitor 会立即开始收集数据。 活动日志记录创建或修改资源的时间。 指标告知资源的性能如何,以及该资源消耗的资源。

启用诊断,将正在收集的数据扩展到资源的内部操作中。 添加代理来计算资源,以收集其来宾操作系统中的遥测数据。

使用 Application Insights 启用对应用程序的监视,以收集详细信息,包括页面视图、应用程序请求和异常。 通过配置可用性测试来模拟用户流量,进一步验证应用程序的可用性。

自定义来源

Azure Monitor 可以使用数据收集器 API 从任何 REST 客户端收集日志数据。 你可创建自定义监视方案,并将监视范围扩展到不通过其他源公开遥测数据的资源。

见解和特选可视化效果

仅当能够有利于洞察计算环境的操作时,监视数据才有作用。 某些 Azure 资源提供程序有一个“特选可视化效果”,后者可为你提供针对该特定服务或服务组的自定义监视体验。 它们通常只需最少的配置。 更大的可缩放特选可视化效果在“见解”中为已知,在文档和 Azure 门户中使用该名称进行了标记。

有关详细信息,请参阅使用 Azure Monitor 的见解和特选可视化效果的列表。 此处介绍了一些更大的见解。

Application Insights

无论 Web 应用程序托管在云中还是本地,Application Insights 都可以监视其可用性、性能和使用情况。 它利用 Azure Monitor 中的强大数据分析平台来提供应用程序操作的深入见解。 你可将其用于诊断错误,无需等到用户报告错误。 Application Insights 包含各种开发工具的连接点,并与 Visual Studio 集成以支持 DevOps 过程。

显示 Application Insights 的屏幕截图。

容器见解

容器见解监视部署到 Azure Kubernetes 服务上托管的托管 Kubernetes 群集的容器工作负载的性能。 它通过指标 API 从 Kubernetes 中提供的控制器、节点和容器收集指标,来提供性能可见性。 容器日志也会被收集。 从 Kubernetes 群集启用监视后,将通过适用于 Linux 的 Log Analytics 代理的容器化版本自动收集这些指标和日志。

显示容器运行状况的屏幕截图。

VM 见解

VM 见解可以大规模监视 Azure VM。 它分析 Windows VM 和 Linux VM 的性能和运行状况,并确定它们的各种进程及其对外部进程的相互依赖关系。 该解决方案支持监视本地或其他云提供商托管的 VM 的性能和应用程序依赖项。

显示 VM 见解的屏幕截图。

应对关键状况

除了让你以交互方式分析监视数据以外,有效的监视解决方案必须能够主动应对所收集的数据中指出的关键状况。 应对措施可以是向负责调查问题的管理员发送短信或邮件。 或者,可以启动自动化过程来尝试纠正错误状况。

警报

Azure Monitor 中的警报会主动发送有关关键状况的通知,并可能尝试采取纠正措施。 基于指标的预警规则根据数值提供准实时警报。 基于日志的规则允许跨多个源的数据的复杂逻辑。

Azure Monitor 中的警报规则使用操作组,其中包含可在多个规则之间共享的独特接收者和操作集。 操作组可根据要求执行多种操作,例如使用 Webhook 来让警报启动外部操作,或者与 IT 服务管理工具集成。

显示 Azure Monitor 中警报(包含严重性、警报总数等信息)的屏幕截图。

自动缩放

自动缩放是指在处理应用程序负载时让适当数量的资源运行。 创建使用 Azure Monitor 收集的指标的规则,以确定负载增加后何时自动添加资源。 删除处于空闲状态的资源,以节省资金。 可以指定最小和最大实例数,并创建逻辑来控制何时要增加或减少资源。

此图显示自动缩放,一行中有几个服务器标记为“处理器时间 > 80%”,两台服务器标记为最小容量,三台服务器标记为当前容量,五台服务器标记为最大容量。

可视化监视数据

图表和表等可视化效果是用于汇总监视数据并向不同的受众呈现这些数据的有效工具。 Azure Monitor 自带可视化监视数据的功能,并且可以使用其他 Azure 服务将这些数据发布给不同的受众。

仪表板

Azure 仪表板允许将不同类型的数据合并到 Azure 门户的单个窗格中。 可以选择与其他 Azure 用户共享仪表板。 将任意日志查询或指标图表的输出添加到 Azure 仪表板。 例如,可以创建一个包含多个磁贴的仪表板,这些磁贴分别用于显示指标图、活动日志表、Application Insights 的使用情况图表,以及日志查询的输出。

显示一个 Azure 仪表板的屏幕截图,其中包括应用程序和安全性磁贴以及其他可自定义的信息。

工作簿

工作簿提供了灵活的画布,用于数据分析和在 Azure 门户中创建丰富的可视化报表。 可使用工作簿在整个 Azure 中接入多个数据源,并将其组合成统一的交互式体验。 使用 Insights 随附的工作簿或从预定义模板创建自己的工作簿。

显示工作簿示例的屏幕截图。

Power BI

Power BI 是业务分析服务,可提供跨各种数据源的交互式可视化效果。 它是将数据提供给组织内外的其他人的有效方法。 可将 Power BI 配置为自动从 Azure Monitor 导入日志数据,以利用这些可视化效果。

显示 Power BI 的屏幕截图。

集成和导出数据

通常,我们需要将 Azure Monitor 与其他系统集成,并生成使用监视数据的自定义解决方案。 其他 Azure 服务使用 Azure Monitor 来提供这种集成。

事件中心

Azure 事件中心是流式处理平台和事件引入服务。 它可以使用任何实时分析提供程序或批处理/存储适配器来转换和存储数据。 使用事件中心可将 Azure Monitor 数据流式传输到合作伙伴 SIEM 和监视工具。

逻辑应用

可使用 Azure 逻辑应用服务通过与不同系统和服务集成的工作流将任务和业务流程自动化。 可以使用可在 Azure Monitor 中读取和写入指标和日志的活动。

API

可以使用多个 API 从/向 Azure Monitor 读取和写入指标与日志,以及访问生成的警报。 还可以配置和检索警报。 借助 API,几乎可以不受限制地生成与 Azure Monitor 集成的自定义解决方案。

后续步骤

了解有关以下方面的详细信息:

  • 指标和日志,以了解由 Azure Monitor 收集的数据。
  • 数据源,了解应用程序的不同组件如何发送遥测数据。
  • 日志查询,以便分析所收集的数据。
  • 用于监视云应用程序和服务的最佳做法