在 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 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 托管 Grafana,则必须设置 Azure Monitor 数据源。

  1. 选择“添加数据源”,按名称“Azure”进行筛选,然后选择“Azure Monitor”数据源。

    显示 Azure Monitor 数据源选项的屏幕截图。

  2. 选择数据源的名称,并选择托管标识或应用注册进行身份验证。

如果在启用了托管标识的 Azure 虚拟机或 Azure 应用服务实例上托管 Grafana,则可以使用此方法进行身份验证。 但是,若 Grafana 实例未托管在 Azure 上,或者未启用托管标识,则需要一并使用应用注册与 Azure 服务主体来设置身份验证。

使用托管标识

  1. 在 VM 或应用服务实例上启用托管标识,并将 Grafana 服务器托管标识支持设置更改为 true

    • 托管 VM 或应用服务实例的托管标识需要为所需的订阅、资源组或资源分配监视读取者角色
    • 还需要更新 Grafana 服务器配置中的设置 managed_identity_enabled = true。有关详细信息,请参阅 Grafana 配置。 完成这两个步骤后,可以保存并测试访问。
  2. 选择“保存并测试”,然后 Grafana 将会测试凭据。 应看到类似于下面的消息:

    显示 Azure Monitor 数据源和配置批准的托管标识的屏幕截图。

使用应用注册

  1. 创建服务主体。 Grafana 使用 Microsoft Entra 服务主体连接到 Azure Monitor API 并收集数据。 必须创建新的或使用现有的服务主体,以管理对 Azure 资源的访问权限:

  2. 提供要使用的连接详细信息:

    • 配置插件时,可以指明插件要监视哪个 Azure 云:公有云、Azure 美国政府、Azure 德国或由世纪互联运营的 Microsoft Azure。

      注意

      某些数据源字段的命名方式不同于其关联的 Azure 设置:

      • 租户 ID 是 Azure 目录 ID。
      • 客户端 ID 是 Microsoft Entra 应用程序 ID。
      • 客户端机密是 Microsoft Entra 应用程序密钥值。
  3. 选择“保存并测试”,然后 Grafana 将会测试凭据。 应看到类似于下面的消息:

    显示 Azure Monitor 数据源配置和已批准的应用注册的屏幕截图。

使用现成的仪表板

Azure Monitor 包含现成仪表板,可与 Azure 托管 Grafana 和 Azure Monitor 插件配合使用。

显示现成的 Azure Monitor Grafana 仪表板的屏幕截图。

Azure Monitor 还支持现成的仪表板,以便与 Azure Monitor 适用于 Prometheus 的托管服务无缝集成。 这些仪表板在链接到 Azure Monitor 适用于 Prometheus 的托管服务时,会自动部署到 Azure 托管 Grafana。

屏幕截图显示了现成的 Azure Monitor Grafana 仪表板,可用于 Azure Monitor 适用于 Prometheus 的托管服务。

生成 Grafana 仪表板

  1. 转到 Grafana 主页,并选择“新建仪表板”。

  2. 在新仪表板中,选择“Graph”。 你可以尝试其他图表选项,但本文使用 Graph 作为示例。

  3. 在仪表板上将显示一个空白图表。 选择面板标题,然后选择“编辑”,输入你想要在此图表中绘制的数据详细信息。

    显示 Grafana 新面板下拉列表选项的屏幕截图。

  4. 选择已配置的 Azure Monitor 数据源。

    • 可视化 Azure Monitor 指标:在服务下拉列表中选择“Azure Monitor”。 随即将显示选择器列表,可在其中选择此图表中要监视的资源和指标。 若要收集 VM 的指标,请使用命名空间 Microsoft.Compute/VirtualMachines。 选择 VM 和指标后,即可开始在仪表板中查看其数据。

      显示 Azure Monitor 指标的 Grafana 面板配置的屏幕截图。

    • 可视化 Azure Monitor 日志数据:在服务下拉列表中选择“Azure Log Analytics”。 选择要查询的工作区并设置查询文本。 可在此处复制已有的任何日志查询,或新建一个查询。 输入查询时,IntelliSense 会建议自动完成选项。 选择可视化效果类型“时序”>“表”,并运行查询。

      注意

      插件提供的默认查询使用两个宏:$__timeFilter()$__interval。 这些宏允许 Grafana 在你放大某部分图表时动态计算时间范围和时间粒度。 可以删除这些宏并使用标准时间筛选器(如 TimeGenerated > ago(1h)),但这意味着未来图形将不支持放大功能。

      Azure Monitor 日志的 Grafana 面板配置的屏幕截图。

  5. 以下仪表板包含两个图表。 左侧图表显示两个 VM 的 CPU 百分比。 右图显示 Azure 存储帐户中的事务(按事务 API 类型分解)。

    包含两个面板的 Grafana 仪表板的屏幕截图。

