Мониторинг cron-задач и бэкапов (heartbeat)
Мониторинг cron-задач по принципу heartbeat: ваш скрипт сам «отмечается» по уникальной ссылке после успешного выполнения. Не отметился вовремя — вы получите уведомление, что бэкап, обмен с 1С или очередь не отработали.
Зачем нужен контроль выполнения бэкапов и cron jobs
Ночной бэкап не делался три недели, потому что изменился пароль к базе. Cron-задача обмена с 1С молча падает после обновления PHP. Очередь писем встала. Об этом никто не узнает, пока не понадобится тот самый бэкап.
Heartbeat переворачивает мониторинг: не мы опрашиваем вашу задачу, а задача отмечается у нас после успешного выполнения. Не отметилась вовремя — приходит уведомление. Работает для любых периодических процессов: cron, бэкапы, ETL, обработчики очередей, синхронизации.
Что проверяем
- Cron, бэкапы, очереди, ETL — любые периодические задачи
- Допустимое опоздание
- Одна строка: curl -fsS https://notifar.io/hb/…
Типичные причины сбоев
- Задача не запустилась: cron отключён, сменился путь к интерпретатору, истёк токен.
- Задача упала посередине: нет места под архив, недоступна база, таймаут внешнего API.
- Задача выполняется дольше периода и накладывается на следующую.
- Часовой пояс сервера сменился, и расписание уехало.
Как работает heartbeat-мониторинг: проверка, что бэкап выполнился
Для монитора выдаётся уникальный адрес. В конец задачи добавляется одна строка: curl на этот адрес. Вы задаёте ожидаемый период (например, раз в сутки) и допустимое опоздание. Если отметка не пришла в срок, открывается инцидент и уходит уведомление; следующая отметка закрывает его.
Отметку можно отправлять с любым HTTP-клиентом — из bash, PHP, Python, из шага CI. Проверка стоит 0,01 ₽ за каждый контрольный цикл.
Что приходит в уведомлении
🔴 Ночной бэкап — не работает heartbeat Причина: нет отметки более 26 ч (ожидалось раз в 24 ч) Начало: 14.09.2026 03:15 (МСК) Открыть монитор →
Так выглядит сообщение о сбое; о восстановлении придёт отдельное — с длительностью простоя. Каналы: Telegram, MAX, email, SMS, звонок, webhook.
Параметры проверки
| Параметр | Описание |
|---|---|
| Допустимое опоздание, сек | Интервал монитора = ожидаемый период сигналов (по умолчанию: 300) |
Интервал — от 1 минута до 1 суток (рекомендуем 1 час). Проверка выполняется с основной точки.
Dead man switch для cron: чем лучше самописного учёта запусков
- Ловит именно «не запустилось» и «упало посередине», чего не видит ни один внешний опрос.
- Одна строка в задаче вместо своей системы учёта запусков.
- Допустимое опоздание, чтобы задержавшийся на 10 минут бэкап не будил вас ночью.