= Grafana =
<<TableOfContents(2)>>
== Полезные ссылки ==
[[https://grafana.com/|Homepage]]
== Полезные команды ==
grafana-cli
{{{#!highlight bash
# --- сброс пароля администратора
grafana-cli --homepath "/usr/share/grafana/" admin reset-admin-password new-pass
}}}
Explorer
{{{
# --- форматируем вывод: оставляем только значение одного поля log
{hostname="etl", container_name="etl44"} | json | line_format "{{ .log }}"
}}}
== API ==
=== Получение токена ===
{{{#!wiki note
'''Примечание'''
Начиная с версии 9.1 предпочтительным способом авторизации являются сервисные аккаунты (вместо API ключей)
}}}
[[https://grafana.com/docs/grafana/latest/administration/api-keys/|Service account]]
Создаем сервисный аккаунт в веб-интерфейсе grafana: Home -> Administration -> Service accounts -> Create service account
Проверяем работу
{{{#!highlight bash
curl -H "Authorization: Bearer glsa_secret" -X GET 'http://grafana.example.com/api/access-control/user/permissions' | jq
# {
# "alert.instances.external:read": [
# "datasources:*",
# "datasources:*"
# ],
# "alert.instances.external:write": [
# "datasources:*"
# ],
# ...
}}}
== Резервное копирование и восстановление ==
[[https://github.com/ysde/grafana-backup-tool|grafana-backup-tool]]
Создание резервной копии
{{{#!highlight bash
# --- создаем виртуальное окружение
python -m venv venv
source venv/bin/activate
# --- устаналиваем утилиту
pip install grafana-backup
# --- задаем переменные окружения (есть другие варианты, см. ссылку)
export GRAFANA_URL=http://grafana.example.com
export GRAFANA_TOKEN=glsa_secret
# --- запускаем резервирование
grafana-backup save
}}}
В результате будет созадана директория ''_OUTPUT_'', в которой будет расположен ''tar.gz'' архив и история версий всех панелей.
Восстановление:
{{{#!highlight bash
source venv/bin/activate
export GRAFANA_URL=http://grafana.example.com
export GRAFANA_TOKEN=glsa_secret
grafana-backup restore _OUTPUT_/202307181939.tar.gz
}}}