将 Azure 门户中的图表固定到 Azure 托管 Grafana

除了在 Grafana 中生成面板外,还可以直接从 Azure Monitor 将面板添加到 Grafana 仪表板,从而将 Azure Monitor 可视化效果从 Azure 门户快速固定到新的或现有的 Grafana 仪表板。 转到资源的“指标”。 创建图表并选择“保存到仪表板”,然后选择“固定到 Grafana”。 选择工作区和仪表板,然后选择“固定”以完成操作。

显示 Azure Monitor 指标资源管理器中“固定到 Grafana”选项的屏幕截图。

高级 Grafana 功能

Grafana 具有高级功能。

变量

可以通过 UI 下拉列表选择某些查询值,并在查询中进行更新。 考虑将以下查询示例:

Usage 
| where $__timeFilter(TimeGenerated) 
| summarize total_KBytes=sum(Quantity)*1024 by bin(TimeGenerated, $__interval) 
| sort by TimeGenerated

可以配置将列出所有可用的解决方案值的变量,然后更新查询以便使用它。 若要创建新的变量,请选择仪表板右上角的“设置”按钮,选择“变量”,然后选择“新建”。 在变量页上,定义要运行的数据源和查询以获取值列表。

显示在 Grafana 中配置变量的屏幕截图。

创建后请调整查询以使用所选值,并且图表将做出相应响应:

Usage 
| where $__timeFilter(TimeGenerated) and Solution in ($Solutions)
| summarize total_KBytes=sum(Quantity)*1024 by bin(TimeGenerated, $__interval) 
| sort by TimeGenerated

显示在 Grafana 中使用变量的屏幕截图。

创建仪表板播放列表

仪表板播放列表是 Grafana 众多有用功能中的其中一项。 你可以创建多个仪表板,将其添加到播放列表,并配置每个仪表板的显示间隔。 选择“播放”即可查看仪表板循环。 建议在大型壁装监视器上显示这些仪表板,为你的小组提供状态板。

显示 Grafana 播放列表示例的屏幕截图。

可选:监视同一 Grafana 仪表板中的其他数据源

可以使用许多数据源插件将这些指标集中到一个仪表板中。

以下是关于如何使用 Telegraf、InfluxDB、Azure Monitor 适用于 Prometheus 的托管服务和 Docker 的优质参考文章:

包含 Azure Monitor 和 Application Insights 指标的完整 Grafana 仪表板的图像如下。

显示包含多个面板的 Grafana 仪表板的屏幕截图。

清理资源

如果已在 Azure 上设置 Grafana 环境,则无论是否在使用资源,一旦资源开始运行你都需要付费。 为了避免产生额外的费用,请对此文章中创建的资源组进行清理。

  1. 在 Azure 门户上的左侧菜单中选择“资源组”>“Grafana”。
  2. 在资源组页上选择“删除”,在文本框中输入“Grafana”,然后选择“删除”。

后续步骤

Azure Monitor 指标概述