Azure Monitor 日志的功能
Azure Monitor 是一种收集和分析遥测数据的服务。 该服务有助于实现云应用程序以及本地资源和应用程序的最大性能和可用性。 它显示了应用程序的执行方式,并可识别应用程序存在的任何问题。
Azure Monitor 中的数据收集
Azure Monitor 会收集两种基本类型的数据 - 指标和日志。 指标表明资源的执行方式,以及使用的其他资源。 日志包含显示资源创建/修改时间的记录。
下图提供了 Azure Monitor 的概要视图。 左侧是数据监视源:Azure、操作系统和自定义源。 关系图的中间是指标和日志的数据存储。 右侧是 Azure Monitor 使用所收集的数据执行的各种功能,例如分析、警报和流式传输到外部系统。
Azure Monitor 从一系列组件中自动收集数据。 例如:
- 应用程序数据:与自定义应用程序代码相关的数据。
- 操作系统数据:来自托管应用程序的 Windows 或 Linux 虚拟机的数据。
- Azure 资源数据:与 Azure 资源(如 Web 应用或负载均衡器)的操作相关的数据。
- Azure 订阅数据:与你的订阅相关的数据,其中包括有关 Azure 运行状况和可用性的数据。
- Azure 租户数据:有关 Azure 组织级别服务的数据,例如 Microsoft Entra ID。
由于 Azure Monitor 是自动系统,因此在创建 Azure 资源(如虚拟机和 Web 应用)后,它会立即从这些源中收集数据。 可通过以下方式扩展 Azure Monitor 收集的数据:
- 启用诊断:对于某些资源(如 Azure SQL 数据库),仅在对其启用诊断日志记录后才会收到有关资源的完整信息。 可使用 Azure 门户、Azure CLI 或 PowerShell 来启用诊断。
- 添加代理:对于虚拟机,可安装 Log Analytics 代理,并将其配置为将数据发送到 Log Analytics 工作区。 此代理会增加发送到 Azure Monitor 的信息量。
开发人员可能还想要从自定义代码(例如 Web 应用、Azure 函数或移动应用)将数据发送到 Azure Monitor。 他们通过调用数据收集器 API 来发送数据。 你可通过 HTTP 与此 REST 接口通信。 此接口与各种开发框架(如 .NET Framework、Node.js 和 Python)兼容。 开发人员可选择自己最喜欢的语言和框架在 Azure Monitor 中记录数据。
日志
日志包含资源更改的相关时间戳信息。 记录的信息类型因日志源而异。 日志数据会整理成记录,每种记录类型具有不同的属性集。 日志可以包含数字值(如 Azure Monitor 指标),但大多数日志包含文本数据,而不是数字值。
最常见的日志项目类型会记录事件。 事件可能偶尔发生,而不是按固定的间隔或根据某种计划发生。 应用程序和服务创建事件并提供事件上下文。 可将指标数据存储在日志中,以便将其与其他监视数据合并起来用于分析。
可以在 Log Analytics 工作区中记录来自 Azure Monitor 的数据。 Azure 提供分析引擎和丰富的查询语言。 日志显示任何问题的上下文,对于确定根本原因很有用。
指标
指标是数字值,用于描述系统某些方面在某个时间点的情况。 Azure Monitor 可以近乎实时地捕获指标。 这些指标按固定时间间隔收集,在因其频繁采样而发出警报时很有用。 可使用多种算法,将指标与其他指标进行比较,并观察随时间变化的趋势。
指标存储在时序数据库中。 分析时间戳数据时,使用此数据存储最为有效。 指标适用于警报和快速检测问题。 可通过指标了解有关系统性能的信息。 如果需要,可以将它们与日志进行合并,确定问题的根本原因。
使用 Kusto 分析日志
若要检索、合并和分析数据,可以指定要在 Azure Monitor 日志中运行的查询。 可以使用 Kusto 查询语言编写日志查询,Azure 数据资源管理器也可使用该语言。
可在 Azure 门户中测试日志查询,从而以交互方式运行日志查询。 通常先运行基本查询,然后随着要求变得更加复杂,逐步使用更高级的功能。
在 Microsoft Azure 门户中,可创建自定义仪表板,用于显示资源和数据。 每个仪表板可以从一组磁贴构建。 每个磁贴可能显示一组资源、图表、数据表或某些自定义文本。 Azure Monitor 提供可添加到仪表板的磁贴;例如,可以使用磁贴在仪表板中显示 Kusto 查询的结果。
在示例场景中,运营团队可通过可视化监视数据(例如图表和表格)来合并该数据。 这些工具可有效地汇总数据,并将其呈现给不同的受众。
通过使用 Azure 仪表板,可以将不同类型的数据(包括日志和指标)合并到 Azure 门户的单个窗格中。 例如,你可能希望创建一个包含多个磁贴的仪表板,这些磁贴分别用于显示指标图、活动日志表、Azure Monitor 的图表,以及日志查询的输出。