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

教程:以编程方式调用 Grafana API

本教程介绍如何执行下列操作:

  • 将 Azure 托管 Grafana 角色分配给应用程序的服务主体
  • 检索应用程序详细信息
  • 获取访问令牌
  • 调用 Grafana API

先决条件

登录 Azure

使用 Azure 帐户登录到 https://portal.azure.com/ 的 Azure 门户。

将 Azure 托管 Grafana 角色分配给应用程序的服务主体

  1. 在 Azure 门户中,打开 Azure 托管 Grafana 工作区。

  2. 在导航菜单中,选择“访问控制(IAM)”。

  3. 依次选择“添加”、“添加角色分配”。

  4. 选择“Grafana 编辑者”角色,然后选择“下一步”。

  5. 在“将访问权限分配给”下,选择“用户、组或服务主体”。

  6. 选择“选择成员”,选择你的服务主体,然后单击“选择”。

  7. 选择“查看 + 分配”。

    在 Azure 平台中添加角色分配的屏幕截图。

检索应用程序详细信息

现在需要收集一些信息,用于获取 Grafana API 访问令牌并调用 Grafana API。

  1. 查找租户 ID:

    1. 在 Azure 门户中的“搜索资源、服务和文档(G+/)”中输入“Microsoft Entra ID”。
    2. 选择“Microsoft Entra ID”。
    3. 在左侧菜单中选择“属性”。
    4. 找到字段“租户 ID”并保存其值。

    Azure 门户的屏幕截图,显示如何获取租户 ID。

  2. 查找客户端 ID:

    1. 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单选择“应用注册”。
    2. 选择应用。
    3. 在“概述”中,找到“应用程序(客户端) ID”字段并保存其值。

    Azure 门户的屏幕截图,显示如何获取客户端 ID。

  3. 创建应用程序机密:

    1. 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单中选择“应用注册”。
    2. 选择应用。
    3. 从左菜单中选择“证书和机密”
    4. 选择“新建客户端机密”。
    5. 创建新的客户端密码并保存其值。

    Azure 门户的屏幕截图,显示如何创建机密。

    注意

    只能在创建机密后立即访问其值。 请在离开页面之前复制该值,以便在本教程的下一步中使用该值。

  4. 查找 Grafana 终结点 URL:

    1. 在Azure 门户中的“搜索资源、服务和文档(G+/)”栏中输入“Azure 托管 Grafana”。
    2. 选择“Azure 托管 Grafana”并打开 Azure 托管 Grafana 工作区。
    3. 从左侧菜单中选择“概述”并保存“终结点”值。

    Azure 平台的屏幕截图。终结点显示在“概述”页中。

获取访问令牌

若要访问 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

清理资源

如果你不打算继续使用这些资源,请按以下步骤删除它们:

  1. 删除 Azure 托管 Grafana:

    1. 在Azure 门户的“Azure 托管 Grafana”中,从左侧菜单选择“概述”。
    2. 选择“删除”。
    3. 输入资源名称以确认删除,然后选择“删除”。
  2. 删除 Microsoft Entra 应用程序:

    1. 在 Azure 门户的“Microsoft Entra ID”中,从左侧菜单中选择“应用注册”。
    2. 选择应用。
    3. 在“概述”选项卡上,选择“删除”。
    4. 选择“删除”。

后续步骤