Как настроить мониторинг бекапов по принципу «переключателя мертвеца»
Мониторинг резервного копирования: стратегия «Dead Man’s Switch»
В предыдущей статье мы обсуждали настройку PITR-бекапов для PostgreSQL. Сегодня мы затронем критически важную тему — мониторинг процесса резервного копирования. Распространенная проблема заключается в том, что после добавления скрипта бэкапа в crontab администраторы часто забывают о нем, рискуя обнаружить отсутствие актуальных данных в момент необходимости восстановления.
Для решения этой задачи идеально подходит концепция «переключателя мертвеца» (Dead Man’s Switch). В контексте мониторинга это система, ожидающая регулярных сигналов («пингов») от вашего скрипта. Если сигнал не поступает в заданный промежуток времени, система автоматически отправляет алерт.
Реализация мониторинга
Одним из наиболее эффективных инструментов для этих целей является healthchecks.io. Вы можете использовать как облачную версию, так и развернуть собственное self-hosted решение, чтобы избежать ограничений сервиса.
Интеграция предельно проста. Вам достаточно добавить curl-запрос в конец вашего скрипта или вызвать его через pipe в команде cron:
curl -fsS -m 10 --retry 5 -o /dev/null https://healthckecs.io/ping/efe3-da-ffdsfsd-qqsdfsf
Сервис позволяет не только отслеживать факт выполнения задачи, но и контролировать длительность процесса (если отправлять пинг в начале и в конце скрипта), а также логировать ошибки через POST-запросы.
Альтернативные решения
Существует множество аналогов для контроля фоновых задач. Если функционала Healthchecks недостаточно, рекомендуем обратить внимание на такие инструменты, как Cronitor или Sentry. При выборе инструмента для мониторинга cron-задач стоит ориентироваться на интеграцию с существующими каналами уведомлений вашей команды.