教程:以编程方式调用 Grafana API
本教程介绍如何执行下列操作:
- 将 Azure 托管 Grafana 角色分配给应用程序的服务主体
- 检索应用程序详细信息
- 获取访问令牌
- 调用 Grafana API
先决条件
- 具有活动订阅的 Azure 帐户。 创建帐户。
- Azure 托管 Grafana 工作区。 创建 Azure 托管 Grafana 实例。
- 具有服务主体的 Microsoft Entra 应用程序。 创建 Microsoft Entra 应用程序和服务主体。 为简单起见,请使用 Azure 托管 Grafana 实例所在同一 Microsoft Entra 租户中的应用程序。
登录 Azure
使用 Azure 帐户登录到 https://portal.azure.cn/ 的 Azure 门户。
将 Azure 托管 Grafana 角色分配给应用程序的服务主体
在 Azure 门户中打开你的托管 Grafana 实例。
在导航菜单中,选择“访问控制(IAM)”。
依次选择“添加”、“添加角色分配”。
选择“Grafana 编辑者”角色,然后选择“下一步”。
在“将访问权限分配给”下,选择“用户、组或服务主体”。
选择“选择成员”,选择你的服务主体,然后单击“选择”。
选择“查看 + 分配”。
检索应用程序详细信息
现在需要收集一些信息,用于获取 Grafana API 访问令牌并调用 Grafana API。
查找租户 ID:
- 在 Azure 门户中的“搜索资源、服务和文档(G+/)”中输入“Microsoft Entra ID”。
- 选择“Microsoft Entra ID”。
- 在左侧菜单中选择“属性”。
- 找到字段“租户 ID”并保存其值。
查找客户端 ID:
- 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单选择“应用注册”。
- 选择应用。
- 在“概述”中,找到“应用程序(客户端) ID”字段并保存其值。
创建应用程序机密:
- 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单中选择“应用注册”。
- 选择应用。
- 从左菜单中选择“证书和机密”。
- 选择“新建客户端机密”。
- 创建新的客户端密码并保存其值。
注意
只能在创建机密后立即访问其值。 请在离开页面之前复制该值,以便在本教程的下一步中使用该值。
查找 Grafana 终结点 URL:
- 在Azure 门户中的“搜索资源、服务和文档(G+/)”栏中输入“Azure 托管 Grafana”。
- 选择“Azure 托管 Grafana”并打开托管 Grafana 工作区。
- 从左侧菜单中选择“概述”并保存“终结点”值。
获取访问令牌
若要访问 Grafana API,需要获取访问令牌。 可以使用 Azure CLI 或发出 POST 请求获取访问令牌。
通过运行 az login 命令登录到 Azure CLI,并将 <client-id>
、<client-secret>
和 <tenant-id>
替换为在上一步中收集的应用程序(客户端)ID、客户端密码和租户 ID:
az login --service-principal --username "<client-id>" --password "<client-secret>" --tenant "<tenant-id>"
使用命令 az grafana api-key create 创建密钥。 下面是示例输出:
az grafana api-key create --key keyname --name <name> --resource-group <rg> --role editor --output json
{
"id": 3,
"key": "<redacted>",
"name": "keyname"
}
注意
只能在此处查看此密钥一次。 请将其保存在安全位置。
调用 Grafana API
现在,可以使用上一步中检索到的访问令牌作为 Authorization 标头调用 Grafana API。 例如:
curl -X GET \
-H 'Authorization: Bearer <access-token>' \
https://<grafana-url>/api/user
将 <access-token>
替换为上一步中检索到的访问令牌,并将 <grafana-url>
替换为 Grafana 实例的终结点 URL。 例如,https://my-grafana-abcd.cuse.grafana.azure.com
。
清理资源
如果你不打算继续使用这些资源,请按以下步骤删除它们:
删除 Azure 托管 Grafana:
- 在Azure 门户的“Azure 托管 Grafana”中,从左侧菜单选择“概述”。
- 选择“删除”。
- 输入资源名称以确认删除,然后选择“删除”。
删除 Microsoft Entra 应用程序:
- 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单中选择“应用注册”。
- 选择应用。
- 在“概述”选项卡上,选择“删除”。
- 选择“删除”。