在 Grafana 中监控 Azure 服务
可使用 Grafana 和随附的 Azure Monitor 数据源插件监视 Azure 服务和应用程序。 该插件从这些 Azure 服务检索数据:
Azure Monitor 指标,用于处理 Azure 资源的数值时序数据。
Azure Monitor 日志,用于处理 Azure 资源的日志和性能数据,使你能够使用强大的 Kusto 查询语言 (KQL) 进行查询。 你可以使用 Application Insights 日志查询来检索基于 Application Insights 日志的指标。
- 基于 Application Insights 日志的指标,使你能够分析受监视应用的运行状况。 你可以使用 Grafana 中的 Application Insights 日志查询来使用 Application Insights 日志指标数据。
Azure Monitor 跟踪,用于从 Application Insights 查询和可视化分布式跟踪数据。
Azure Resource Graph,用于跨订阅快速查询和识别 Azure 资源。
然后,可以在 Grafana 仪表板上显示此性能和可用性数据。
使用以下步设置 Grafana 服务器,并通过 Azure Monitor 为指标和日志生成仪表板。
设置 Grafana
要设置 Grafana,请执行以下步骤。
设置 Azure 托管 Grafana
Azure 托管 Grafana 针对 Azure 环境进行了优化,可与 Azure Monitor 无缝配合使用。 可以:
- 使用 Microsoft Entra 标识管理用户身份验证和访问控制。
- 将 Azure 门户中的图表直接固定到 Azure 托管 Grafana 仪表板。
参考此快速入门指南,使用 Azure 门户创建 Azure 托管 Grafana 工作区。
本地设置 Grafana
若要设置本地的 Grafana 服务器,请在本地环境下载并安装 Grafana。
登录到 Grafana
重要
Internet Explorer 和旧版 Microsoft Edge 浏览器与 Grafana 不兼容。 必须使用基于 chromium 的浏览器,包括 Microsoft Edge。 有关详细信息,请参阅 Grafana 支持的 Web 浏览器。
使用 Azure 托管 Grafana 工作区的终结点 URL 或服务器的 IP 地址登录到 Grafana。
配置 Azure Monitor 数据源插件
Azure 托管 Grafana 包括 Azure Monitor 数据源插件。 默认情况下,该插件预配置了托管标识,可用于查询和可视化部署 Grafana 工作区的订阅中所有资源的监视数据。 跳到“生成 Grafana 仪表板”部分。
可通过配置额外的权限来扩展 Azure 托管 Grafana 工作区可以查看的资源,从而为包含的托管标识分配其他订阅或资源上的监视读取者角色。
如果使用的实例不是 Azure 托管 Grafana,则必须设置 Azure Monitor 数据源。
如果在启用了托管标识的 Azure 虚拟机或 Azure 应用服务实例上托管 Grafana,则可以使用此方法进行身份验证。 但是,若 Grafana 实例未托管在 Azure 上,或者未启用托管标识,则需要一并使用应用注册与 Azure 服务主体来设置身份验证。
使用托管标识
在 VM 或应用服务实例上启用托管标识,并将 Grafana 服务器托管标识支持设置更改为 true。
托管 VM 或应用服务实例的托管标识需要为所需的订阅、资源组或资源分配监视读取者角色。
还需要更新 Grafana 服务器配置中的设置
managed_identity_enabled = true
。有关详细信息,请参阅 Grafana 配置。 完成这两个步骤后,可以保存并测试访问。
选择“保存并测试”,然后 Grafana 将会测试凭证。 应看到类似于下面的消息:
使用应用注册
创建服务主体。 Grafana 使用 Microsoft Entra 服务主体连接到 Azure Monitor API 并收集数据。 必须创建新的或使用现有的服务主体,以管理对 Azure 资源的访问权限:
请参阅在门户中创建 Microsoft Entra 应用和服务主体,了解如何创建服务主体。 复制并保存租户 ID(目录 ID)、客户端 ID(应用程序 ID)和客户端机密(应用程序密钥值)。
查看为应用程序分配角色,以便为你想要监视的订阅、资源组或资源上的 Microsoft Entra 应用程序分配监视读取者角色。
提供要使用的连接详细信息:
- 配置插件时,可以指明插件要监视哪个 Azure 云:公有云、Azure 美国政府、Azure 德国或由世纪互联运营的 Microsoft Azure。
注意
某些数据源字段的命名方式不同于其关联的 Azure 设置:
- 租户 ID 是 Azure 目录 ID。
- 客户端 ID 是 Microsoft Entra 应用程序 ID。
- 客户端机密是 Microsoft Entra 应用程序密钥值。
- 配置插件时,可以指明插件要监视哪个 Azure 云:公有云、Azure 美国政府、Azure 德国或由世纪互联运营的 Microsoft Azure。
选择“保存并测试”,然后 Grafana 将会测试凭证。 应看到类似于下面的消息:
使用现成的仪表板
Azure Monitor 包含现成仪表板,可与 Azure 托管 Grafana 和 Azure Monitor 插件配合使用。 可以在 Grafana Labs 上找到所有可用仪表板的列表。
Azure Monitor 还支持现成的仪表板,以便与 Azure Monitor 适用于 Prometheus 的托管服务无缝集成。 这些仪表板在链接到 Azure Monitor 适用于 Prometheus 的托管服务时,会自动部署到 Azure 托管 Grafana。
生成 Grafana 仪表板
转到 Grafana 主页,并选择“新建仪表板”。
在新仪表板中,选择“添加可视化”,然后选择 Azure Monitor 数据源。 你可以尝试其他图表绘制选项,但本文使用时序作为示例。
仪表板上会显示一个空的时序面板。
编辑面板以配置查询。
可视化 Azure Monitor 指标数据:随即将显示选择器列表,可在其中选择此图表中要监视的服务和资源。 若要查看 VM 中的指标,请保留默认“指标”选择,选择“资源”以选择 VM,使用提供的下拉列表来选择命名空间、指标和聚合。 选择 VM 和指标后,即可开始在仪表板中查看数据。
可视化 Azure Monitor 日志数据:在服务下拉列表中选择“日志”。 选择要查询的资源或工作区,将“时间范围”切换到“仪表板”,并设置查询文本。 可在此处复制已有的任何日志查询,或新建一个查询。 输入查询时,IntelliSense 会建议自动完成选项。 选择可视化效果类型“时序”>“表”,并运行查询。
注意
该插件还可以使用时间宏,例如
$__timeFilter()
和$__interval
。 这些宏允许 Grafana 在你放大某部分图表时动态计算时间范围和时间粒度。 可以删除这些宏并使用标准时间筛选器(如TimeGenerated > ago(1h)
),但这意味着未来图形将不支持放大功能。以下仪表板包含两个图表。 左侧图表显示两个 VM 的 CPU 百分比。 右图显示 Azure 存储帐户中的事务(按事务 API 类型分解)。
将 Azure 门户中的图表固定到 Azure 托管 Grafana
除了在 Grafana 中生成面板外,还可以直接从 Azure Monitor 将面板添加到 Grafana 仪表板,从而将 Azure Monitor 可视化效果从 Azure 门户快速固定到新的或现有的 Grafana 仪表板。 转到资源的“指标”。 创建图表并选择“保存到仪表板”,然后选择“固定到 Grafana”。 选择工作区和仪表板,然后选择“固定”以完成操作。
Grafana 11 支持的功能
Azure 托管 Grafana 包括对 Grafana 11(预览版)的支持,它引入了基本日志的功能,并在 Azure 中使用示例。
先决条件
- 运行 Grafana 版本 11 的 Azure 托管 Grafana 资源。
基本日志
基本日志允许根据数据使用情况在不同表计划之间切换,从而提供了一种经济高效的方法来管理数据存储,请参阅根据 Log Analytics 工作区中的数据使用情况选择表计划。
启用基本日志
- 在 Grafana 中,转到“连接>数据源>Azure Monitor”。
- 在“设置”选项卡上,将“启用基本日志”开关切换到右侧(蓝色为“开”)。
使用基本日志
- 创建新的仪表板。
- 在空图下方的(Azure Monitor)下,将服务切换为日志。
- 对于“资源”,选择 Log Analytics 工作区。
- 现在可以将日志从“分析”切换到“基本”。
在 Azure 中使用示例
在 Grafana 11 中,示例可以直接链接到 Application Insights 中的跟踪数据。 通过此集成,可以将 Prometheus 指标数据与详细的跟踪连接起来,从而更全面地了解系统性能和行为。 有关 Grafana 中的跟踪视图的详细信息,请参阅探索中的跟踪。
将示例配置为指向 Azure
- 在 Grafana 中,转到“连接>数据源>Prometheus”。
- 在“示例”下的“设置”选项卡上,选择“+ 添加”。
- 将内部链接开关切换到右侧(蓝色为“打开”)。
- 从下拉列表中选择 Azure。
- 可选:添加 URL 标签。
- 保存并测试更改。
注意
可以 + 添加其他示例,例如开放源代码跟踪平台(如 ZIPKIN 或 Jaeger)。
使用 Azure 查看示例
- 在 Grafana 中,转到“探索”。
- 在“指标”下,选择一个 Prometheus 数据源。
- 运行查询以填充图形。
- 在“选项”栏中,将“模范”开关切换到右侧(蓝色为“打开”)。 这会在图形的 x 轴上添加显示为黄色正方形的数据点。
- 将鼠标悬停在数据点上以查看显示 traceID、Value 等详细信息的上下文菜单。
- 在上下文菜单中,选择 Azure 或为示例提供的 URL 标签。 这会在 Grafana 查看器中的当前 Prometheus 面板旁边打开一个 Azure 面板,其中包含跟踪信息。
高级 Grafana 功能
Grafana 提供高级功能:
- Azure Monitor 插件变量 - Azure Monitor 模板变量 | Grafana 文档
- 仪表板播放列表 - 管理播放列表 | Grafana 云 文档
可选:监视同一 Grafana 仪表板中的其他数据源
可以使用许多数据源插件将这些指标集中到一个仪表板中。
以下是关于如何使用 Telegraf、InfluxDB、Azure Monitor 适用于 Prometheus 的托管服务和 Docker 的优质参考文章:
- 如何为 Azure 托管 Grafana 配置数据源
- 通过托管系统标识将适用于 Prometheus 的 Azure Monitor 托管服务用作 Grafana 的数据源
- 如何在 Ubuntu 16.04 上使用 TICK Stack 监视系统指标
- 用于 Docker 主机、容器和容器化服务的监视解决方案
完整 Grafana 仪表板的图像如下所示,其中包含了来自 Azure Monitor 指标、日志和跟踪的指标。
清理资源
如果在 Azure 上设置 Grafana 环境,则无论是否在使用资源,一旦资源开始运行你都需要付费。 为了避免产生额外的费用,请对此文章中创建的资源组进行清理。
- 在 Azure 门户上的左侧菜单中选择“资源组”>“Grafana”。
- 在资源组页上选择“删除”,在文本框中输入“Grafana”,然后选择“删除”。