Jak monitorować zadanie cron

Zadania cron zawodzą po cichu. Monitoring heartbeat zamienia brakujące uruchomienie w alert. Konfiguracja dla cron, timerów systemd, Kubernetes i GitHub Actions.

Problem z cronem polega na tym, że gdy zawiedzie, nic się nie dzieje. Żadna strona nie pada, nie pojawia się żaden błąd; kopii zapasowej po prostu nie ma, gdy jej potrzebujesz.

Wzorzec heartbeat

Nadaj każdemu zadaniu unikalny adres URL. Zadanie wywołuje go po pomyślnym zakończeniu. Monitor oczekuje wywołania co N godzin; jeśli się spóźni, otrzymasz alert.

Cron

0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://hb.uptimepush.com/p/TOKEN

Timery systemd

Dodaj ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN do jednostki usługi.

Kubernetes CronJob

Dołącz wywołanie curl do polecenia kontenera za pomocą &&, aby uruchamiało się tylko po sukcesie.

GitHub Actions

Dodaj ostatni krok wywołujący adres URL przez curl, z tokenem zapisanym jako secret.

Okresy karencji

Ustaw okres karencji nieco dłuższy niż najdłuższe normalne wykonanie zadania, aby wolniejsza noc nie budziła Cię alertem.

Twoja strona nie śpi. Teraz Ty możesz.

Zacznij monitorować w kilka minut. Pierwsze 10 monitorów jest od nas.

Zacznij bezpłatnie – bez karty ↗