为组织创建服务帐户令牌和仪表盘
使用 Grafana API 设置新的 Grafana 组织,或将动态生成的仪表盘添加到现有组织。
认证
访问 API 有两种认证方法
- 基本认证:Grafana Admin 用户可以通过基本认证访问 Grafana API 的某些部分。
- 服务帐户令牌:所有组织操作都可以通过服务帐户令牌访问。服务帐户令牌与一个组织关联,可用于为该组织创建特定的仪表盘和其他组件。
如何创建新组织和服务帐户令牌
任务是创建一个新组织,然后添加一个可供其他用户使用的令牌。在下面的使用基本认证的示例中,用户是 admin
,密码是 admin
。
创建组织。以下是使用 curl 的示例
curl -X POST -H "Content-Type: application/json" -d '{"name":"apiorg"}' http://admin:admin@localhost:3000/api/orgs
这将返回一个响应:
{"message":"Organization created","orgId":6}
。在后续步骤中使用 orgId。可选步骤。如果组织之前已创建且/或步骤 3 失败,请首先将您的 Admin 用户添加到组织
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
curl -X POST http://admin:admin@localhost:3000/api/user/using/<id of new org>
curl -X POST -H "Content-Type: application/json" -d '{"name":"test", "role": "Admin"}' http://admin:admin@localhost:3000/api/serviceaccounts
为上一步创建的服务帐户创建服务帐户令牌
curl -X POST -H "Content-Type: application/json" -d '{"name":"test-token"}' http://admin:admin@localhost:3000/api/serviceaccounts/<service account id>/tokens
这将返回一个响应
HTTP/1.1 200 Content-Type: application/json { "id": 7, "name": "test-token", "key": "eyJrIjoiVjFxTHZ6dGdPSjg5Um92MjN1RlhjMkNqYkZUbm9jYkwiLCJuIjoiZ3JhZmFuYSIsImlkIjoxfQ==" }
请将此处返回的密钥保存在您的密码管理器中,将来无法再次获取。
如何添加仪表盘
使用上一步创建的令牌,您可以创建仪表盘或执行其他操作,而无需切换组织。
- 使用密钥(或称为 Bearer Token)添加仪表盘
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 输出。