Syntax highlighting of devops/grafana

= 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
}}}