Azure Monitor 数据源
Grafana 内置了对 Azure Monitor 的支持,Azure Monitor 是 Azure 服务,用于最大程度提高 Azure 云中应用程序和服务的可用性和性能。本主题详细说明了 Azure Monitor 数据源的配置和查询。
有关如何将数据源添加到 Grafana 的说明,请参阅管理文档。只有组织管理员角色的用户才能添加数据源。
添加 Azure Monitor 数据源后,您可以配置它,以便您的 Grafana 实例用户在构建仪表盘和使用Explore 时可以在其查询编辑器中创建查询。
Azure Monitor 数据源支持可视化来自四个 Azure 服务的数据:
- Azure Monitor 指标:从您的 Azure 账户中的资源收集数值数据。
- Azure Monitor 日志:从您的 Azure 账户收集日志和性能数据,并使用 Kusto 查询语言 (KQL) 进行查询。
- Azure Resource Graph:跨订阅查询您的 Azure 资源。
- Azure Monitor Application Insights:收集追踪日志数据和其他应用程序性能指标。
配置数据源
访问数据源配置页面
点击左侧菜单中的 连接。
在“您的连接”下,点击 数据源。
在搜索栏中输入
Azure Monitor
。点击 Azure Monitor。
将显示数据源的设置选项卡。
配置 Azure Active Directory (AD) 认证
您必须在 Azure AD 中创建应用注册和服务主体来认证数据源。有关配置详情,请参阅Azure 文档中的服务主体。
您创建的应用注册必须在订阅上分配有 Reader
角色。更多信息请参阅Azure 文档中的角色分配。
如果您在 Azure 中托管 Grafana,例如在 App Service 或 Azure 虚拟机中,您可以配置 Azure Monitor 数据源使用托管标识进行安全认证,而无需在 Grafana 中输入凭据。详情请参阅使用托管标识进行配置。
如果您在 Kubernetes 环境(例如 AKS)中托管 Grafana,并且需要访问 Azure 资源,您可以配置 Azure Monitor 数据源使用工作负载标识进行安全认证,而无需在 Grafana 中输入凭据。详情请参阅使用工作负载标识进行配置。
名称 | 描述 |
---|---|
认证 | 启用托管标识。选择托管标识会隐藏许多其他字段。详情请参阅使用托管标识进行配置。 |
Azure 云 | 设置您的 Azure 账户的国家/地区云。对于大多数用户,默认为“Azure”。详情请参阅Azure 文档。 |
目录(租户)ID | 设置用于认证的 Azure AD 应用注册的目录/租户 ID。详情请参阅Azure 租户和应用 ID 文档。 |
应用程序(客户端)ID | 设置用于认证的 Azure AD 应用注册的应用程序/客户端 ID。 |
客户端密钥 | 设置用于认证的 Azure AD 应用注册的应用程序客户端密钥。详情请参阅Azure 应用程序密钥文档。 |
默认订阅 | (可选)设置模板变量使用的默认订阅。 |
启用基本日志 | 允许此数据源对受支持的 Log Analytics 工作区中的基本日志表执行查询。这些查询可能会产生额外费用。 |
供应数据源
您可以将数据源定义和配置在 YAML 文件中,作为 Grafana 供应系统的一部分。有关供应的更多信息以及可用的配置选项,请参阅供应 Grafana。
供应示例
Azure AD 应用注册(客户端密钥)
apiVersion: 1 # config file version
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: clientsecret
cloudName: azuremonitor # See table below
tenantId: <tenant-id>
clientId: <client-id>
subscriptionId: <subscription-id> # Optional, default subscription
secureJsonData:
clientSecret: <client-secret>
version: 1
托管标识
apiVersion: 1 # config file version
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: msi
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
工作负载标识
apiVersion: 1 # config file version
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: workloadidentity
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
当前用户
注意
当前用户认证需要
oauthPassThru
属性才能正常工作。此外,disableGrafanaCache
是必要的,以防止数据源返回用户无权访问的资源的缓存响应。
apiVersion: 1 # config file version
datasources:
- name: Azure Monitor
type: grafana-azure-monitor-datasource
access: proxy
jsonData:
azureAuthType: currentuser
oauthPassThru: true
disableGrafanaCache: true
subscriptionId: <subscription-id> # Optional, default subscription
version: 1
支持的云名称
Azure 云 | cloudName 值 |
---|---|
Microsoft Azure 公有云 | azuremonitor (默认) |
Microsoft 中国国家云 | chinaazuremonitor |
美国政府云 | govazuremonitor |
注意
当前用户认证的云名称与上表中
cloudName
的值不同。公有云名称为AzureCloud
,中国国家云名称为AzureChinaCloud
,美国政府云名称为AzureUSGovernment
。
配置托管标识
注意
托管标识仅在Azure Managed Grafana 或部署在 Azure 中的 Grafana OSS/Enterprise 中可用。Grafana Cloud 不支持此功能。
如果您在 Azure 中托管 Grafana(例如 App Service 或 Azure 虚拟机),并且在您的 VM 上启用了托管标识,则可以使用托管标识在 Grafana 中配置 Azure Monitor。这使您可以安全地认证数据源,而无需通过 Azure AD 应用注册手动配置凭据。有关 Azure 托管标识的详细信息,请参阅Azure 文档。
为 Grafana 启用托管标识
在 Grafana 服务器配置的
[azure]
部分设置managed_identity_enabled
标志。[azure] managed_identity_enabled = true
在 Azure Monitor 数据源配置中,将认证设置为托管标识。
这将隐藏目录 ID、应用程序 ID 和客户端密钥字段,并且数据源将使用托管标识来认证 Azure Monitor 指标和日志以及 Azure Resource Graph。
显示托管标识认证的 Azure Monitor 截图 您可以在 Grafana 服务器配置的
[azure]
部分设置managed_identity_client_id
字段,以允许使用用户分配的托管标识,而不是默认的系统分配标识。
[azure]
managed_identity_enabled = true
managed_identity_client_id = USER_ASSIGNED_IDENTITY_CLIENT_ID
配置工作负载标识
如果您在 Kubernetes 环境(例如 AKS)中托管 Grafana,并且与托管标识结合使用,则可以使用工作负载标识配置 Azure Monitor。这使您可以安全地认证数据源,而无需通过 Azure AD 应用注册手动配置凭据。有关工作负载标识的详细信息,请参阅Azure 工作负载标识文档。
为 Grafana 启用工作负载标识
在 Grafana 服务器配置的
[azure]
部分设置workload_identity_enabled
标志。[azure] workload_identity_enabled = true
在 Azure Monitor 数据源配置中,将认证设置为工作负载标识。
这将隐藏目录 ID、应用程序 ID 和客户端密钥字段,并且数据源将使用工作负载标识来认证 Azure Monitor 指标和日志以及 Azure Resource Graph。
显示工作负载标识认证的 Azure Monitor 截图 还有一些额外的配置变量可以控制认证方法。
workload_identity_tenant_id
表示包含托管标识的 Azure AD 租户,workload_identity_client_id
表示托管标识的客户端 ID(如果与默认客户端 ID 不同),workload_identity_token_file
表示令牌文件的路径。有关这些变量应使用哪些值(如果有)的更多信息,请参阅文档。[azure] workload_identity_enabled = true workload_identity_tenant_id = IDENTITY_TENANT_ID workload_identity_client_id = IDENTITY_CLIENT_ID workload_identity_token_file = TOKEN_FILE_PATH
配置当前用户认证
注意
当前用户认证是一项实验性功能。不提供工程和 On-call 支持。除代码注释外,文档有限或不提供。不提供 SLA。请联系 Grafana 支持启用 Grafana Cloud 中的此功能。使用此认证方法时,Grafana 的某些方面可能无法按预期工作。
如果您的 Grafana 实例配置了 Azure Entra(前身为 Active Directory)认证进行登录,则可以使用此认证方法将当前登录用户的凭据转发给数据源。然后,用户的凭据将用于从数据源请求数据。有关如何使用 Azure Entra 配置 Grafana 实例的详细信息,请参阅文档。
注意
需要额外的配置来确保用于通过 Azure 登录用户的应用注册提供的访问令牌具有数据源所需的权限。
应用注册必须配置为颁发访问令牌和 ID 令牌。
- 在 Azure 门户中,打开需要配置的应用注册。
- 在侧边菜单中选择认证。
- 在隐式授权和混合流下,同时选中访问令牌和 ID 令牌框。
- 保存更改以确保应用注册已更新。
应用注册还必须配置额外的API 权限,以便为经过认证的用户提供访问数据源使用的 API 的权限。
- 在 Azure 门户中,打开需要配置的应用注册。
- 在侧边菜单中选择API 权限。
- 确保在 Microsoft Graph 部分下存在
openid
、profile
、offline_access
权限。如果不存在,则必须添加。- 选择添加权限并选择以下权限。它们必须单独添加。更多信息请参阅Azure 文档。
- 选择Azure Service Management > 委派权限 >
user_impersonation
> 添加权限- 选择我的组织使用的 API > 搜索 Log Analytics API 并选择它 > 委派权限 >
Date.Read
> 添加权限添加所有权限后,必须更新 Grafana 中的 Azure 认证部分。必须更新
scopes
部分以包含.default
scope,以确保 Grafana 请求的令牌具有访问应用注册上声明的所有 API 的权限。更新后,scopes 值应等于:.default openid email profile
。
由于用户的凭据不在范围内,此认证方法本质上不支持所有后端功能。受影响的功能包括告警、报告和记录的查询。为了在使用配置了当前用户认证的数据源时支持后端查询,您可以配置服务凭据。另请注意,默认情况下,使用当前用户认证的数据源会禁用查询和资源缓存。
注意
要配置回退服务凭据,必须将 特性开关
idForwarding
设置为true
,并且在 Azure 配置部分中启用user_identity_fallback_credentials_enabled
(当user_identity_enabled
设置为true
时默认启用)。
回退凭据的权限可能需要广泛,以便适当支持后端功能。例如,用户创建的告警查询取决于其权限。如果用户尝试为回退凭据无法访问的资源创建告警,则该告警将失败。
为 Grafana 启用当前用户认证
在 Grafana 服务器配置的
[azure]
部分设置user_identity_enabled
标志。默认情况下,这将同时启用回退服务凭据。如果您想在实例级别禁用服务凭据,请将user_identity_fallback_credentials_enabled
设置为 false。[azure] user_identity_enabled = true
在 Azure Monitor 数据源配置中,将认证设置为当前用户。如果在实例级别启用了回退服务凭据,则会显示一个附加配置部分,您可以使用该部分启用或禁用此数据源使用服务凭据。
显示当前用户认证的 Azure Monitor 截图 如果您希望此数据源的后端功能正常工作,请启用服务凭据并使用最适用于您情况的凭据配置数据源。
查询数据源
Azure Monitor 数据源可以查询 Azure Monitor 指标和日志、Azure Resource Graph 和 Application Insights 追踪的数据。每个源都有其自己的专用查询编辑器。
详情请参阅查询编辑器文档。
使用模板变量
您可以使用变量,而不是在指标查询中硬编码服务器、应用程序和传感器名称等详细信息。Grafana 在仪表盘顶部的下拉选择框中列出这些变量,以帮助您更改仪表盘中显示的数据。Grafana 将此类变量称为模板变量。
详情请参阅模板变量文档。
Application Insights 和 Insights Analytics(已移除)
在 Grafana v8.0 之前,您可以使用 Application Insights 和 Insights Analytics 查询相同的 Azure Application Insights 数据。
这些查询在 Grafana v7.5 中已弃用。在 Grafana v8.0 中,Application Insights 和 Insights Analytics 被设置为只读,转而通过指标和日志查询此数据。这些查询方法在 Grafana v9.0 中已完全移除。
如果您正在从 Grafana v9.0 之前的版本升级,并且依赖于 Application Insights 和 Analytics 查询,请参阅Grafana v9.0 文档以获取有关将这些查询迁移到指标和日志查询的帮助。