API администрирования
[ru] DOCS_SHARED: "docs/grafana/latest/developer-resources/api-reference/http-api/api-legacy/admin.ru.md" ("/hugo/content/docs/grafana/latest/developer-resources/api-reference/http-api/api-legacy/admin.ru.md:23:1") shared directory "docs/grafana/latest/shared" not found
Требования
Чтобы использовать конечные точки API администрирования, необходимо применять basic-аутентификацию, и пользователь Grafana должен иметь право администратора сервера Grafana. Пользователь admin, с которым Grafana создаётся по умолчанию, имеет права на использование этих конечных точек API.
Вы не можете аутентифицироваться в HTTP API администрирования с помощью токенов сервисных учётных записей. Сервисные учётные записи ограничены организацией и ролью в организации, и им нельзя предоставить права администратора сервера Grafana.
Если вы используете Grafana Enterprise, для некоторых конечных точек потребуются определённые права. Дополнительные сведения см. в разделе Права управления доступом на основе ролей.
Получение настроек
GET /api/admin/settings
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
GET /api/admin/settings
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"DEFAULT": {
"app_mode":"production"
},
"analytics": {
"google_analytics_ua_id":"",
"reporting_enabled":"false"
},
"auth.anonymous":{
"enabled":"true",
"org_name":"Main Org.",
"org_role":"Viewer"
},
"auth.basic":{
"enabled":"false"
},
"auth.github":{
"allow_sign_up":"false",
"allowed_domains":"",
"allowed_organizations":"",
"api_url":"https://api.github.com/user",
"auth_url":"https://github.com/login/oauth/authorize",
"client_id":"some_id",
"client_secret":"************",
"enabled":"false",
"scopes":"user:email,read:org",
"team_ids":"",
"token_url":"https://github.com/login/oauth/access_token"
},
"auth.google":{
"allow_sign_up":"false","allowed_domains":"",
"api_url":"https://www.googleapis.com/oauth2/v1/userinfo",
"auth_url":"https://accounts.google.com/o/oauth2/auth",
"client_id":"some_client_id",
"client_secret":"************",
"enabled":"false",
"scopes":"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
"token_url":"https://accounts.google.com/o/oauth2/token"
},
"auth.ldap":{
"config_file":"/etc/grafana/ldap.toml",
"enabled":"false"
},
"auth.proxy":{
"auto_sign_up":"true",
"enabled":"false",
"header_name":"X-WEBAUTH-USER",
"header_property":"username"
},
"dashboards.json":{
"enabled":"false",
"path":"/var/lib/grafana/dashboards"
},
"database":{
"host":"127.0.0.1:0000",
"name":"grafana",
"password":"************",
"path":"grafana.db",
"ssl_mode":"disable",
"type":"sqlite3",
"user":"root"
},
"emails":{
"templates_pattern":"emails/*.html, emails/*.txt",
"welcome_email_on_sign_up":"false",
"content_types":"text/html"
},
"log":{
"buffer_len":"10000",
"level":"Info",
"mode":"file"
},
"log.console":{
"level":""
},
"log.file":{
"daily_rotate":"true",
"file_name":"",
"level":"",
"log_rotate":"true",
"max_days":"7",
"max_lines":"1000000",
"max_lines_shift":"28",
"max_size_shift":""
},
"paths":{
"data":"/tsdb/grafana",
"logs":"/logs/apps/grafana"},
"security":{
"admin_password":"************",
"admin_user":"admin",
"cookie_remember_name":"grafana_remember",
"cookie_username":"grafana_user",
"disable_gravatar":"false",
"login_remember_days":"7",
"secret_key":"************"
},
"server":{
"cert_file":"",
"cert_key":"",
"certs_watch_interval": "0s",
"domain":"mygraf.com",
"enable_gzip":"true",
"enforce_domain":"false",
"http_addr":"127.0.0.1",
"http_port":"0000",
"protocol":"http",
"root_url":"%(protocol)s://%(domain)s:%(http_port)s/",
"router_logging":"true",
"data_proxy_logging":"true",
"static_root_path":"public"
},
"session":{
"cookie_name":"grafana_sess",
"cookie_secure":"false",
"gc_interval_time":"",
"provider":"file",
"provider_config":"sessions",
"session_life_time":"86400"
},
"smtp":{
"cert_file":"",
"enabled":"false",
"from_address":"admin@grafana.localhost",
"from_name":"Grafana",
"ehlo_identity":"dashboard.example.com",
"host":"localhost:25",
"key_file":"",
"password":"************",
"skip_verify":"false",
"user":""
},
"users":{
"allow_org_create":"true",
"allow_sign_up":"false",
"auto_assign_org":"true",
"auto_assign_org_role":"Viewer"
}
}
Обновление настроек
PUT /api/admin/settings
Note
Доступно в Grafana Enterprise v8.0+.
Обновляет/удаляет и перезагружает настройки базы данных. Необходимо предоставить либо updates, либо removals, либо и то и другое.
Эта конечная точка поддерживает только изменения конфигурации auth.saml.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
PUT /api/admin/settings
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
"updates": {
"auth.saml": {
"enabled": "true"
}
},
"removals": {
"auth.saml": ["single_logout"]
},
}
Пример ответа:
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 32
{
"message":"Settings updated"
}
Коды состояния:
- 200 — OK
- 400 — Некорректный запрос
- 401 — Не авторизован
- 403 — Запрещено
- 500 — Внутренняя ошибка сервера
Статистика Grafana
GET /api/admin/stats
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
GET /api/admin/stats
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"users":2,
"orgs":1,
"dashboards":4,
"snapshots":2,
"tags":6,
"datasources":1,
"playlists":1,
"stars":2,
"alerts":2,
"activeUsers":1
}
Предварительный просмотр отчёта об использовании Grafana
GET /api/admin/usage-report-preview
Показывает предварительный просмотр отчёта об использовании, который будет отправлен поставщику.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
GET /api/admin/usage-report-preview
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"version": "8_4_0",
"metrics": {
"stats.active_admins.count": 1,
"stats.active_editors.count": 1,
"stats.active_sessions.count": 0,
"stats.active_users.count": 2,
"stats.active_viewers.count": 0,
"stats.admins.count": 1,
"stats.alert_rules.count": 0,
"stats.alerting.ds.other.count": 0,
"stats.alerts.count": 5,
"stats.annotations.count": 6,
"stats.api_keys.count": 1
}
}
Глобальные пользователи
POST /api/admin/users
Создаёт нового пользователя.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
POST /api/admin/users HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"name":"User",
"email":"user@graf.com",
"login":"user",
"password":"userpassword",
"OrgId": 1
}
Обратите внимание, что OrgId — необязательный параметр, который можно использовать для назначения нового пользователя другой организации, когда
auto_assign_org установлен в true.
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{"id":5,"message":"User created"}
Пароль пользователя
PUT /api/admin/users/:id/password
Меняет пароль конкретного пользователя.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
PUT /api/admin/users/2/password HTTP/1.1
Accept: application/json
Content-Type: application/json
{"password":"userpassword"}
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{"message": "User password updated"}
Права
PUT /api/admin/users/:id/permissions
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
PUT /api/admin/users/2/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
{"isGrafanaAdmin": true}
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{"message": "User permissions updated"}
Удаление глобального пользователя
DELETE /api/admin/users/:id
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
DELETE /api/admin/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{"message": "User deleted"}
Токены аутентификации пользователя
GET /api/admin/users/:id/auth-tokens
Возвращает список всех токенов аутентификации (устройств), с которых пользователь в настоящий момент авторизован.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
GET /api/admin/users/1/auth-tokens HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
[
{
"id": 361,
"isActive": false,
"clientIp": "127.0.0.1",
"browser": "Chrome",
"browserVersion": "72.0",
"os": "Linux",
"osVersion": "",
"device": "Other",
"createdAt": "2019-03-05T21:22:54+01:00",
"seenAt": "2019-03-06T19:41:06+01:00"
},
{
"id": 364,
"isActive": false,
"clientIp": "127.0.0.1",
"browser": "Mobile Safari",
"browserVersion": "11.0",
"os": "iOS",
"osVersion": "11.0",
"device": "iPhone",
"createdAt": "2019-03-06T19:41:19+01:00",
"seenAt": "2019-03-06T19:41:21+01:00"
}
]
Отзыв токена аутентификации пользователя
POST /api/admin/users/:id/revoke-auth-token
Отзывает указанный токен аутентификации (устройство) для пользователя. Пользователь выданного токена аутентификации (устройства) больше не будет авторизован, и при следующей активности потребуется аутентификация заново.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
POST /api/admin/users/1/revoke-auth-token HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"authTokenId": 364
}
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"message": "User auth token revoked"
}
Выход пользователя
POST /api/admin/users/:id/logout
Выход пользователя отзывает все токены аутентификации (устройства) для пользователя. Пользователь выданных токенов аутентификации (устройств) больше не будет авторизован, и при следующей активности потребуется аутентификация заново.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
POST /api/admin/users/1/logout HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"message": "User auth token revoked"
}
Перезагрузка конфигураций провижининга
POST /api/admin/provisioning/dashboards/reload
POST /api/admin/provisioning/datasources/reload
POST /api/admin/provisioning/plugins/reload
POST /api/admin/provisioning/access-control/reload
POST /api/admin/provisioning/alerting/reload
Перезагружает файлы конфигурации провижининга для указанного типа и повторно провижинит сущности. Операция не вернёт результат, пока новые провижиненные сущности не будут сохранены в базе данных. В случае дашбордов она остановит опрос изменений в файлах дашбордов, а затем перезапустит его с новыми конфигурациями после возврата.
Требуемые права
Работает только с basic-аутентификацией (имя пользователя и пароль). Дополнительные сведения см. в разделе Требования.
Пример запроса:
POST /api/admin/provisioning/dashboards/reload HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"message": "Dashboards config reloaded"
}
Перезагрузка конфигурации LDAP
Эта конечная точка была удалена из API администрирования. Начиная с Grafana 12.4.0 настройки SSO автоматически перезагружают настройки LDAP из базы данных или из .toml-файла.
POST /api/admin/ldap/reload
Пример ответа:
HTTP/1.1 410
Content-Type: application/json
{"message":"This endpoint has been removed. LDAP configuration is now loaded from SSO settings."}
Ротация ключей шифрования данных
POST /api/admin/encryption/rotate-data-keys
Ротирует ключи шифрования данных.
Пример запроса:
POST /api/admin/encryption/rotate-data-keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 204
Content-Type: application/json
Повторное шифрование ключей шифрования данных
POST /api/admin/encryption/reencrypt-data-keys
Повторно шифрует ключи шифрования данных.
Пример запроса:
POST /api/admin/encryption/reencrypt-data-keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 204
Content-Type: application/json
Повторное шифрование секретов
POST /api/admin/encryption/reencrypt-secrets
Повторно шифрует секреты.
Пример запроса:
POST /api/admin/encryption/reencrypt-secrets HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 204
Content-Type: application/json
Откат секретов
POST /api/admin/encryption/rollback-secrets
Откатывает секреты.
Пример запроса:
POST /api/admin/encryption/rollback-secrets HTTP/1.1
Accept: application/json
Content-Type: application/json
Пример ответа:
HTTP/1.1 204
Content-Type: application/json