菜单
文档breadcrumb arrow Grafana 文档breadcrumb arrow 开发者breadcrumb arrow HTTP APIbreadcrumb arrow 示例breadcrumb arrow API 教程:为组织创建服务帐户令牌和仪表盘
Enterprise 开源

为组织创建服务帐户令牌和仪表盘

使用 Grafana API 设置新的 Grafana 组织,或将动态生成的仪表盘添加到现有组织。

认证

访问 API 有两种认证方法

  • 基本认证:Grafana Admin 用户可以通过基本认证访问 Grafana API 的某些部分。
  • 服务帐户令牌:所有组织操作都可以通过服务帐户令牌访问。服务帐户令牌与一个组织关联,可用于为该组织创建特定的仪表盘和其他组件。

如何创建新组织和服务帐户令牌

任务是创建一个新组织,然后添加一个可供其他用户使用的令牌。在下面的使用基本认证的示例中,用户是 admin,密码是 admin

  1. 创建组织。以下是使用 curl 的示例

    bash
    curl -X POST -H "Content-Type: application/json" -d '{"name":"apiorg"}' http://admin:admin@localhost:3000/api/orgs

    这将返回一个响应:{"message":"Organization created","orgId":6}。在后续步骤中使用 orgId。

  2. 可选步骤。如果组织之前已创建且/或步骤 3 失败,请首先将您的 Admin 用户添加到组织

    bash
    curl -X POST -H "Content-Type: application/json" -d '{"loginOrEmail":"admin", "role": "Admin"}' http://admin:admin@localhost:3000/api/orgs/<org id of new org>/users
  3. 将 Admin 用户的组织上下文切换到新组织:

    bash
    curl -X POST http://admin:admin@localhost:3000/api/user/using/<id of new org>
  4. 创建服务帐户:

    bash
    curl -X POST -H "Content-Type: application/json" -d '{"name":"test", "role": "Admin"}' http://admin:admin@localhost:3000/api/serviceaccounts
  5. 为上一步创建的服务帐户创建服务帐户令牌

    bash
    curl -X POST -H "Content-Type: application/json" -d '{"name":"test-token"}' http://admin:admin@localhost:3000/api/serviceaccounts/<service account id>/tokens

    这将返回一个响应

    http
    HTTP/1.1 200
    Content-Type: application/json
    
    {
      "id": 7,
      "name": "test-token",
      "key": "eyJrIjoiVjFxTHZ6dGdPSjg5Um92MjN1RlhjMkNqYkZUbm9jYkwiLCJuIjoiZ3JhZmFuYSIsImlkIjoxfQ=="
    }

    请将此处返回的密钥保存在您的密码管理器中,将来无法再次获取。

如何添加仪表盘

使用上一步创建的令牌,您可以创建仪表盘或执行其他操作,而无需切换组织。

  1. 使用密钥(或称为 Bearer Token)添加仪表盘
bash
curl -X POST --insecure -H "Authorization: Bearer eyJrIjoiR0ZXZmt1UFc0OEpIOGN5RWdUalBJTllUTk83VlhtVGwiLCJuIjoiYXBpa2V5Y3VybCIsImlkIjo2fQ==" -H "Content-Type: application/json" -d '{
  "dashboard": {
    "id": null,
    "title": "Production Overview",
    "tags": [ "templated" ],
    "timezone": "browser",
    "rows": [
      {
      }
    ],
    "schemaVersion": 6,
    "version": 0
  },
  "overwrite": false
}' https://:3000/api/dashboards/db

注意:如果您在 Grafana UI 中使用 Share > Export 菜单导出仪表盘以供外部共享,则无法导入该仪表盘。请改为点击 View JSON 并将其保存到文件,或通过 API 获取 JSON 输出。