Проверка работоспособности кластера
Доступно с версии 3.1.0.
В Tarantool DataBase работоспособность (здоровье) узлов кластера и репликации можно контролировать
с помощью встроенного модуля healthcheck.
Модуль позволяет:
- получать текущее состояние здоровья экземпляра;
- устанавливать оповещения (alerts) в кластере при проблемах с работоспособностью узла;
- настраивать запуск дополнительных проверок;
- задавать свой формат ответа;
- создавать пользовательские проверки здоровья в коде миграции или роли, например, чтобы отслеживать размер спейса.
Встроенные проверки модуля отслеживают:
- текущее состояние экземпляра (значение
box.info.status); - наличие директории для снимков данных
snapshot.dir; - наличие директории журнала упреждающей записи
wal.dir; - наличие
upstream-узла, с которого принимаются данные репликации; - репликационный статус текущего экземпляра (значение
box.info.replication[{n}].upstream.status).
Для проверки здоровья узлов используется отдельная технологическая роль roles.healthcheck.
Роль задается на экземплярах кластера и позволяет настроить HTTP-адрес обработчика запросов для отправки GET-запросов.
Чтобы задать HTTP-сервер для запросов, используется модуль roles.httpd.
Настроить модуль можно в YAML-конфигурации кластера, указав роли roles.healthcheck и roles.httpd в секции roles,
а также настройки этих ролей в roles_cfg:
roles_cfg:roles.healthcheck:http:- endpoints:- path: /healthcheckset_alerts: truechecks:include: [all]exclude: ['replication.upstream_absent', 'replication.state_bad']groups:routers:roles: [roles.httpd, roles.healthcheck]replicasets:router-msk:leader: router-mskinstances:router-msk:roles_cfg:roles.httpd:default:listen: tarantool-router-msk:8181#...
Здесь:
roles.healthcheck.http.endpoints.path— адрес обработчика запросов на работоспособность;healthcheck.http.set_alerts— включить оповещения в кластере при проблемах со здоровьем узла;healthcheck.http.checks.includeиexclude— список запускаемых и отключенных проверок соответственно. В примере запускаются все проверки, кроме проверок репликации;roles.httpd.default.listen— адрес и порт, на которых запущен HTTP-сервер.
Полный список опций конфигурации для роли roles.healthcheck можно найти в Справочнике по конфигурации.