Что это
Регулярная автоматическая проверка «сервис жив и отвечает»: не просто процесс запущен, а база читается и страница открывается. По ней контейнер перезапускается, а администратору приходит сообщение.
Как используем
В «Переговорке» чат отвечает на /healthz с чтением и записью базы, а сторож перезапускает залипший контейнер не чаще трёх раз в час. Финансовый ассистент каждые 5 минут проверяется снаружи: контейнеры, база, отметка «бот жив» и адрес дашборда.
Где это нужно бизнесу
- Бот «вроде работает», но не отвечает, и узнаёте вы об этом от клиентов.
- Сервис завис ночью, а перезапустить его некому.
- Одна часть проекта стартовала раньше базы и упала.
Как мы это используем
- «Переговорка»: контейнеры отвечают на проверку здоровья, чат — на
/healthz с чтением и записью в базу. Сторож перезапускает залипший контейнер в течение минуты, но не чаще трёх раз в час. - Финансовый ассистент: каждые 5 минут внешняя проверка смотрит контейнеры, базу, отметку «бот жив» (бот ставит её раз в минуту) и адрес дашборда. При сбое — сообщение в Telegram.
- Тикет-система: Docker Compose запускает бота только после того, как MariaDB и Redis прошли проверку здоровья.
- Tech Poly VPN: мониторинг проверяет TCP-порт узла каждые 5 минут и тревожит администратора только после нескольких неудач подряд.
Типичные проблемы
- Проверка «процесс жив». Процесс может работать, а база — нет. Проверка должна делать то же, что делает пользователь.
- Ложные тревоги. Одиночный сбой сети не должен будить человека ночью — поэтому сигнал после нескольких неудач подряд.
- Бесконечный перезапуск. Ограничение «не чаще трёх раз в час» не даёт сломанному сервису перезапускаться по кругу.
Когда это не нужно
Статической странице проверка здоровья почти не нужна: ей хватает проверки срока сертификата.