通过托管系统标识将适用于 Prometheus 的 Azure Monitor 托管服务用作 Grafana 的数据源

借助适用于 Prometheus 的 Azure Monitor 托管服务,可以使用与 Prometheus 兼容的监视解决方案大规模收集和分析指标。 分析和呈现 Prometheus 数据的最常用方法是使用 Grafana 仪表板。 本文介绍如何使用托管系统标识身份验证,将 Prometheus 配置为 Azure 托管 Grafana 和 Azure 虚拟机中运行的自托管 Grafana 的数据源。

要了解如何将 Grafana 与 Active Directory 配合使用,请参阅使用 Microsoft Entra ID 将自托管 Grafana 配置为使用 Azure Monitor 托管的 Prometheus

Microsoft 托管 Grafana

以下部分介绍如何将适用于 Prometheus 的 Azure Monitor 托管服务配置为 Azure 托管 Grafana 的数据源。

重要

本部分介绍将适用于 Prometheus 的 Azure Monitor 托管服务数据源添加到 Azure 托管 Grafana 的手动过程。 可以按照链接 Grafana 工作区中所述,通过链接 Azure Monitor 工作区和 Grafana 工作区来实现相同的功能。

配置系统标识

Grafana 工作区需要以下设置:

  • 启用系统托管标识
  • 对 Azure Monitor 工作区的“监视数据读取者”角色

创建 Grafana 工作区并将其链接到 Azure Monitor 工作区时,默认会配置这两个设置。 在 Grafana 工作区的“标识”页上验证这些设置。

Azure 托管 Grafana 的“标识”页的屏幕截图。

从 Grafana 工作区进行配置
使用以下步骤以允许访问资源组或订阅中的所有 Azure Monitor 工作区:

  1. 在 Azure 门户中打开 Grafana 工作区的“标识”页。

  2. 如果“状态”为“否”,请将其更改为“是”。

  3. 选择“Azure 角色分配”以查看订阅中的现有访问权限。

  4. 如果未列出订阅或资源组的“监视数据读取者”角色,请执行以下操作:

    1. 选择“+ 添加角色分配”。

    2. 对于“范围”,请选择“订阅”或“资源组”。

    3. 对于“角色”,请选择“监视数据读取者”。

    4. 选择“保存” 。

从 Azure Monitor 工作区进行配置
使用以下步骤,以便仅允许访问特定的 Azure Monitor 工作区:

  1. 在 Azure 门户中打开 Azure Monitor 工作区的“访问控制(IAM)”页。

  2. 选择“添加角色分配”。

  3. 选择“监视数据读取者”,然后选择“下一步”。

  4. 对于“将访问权限分配给”,请选择“托管标识”。

  5. 选择“+ 选择成员”。

  6. 对于“托管标识”,请选择“Azure 托管 Grafana”。

  7. 选择你的 Grafana 工作区,然后选择“选择”。

  8. 选择“查看 + 分配”以保存配置。

创建 Prometheus 数据源

Azure 托管 Grafana 默认支持 Azure 身份验证。

  1. 在 Azure 门户中打开 Azure Monitor 工作区的“概述”页。

  2. 复制“查询终结点”,在下面的步骤中需要用到。

  3. 在 Azure 门户中打开你的 Azure 托管 Grafana 工作区。

  4. 选择“终结点”以查看 Grafana 工作区。

  5. 依次选择“配置”、“数据源”。

  6. 依次选择“添加数据源”、“Prometheus”。

  7. 对于“URL”,请粘贴你的 Azure Monitor 工作区的查询终结点。

  8. 选择“Azure 身份验证”将其打开。

  9. 对于“Azure 身份验证”下的“身份验证”,请选择“托管标识”。

  10. 滚动到页面底部,然后选择“保存并测试”。

Prometheus 数据源的配置的屏幕截图。

自托管 Grafana

以下部分介绍如何将适用于 Prometheus 的 Azure Monitor 托管服务配置为 Azure 虚拟机上的自托管 Grafana 的数据源。

配置系统标识

