Создание токенов сервисных учётных записей и дашбордов для организации
Используйте API Grafana для создания новых организаций Grafana или для добавления динамически сгенерированных дашбордов в существующую организацию.
Аутентификация
Существует два способа аутентификации для доступа к API:
- Basic-аутентификация: администратор Grafana может получить доступ к части API Grafana через basic-аутентификацию.
- Токены сервисных учётных записей: все действия организации доступны через токен сервисной учётной записи. Токен сервисной учётной записи связан с организацией. Его можно использовать для создания дашбордов и других компонентов, специфичных для этой организации.
Как создать новую организацию и токен сервисной учётной записи
Задача — создать новую организацию, а затем добавить токен, который смогут использовать другие пользователи. В приведённых ниже примерах с basic-аутентификацией пользователь — 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 завершается ошибкой, сначала добавьте вашего администратора в организацию:
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-токен, как его ещё называют):
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
}' http://localhost:3000/api/dashboards/db
Примечание: Если вы экспортируете дашборд для внешнего обмена через меню Share > Export в интерфейсе Grafana, вы не сможете импортировать этот дашборд. Вместо этого нажмите View JSON и сохраните его в файл или получите вывод JSON через API.