Документацияbreadcrumb arrow Grafanabreadcrumb arrow Документация GlaberGraphbreadcrumb arrow Ресурсы для разработчиковbreadcrumb arrow API Grafanabreadcrumb arrow Справочное руководство по HTTP API Grafanabreadcrumb arrow Примерыbreadcrumb arrow Создание токенов сервисных учётных записей и дашбордов для организации

Создание токенов сервисных учётных записей и дашбордов для организации

Используйте API Grafana для создания новых организаций Grafana или для добавления динамически сгенерированных дашбордов в существующую организацию.

Аутентификация

Существует два способа аутентификации для доступа к API:

  • Basic-аутентификация: администратор Grafana может получить доступ к части API Grafana через basic-аутентификацию.
  • Токены сервисных учётных записей: все действия организации доступны через токен сервисной учётной записи. Токен сервисной учётной записи связан с организацией. Его можно использовать для создания дашбордов и других компонентов, специфичных для этой организации.

Как создать новую организацию и токен сервисной учётной записи

Задача — создать новую организацию, а затем добавить токен, который смогут использовать другие пользователи. В приведённых ниже примерах с basic-аутентификацией пользователь — 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 завершается ошибкой, сначала добавьте вашего администратора в организацию:

    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. Переключите контекст организации для администратора на новую организацию:

    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-токен, как его ещё называют):
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
}' http://localhost:3000/api/dashboards/db

Примечание: Если вы экспортируете дашборд для внешнего обмена через меню Share > Export в интерфейсе Grafana, вы не сможете импортировать этот дашборд. Вместо этого нажмите View JSON и сохраните его в файл или получите вывод JSON через API.