Azure Monitor 最佳做法:配置数据收集

本文是有关配置 Azure Monitor 的建议方案的一部分。 其中介绍了可以执行哪些建议的步骤来配置所需的数据收集,以便为 Azure 和混合应用程序与资源启用 Azure Monitor 功能。

重要

Azure Monitor 的功能及其配置各不相同,具体取决于你的业务要求与所启用功能的成本,二者必须平衡。 以下每个步骤都会确定是否存在潜在成本,你应在继续之前评估这些成本。 请参阅 Azure Monitor 定价,了解完整的定价详情。

设计 Log Analytics 工作区体系结构

需要至少一个 Log Analytics 工作区才能启用 Azure Monitor 日志,这是以下场景所必需的:

  • 从 Azure 资源收集数据,例如日志。
  • 从 Azure 虚拟机的来宾操作系统收集数据。
  • 启用大多数 Azure Monitor 见解。

其他服务(如 Microsoft Defender for Cloud)也使用 Log Analytics 工作区,并且可以共享用于 Azure Monitor 的同一工作区。

创建 Log Analytics 工作区不会产生任何费用,但在配置要收集到其中的数据后,可能会产生费用。 有关日志数据的计费方式的信息,请参阅 Azure Monitor 日志定价详细信息

若要创建初始 Log Analytics 工作区,请参阅在 Azure 门户中创建 Log Analytics 工作区;若要配置访问权限,请参阅管理对 Log Analytics 工作区的访问权限。 可以使用可缩放的方法(例如资源管理器模板)来配置工作区,不过通常不需要此步骤,因为大多数环境所需的工作区数量很少。

从单个工作区开始以支持初始监视。 有关何时使用多个工作区以及如何查找和配置这些工作区的指导,请参阅设计 Log Analytics 工作区配置

收集来自 Azure 资源的数据

Azure 资源的一些监视是自动可用的,无需进行任何配置。 要收集更多监视数据,必须执行配置步骤。

下表显示从 Azure 资源收集所有可用数据所需的配置步骤。 它还显示数据发送到 Azure Monitor 指标和 Azure Monitor 日志的步骤。 以下部分更详细地介绍每个步骤。

显示部署 Azure 资源监视的示意图。

收集租户和订阅日志

系统会自动收集租户的 Microsoft Entra 日志和订阅的活动日志。 将日志发送到 Log Analytics 工作区时,可以使用 Log Analytics 中的日志查询将这些事件与其他日志数据一起分析。 你还可以创建日志搜索警报,这是在 Microsoft Entra 日志上发出警报并提供比活动日志警报更复杂的逻辑的唯一方法。

将活动日志发送到工作区是免费的,但针对 Microsoft Entra 日志的数据引入和保留会产生费用。

要为租户和订阅创建诊断设置以将日志条目发送到 Log Analytics 工作区,请参阅《集成 Microsoft Entra 日志与 Azure Monitor 日志》和《创建诊断设置以将平台日志和指标发送到不同目标》。

收集资源日志和平台指标

Azure 中的资源会自动生成资源日志,这些日志提供资源中执行的操作的详细信息。 与平台指标不同,你需要配置要收集的资源日志。 创建诊断设置以将其发送到 Log Analytics 工作区,并其与 Azure Monitor 日志所使用的其他数据组合在一起。 还可以使用相同的诊断设置将大多数资源的平台指标发送到相同的工作区。 这样,就可以通过将日志查询与其他收集的数据结合使用来分析指标数据。

在 Log Analytics 工作区中收集资源日志会产生成本,因此,请仅选择包含重要数据的日志类别。 如果收集所有类别,则也会收集作用很小的数据,从而产生不必要的成本。 请参阅每个 Azure 服务的监视文档,以获取有关要收集的类别的说明和建议。 另请参阅 Azure Monitor 最佳做法 - 成本管理,获取有关如何优化日志收集成本的建议。

请参阅创建诊断设置以收集 Azure 中的资源日志和指标,了解如何创建 Azure 资源的诊断设置。

由于需要为每个 Azure 资源创建诊断设置,因此在创建每个资源时,请使用 Azure Policy 来自动创建诊断设置。 每个 Azure 资源类型都有需要在诊断设置中列出的一组唯一的类别。 因此,每个资源类型都需要一个单独的策略定义。 某些资源类型具有无需修改便可分配的内置策略定义。 对于其他资源类型,你需要创建自定义定义。

有关为特定 Azure 服务创建策略定义的过程,以及有关大规模创建诊断设置的详细信息,请参阅使用 Azure Policy 大规模创建诊断设置

启用 Insights

