Настройка Grafana для высокой доступности
Note
Чтобы предотвратить дублирование оповещений при высокой доступности Grafana, требуются дополнительные шаги.
Дополнительную информацию см. в разделе Высокая доступность оповещений.
По умолчанию Grafana использует встроенную базу данных sqlite3 для хранения пользователей, дашбордов и других постоянных данных. Для высокой доступности необходимо использовать общую базу данных для хранения этих данных. Такой общей базой данных может быть MySQL или Postgres.
Архитектура
Ваша среда высокой доступности Grafana будет состоять из двух или более серверов Grafana (узлов кластера), обслуживаемых балансирующим нагрузку обратным прокси. Кластер использует архитектуру active-active, при которой балансировщик нагрузки распределяет трафик между узлами и перенаправляет трафик на выжившие узлы в случае сбоев. Необходимо настроить балансировщик нагрузки с обработчиком (listener), который отвечает на общее имя хоста кластера. Это общее имя — имя хоста, которое ваши пользователи используют для доступа к Grafana.
Для удобства мы рекомендуем настроить балансировщик нагрузки на обеспечение терминации SSL. Общая база данных Grafana отслеживает информацию о сессиях, поэтому вашему балансировщику нагрузки не потребуется предоставлять службы привязки сессий (session affinity). Подробности о его конфигурации и работе см. в документации вашего балансировщика нагрузки.
Перед началом
Прежде чем выполнять следующие задачи, настройте базу данных MySQL или Postgres с высокой доступностью. Настройка базы данных MySQL или Postgres для высокой доступности выходит за рамки этого руководства, но инструкции для каждой базы данных можно найти в интернете.
Настройка нескольких серверов Grafana на использование одной базы данных
Когда у вас есть доступная база данных Postgres или MySQL, можно настроить несколько экземпляров Grafana на использование общей серверной базы данных. Grafana имеет файлы конфигурации по умолчанию и пользовательские файлы конфигурации, и вы можете обновить настройки базы данных, изменив свой пользовательский файл конфигурации, как описано в разделе [database]. После настройки на использование общей базы данных несколько экземпляров Grafana будут сохранять все долговременные данные в этой базе данных.
Только для Grafana Enterprise: лицензирование серверов Grafana
Если вы используете Grafana Enterprise:
- Получите лицензионный токен на имя общего имени хоста вашего кластера.
- Отредактируйте параметр
root_urlв файле конфигурацииgrafana.iniкаждого узла, чтобы он отражал общее имя хоста кластера. - Установите лицензионный ключ как обычно. Дополнительную информацию об установке лицензионного ключа см. в разделе Добавление лицензии в экземпляр Grafana.
Высокая доступность оповещений
Grafana Alerting предоставляет режим высокой доступности. Он сохраняет семантику оповещений устаревших дашбордов, выполняя все оповещения на каждом сервере и отправляя уведомления только один раз на каждое оповещение. Распределение нагрузки между серверами в настоящее время не поддерживается.
Дополнительную информацию и инструкции по настройке высокой доступности оповещений см. в разделе Включение высокой доступности оповещений.
Оповещения устаревших дашбордов
Устаревший Grafana Alerting поддерживает ограниченную форму высокой доступности. В этой модели уведомления об оповещениях дедуплицируются при работе нескольких серверов. Это означает, что все оповещения выполняются на каждом сервере, но уведомления об оповещениях отправляются только один раз на каждое оповещение. Grafana не поддерживает распределение нагрузки между серверами.
Grafana Live
Grafana Live работает с ограничениями в конфигурации высокой доступности. Подробности см. в разделе Настройка конфигурации Grafana Live HA.
Сессии пользователей
По умолчанию Grafana использует стратегию auth token с базой данных. Это означает, что балансировщик нагрузки может направить пользователя на любой сервер Grafana без необходимости входа в систему на каждом сервере.