Мониторинг резервного копирования: стратегия «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-задач стоит ориентироваться на интеграцию с существующими каналами уведомлений вашей команды.