见解为特定服务提供专用的监视体验。 它们使用已收集的相同数据(例如平台指标和资源日志),但提供自定义工作簿,可帮助你识别和分析最关键的数据。 大多数见解将在 Azure 门户中提供,无需进行任何配置,只需收集该服务的资源日志即可。 请参阅每个 Azure 服务的监视文档,确定该服务是否提供见解,以及是否需要进行配置。

见解不会产生成本,但其收集的数据可能收费。

请参阅 Azure Monitor 见解概述,获取 Azure Monitor 中提供的见解和解决方案的列表。 请参阅每个见解和解决方案的相关文档,了解独特的配置或定价信息。

重要

以下见解比其他见解要复杂得多,我们为其配置提供了更多指导:

监视虚拟机

虚拟机会生成与其他 Azure 资源类似的数据,但需要一个代理从来宾操作系统收集数据。 由于虚拟机上会运行不同的工作负载,因此它们也具有独特的监视要求。

监视容器

容器会生成与其他 Azure 资源类似的数据,但它们需要使用容器化版本的 Log Analytics 代理来收集所需的数据。 容器见解有助于准备要监视的容器化环境。 它与第三方工具结合使用,提供对 Azure Kubernetes 服务 (AKS) 及其支持的工作流的全面监视。 有关使用 Azure Monitor 监视 AKS 的专用方案,请参阅使用 Azure Monitor 监视 Azure Kubernetes 服务

监视应用程序

Azure Monitor 使用 Application Insights 来监视自定义应用程序,你必须为要监视的每个应用程序配置 Application Insights。 配置过程因所监视的应用程序的类型和要执行的监视类型而异。 Application Insights 收集的数据存储在 Azure Monitor 指标、Azure Monitor 日志和 Azure Blob 存储中,具体取决于功能。 性能数据同时存储在 Azure Monitor 指标和 Azure Monitor 日志中,无需更多配置。

创建应用程序资源

Application Insights 是 Azure Monitor 中用于监视云原生应用程序和混合应用程序的功能。

可以在 Application Insights 中为要监视的每个应用程序创建一个资源,或者为多个应用程序创建单个应用程序资源。 要为多个应用程序使用单独的应用程序资源还是单个应用程序资源是监视策略的一项基本决策。 单独的资源可以节省成本并防止混合来自不同应用程序的数据,但单个资源可以简化监视,因为这样可以将所有相关遥测数据保留在一起。 有关可帮助做出此项设计决策的准则,请参阅应该部署多少个 Application Insights 资源

创建应用程序资源时,必须选择是使用经典应用程序还是基于工作区的应用程序。 请参阅创建 Application Insights 资源,以创建经典应用程序。 请参阅基于工作区的 Application Insights 资源,以创建基于工作区的应用程序。 Application Insights 收集的日志数据存储在基于工作区的应用程序的 Azure Monitor 日志中。 经典应用程序的日志数据与 Log Analytics 工作区是分开存储的。

配置无代码监视或基于代码的监视

若要为应用程序启用监视功能,你必须决定是使用无代码监视还是基于代码的监视。 配置过程取决于此决定以及要监视的应用程序的类型。

无代码监视最容易实现,可在代码开发后进行配置。 它不要求对代码进行更新。 有关如何根据应用程序启用监视的信息,请参阅:

基于代码的监视可以更好地进行自定义,并且可以收集更多遥测数据,但需要在 Application Insights SDK NuGet 包上向代码添加依赖项。 有关如何根据应用程序启用监视的信息,请参阅:

配置可用性测试

Application Insights 中的可用性测试是重复测试,可以在全球各地定期监视应用程序的可用性和响应能力。 可以免费创建一项简单的 ping 测试, 也可以创建一个 Web 请求序列来模拟具有关联成本的用户交易。

请参阅监视任意网站的可用性以获取不同类型测试的总结,并了解如何创建它们。

配置探查器

Application Insights 中的探查器针对 .NET 应用程序提供性能跟踪。 它有助于识别在处理特定 Web 请求时花费时间最长的“热”代码路径。 配置探查器的过程因应用程序类型而异。

请参阅使用 Application Insights 探查 Azure 中的生产应用程序,了解如何配置探查器。

配置 Snapshot Debugger

Application Insights 中的 Snapshot Debugger 可以监视来自 .NET 应用程序的异常遥测。 它可收集常出现的异常的调试快照,为诊断生产中的问题提供所需信息。 配置 Snapshot Debugger 的过程因应用程序类型而异。

请参阅 .NET 应用中发生异常时的调试快照,了解如何配置 Snapshot Debugger。

后续步骤

为所有 Azure 资源配置数据收集后,请参阅分析和可视化数据以查看用于分析此数据的选项。