Como monitorizar um cron job

Os cron jobs falham em silêncio. A monitorização heartbeat transforma uma execução em falta num alerta. Configuração para cron, timers do systemd, Kubernetes e GitHub Actions.

O problema do cron é que nada acontece quando falha. Nenhuma página fica em baixo, nenhum erro é mostrado; o backup simplesmente não está lá quando precisa dele.

O padrão heartbeat

Atribua a cada tarefa um URL único. A tarefa chama-o em caso de sucesso. Um monitor espera a chamada a cada N horas; se atrasar, recebe um alerta.

Cron

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

Timers do systemd

Adicione ExecStartPost=/usr/bin/curl -fsS https://hb.uptimepush.com/p/TOKEN à unidade de serviço.

CronJob do Kubernetes

Acrescente a chamada curl ao comando do contentor com && para que só seja executada em caso de sucesso.

GitHub Actions

Adicione um passo final que faça curl ao URL, com o token guardado como secret.

Períodos de tolerância

Defina um período de tolerância ligeiramente superior à execução normal mais longa da tarefa, para que uma noite mais lenta não o acorde.

O seu website não dorme. Agora você pode.

Comece a monitorizar em minutos. Os primeiros 10 monitores são por nossa conta.

Começar grátis – sem cartão ↗