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

在 Grafana 中监控 Azure 服务

可使用 Grafana 和随附的 Azure Monitor 数据源插件监视 Azure 服务和应用程序。 该插件从三个 Azure 服务检索数据:

  • 来自 Azure 资源的数值时序数据的 Azure Monitor 指标。
  • Azure Monitor 日志中来自 Azure 资源的日志和性能数据,使你能够使用强大的 Kusto 查询语言 (KQL) 进行查询。
  • Azure Resource Graph,以便跨订阅快速查询和识别 Azure 资源。

然后,可以在 Grafana 仪表板上显示此性能和可用性数据。

使用以下步设置 Grafana 服务器,并通过 Azure Monitor 为指标和日志生成仪表板。

设置 Grafana

设置 Azure 托管 Grafana(预览版)

Azure 托管 Grafana 针对 Azure 环境进行了优化,可与 Azure Monitor 无缝配合使用。 使你能够:

  • 使用 Azure Active Directory 标识管理用户身份验证和访问控制
  • 将 Azure 门户中的图表直接固定到 Azure 托管 Grafana 仪表板

借助此快速入门指南,使用 Azure 门户创建 Azure 托管 Grafana 工作区。

本地设置 Grafana

若要设置本地的 Grafana 服务器,请在本地环境下载并安装 Grafana

登录到 Grafana

重要

Internet Explorer 浏览器和旧版 Microsoft Edge 浏览器与 Grafana 不兼容,必须使用基于 chromium 的浏览器,包括 Microsoft Edge。 请参阅 Grafana 支持的浏览器

  • 使用 Azure 托管 Grafana 工作区的终结点 URL 或服务器的 IP 地址登录到 Grafana。

配置 Azure Monitor 数据源插件

Azure 托管 Grafana 包括 Azure Monitor 数据源插件。 默认情况下,该插件预配置了托管标识,可用于查询和可视化部署 Grafana 工作区的订阅中所有资源的监视数据。 跳到“生成 Grafana”仪表板。

Screenshot of Azure Managed Grafana homepage.

可通过配置额外的权限来扩展 Azure 托管 Grafana 工作区可以查看的资源,从而为包含的托管标识分配其他订阅或资源上的监视读者角色

如果使用的实例不是 Azure 托管 Grafana,则必须设置 Azure Monitor 数据源。

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

    Screenshot of Azure Monitor Data Source selection.

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

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

使用托管标识

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

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

    Screenshot of Azure Monitor datasource with config approved MI.

或使用应用注册

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

    • 请参阅这些说明以创建服务主体。 复制并保存租户 ID(目录 ID)、客户端 ID(应用程序 ID)和客户端密码(应用程序密钥值)。
    • 查看为应用程序分配角色,以便为想要监视的订阅、资源组或资源上的 Azure Active Directory 应用程序分配监视读者角色
  2. 详细介绍你想要使用的连接。

    • 配置插件时,可以指示插件要监控哪个 Azure 云(公共、Azure 美国政府、Azure 德国或 Azure 中国)。

      注意

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

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

    Screenshot of Azure Monitor datasource config with approved App Reg.

生成 Grafana 仪表板

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

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

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

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

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

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

      注意

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

      Screenshot of Grafana panel config for Azure Monitor logs.

  5. 下面是一个简单的包含两个图表的仪表板。 左图显示两个 VM 的 CPU 百分比。 右图显示 Azure 存储帐户中的事务(按事务 API 类型分解)。 Screenshot of Grafana dashboards with two panels.

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

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

Screenshot Pin to Grafana option in Azure Monitor metrics explorer.

可选:在同一 Grafana 服务器上监视自定义指标

此外,你还可以安装 Telegraf 和 InfluxDB,以在同一 Grafana 实例中收集和绘制自定义和基于代理的指标。 你可以使用许多数据源插件将这些指标集中到一个仪表板中。

你也可以重复使用此设置来包含 Prometheus 服务器中的指标。 在 Grafana 插件库中使用 Prometheus 数据源插件。

以下为如何使用 Telegraf、InfluxDB、Prometheus 和 Docker 的优秀参考文章:

包含 Azure Monitor 和 Application Insights 指标的完整 Grafana 仪表板的图像如下。 Screenshot of Grafana dashboard with multiple panels.

高级 Grafana 功能

变量

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

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

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

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

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

Grafana use variables

创建仪表板播放列表

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

Grafana Playlist Example

清理资源

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

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

后续步骤