Azure 虚拟机支持系统分配和用户分配的标识。 以下步骤配置系统分配的标识。

从 Azure 虚拟机进行配置
使用以下步骤以允许访问资源组或订阅中的所有 Azure Monitor 工作区:

  1. 在 Azure 门户中打开虚拟机的“标识”页。

  2. 如果“状态”为“否”,请将其更改为“是”。

  3. 选择“保存” 。

  4. 选择“Azure 角色分配”以查看订阅中的现有访问权限。

  5. 如果未列出订阅或资源组的“监视数据读取者”角色,请执行以下操作:

    1. 选择“+ 添加角色分配”。

    2. 对于“范围”,请选择“订阅”或“资源组”。

    3. 对于“角色”,请选择“监视数据读取者”。

    4. 选择“保存” 。

从 Azure Monitor 工作区进行配置
使用以下步骤,以便仅允许访问特定的 Azure Monitor 工作区:

  1. 在 Azure 门户中打开 Azure Monitor 工作区的“访问控制(IAM)”页。

  2. 选择“添加角色分配”。

  3. 选择“监视数据读取者”,然后选择“下一步”。

  4. 对于“将访问权限分配给”,请选择“托管标识”。

  5. 选择“+ 选择成员”。

  6. 对于“托管标识”,请选择“虚拟机”。

  7. 选择你的 Grafana 工作区,然后单击“选择”。

  8. 选择“查看 + 分配”以保存配置。

创建 Prometheus 数据源

Grafana 9.x 和更高版本支持 Azure 身份验证,但默认未启用该功能。 若要启用此功能,需要更新 Grafana 配置。 若要确定 Grafana.ini 文件的位置以及如何编辑 Grafana 配置,请查看 Grafana Labs 提供的配置 Grafana 文档。 知道配置文件在 VM 上的位置后,做出以下更新:

  1. 在虚拟机上找到并打开 Grafana.ini 文件。

  2. 在配置文件的 [auth] 节下,将 azure_auth_enabled 设置更改为 true

  3. 在配置文件的 [azure] 节下,将 managed_identity_enabled 设置更改为 true

  4. 在 Azure 门户中打开 Azure Monitor 工作区的“概述”页。

  5. 复制“查询终结点”,在下面的步骤中需要用到。

  6. 在 Azure 门户中打开你的 Azure 托管 Grafana 工作区。

  7. 单击“终结点”以查看 Grafana 工作区。

  8. 依次选择“配置”、“数据源”。

  9. 依次单击“添加数据源”、“Prometheus”。

  10. 对于“URL”,请粘贴你的 Azure Monitor 工作区的查询终结点。

  11. 选择“Azure 身份验证”将其打开。

  12. 对于“Azure 身份验证”下的“身份验证”,请选择“托管标识”。

  13. 滚动到页面底部,然后单击“保存并测试”

Prometheus 数据源的配置的屏幕截图。

常见问题解答

本部分提供常见问题的解答。

我缺少所有或部分指标。 如何进行故障排除?

可以使用此处的故障排除指南从托管代理引入 Prometheus 指标。

为什么我缺少具有名称相同但大小写不同的两个标签的指标?

Azure 托管的 Prometheus 是一个不区分大小写的系统。 如果字符串(例如指标名称、标签名称或标签值)与另一个时序的区别仅在于字符串的大小写,则它会将这些字符串视为相同的时序。 有关详细信息,请参阅 Prometheus 指标概述

指标数据中存在一些差距,为什么会这样?

在节点更新期间,对于从群集级别收集器收集的指标,你可能会看到指标数据中存在 1 到 2 分钟的间隔。 发生此差距的原因是运行数据的节点正在作为正常更新过程的一部分进行更新。 此更新过程影响整个群集范围内的目标,例如 kube-state-metrics 和指定的自定义应用程序目标。 手动或自动更新群集时,会出现这种情况。 此行为是预期行为,它的发生是由于它基于的节点正在更新。 此行为不会影响我们推荐的任何警报规则。

后续步骤