Slack — алерт когда incoming webhook не отвечает
Все алерты идут в Slack — но если URL webhook revoked / 404 / Slack-incident, ты не узнаешь именно потому что алерты не доходят (failure-of-failure).
Рецепт
#!/usr/bin/env bash
# /etc/cron.d/slack-self-test
# */5 * * * * root /opt/slack-self-test.sh
WEBHOOK=${SLACK_WEBHOOK}
ALT=${HEARTBEAT_URL} # different channel/transport
CODE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$WEBHOOK" \
-H 'Content-Type: application/json' \
--data '{"text":"silent self-test","username":"healthcheck"}')
# 200 = ok. 4xx = revoked/misconfigured. 5xx / curl error = Slack down.
if [ "$CODE" != "200" ]; then
curl -fsS "$ALT" --data "slack_code=$CODE,webhook_failing=true"
exit 2
fi
echo "OK (Slack returned $CODE)"
То же самое в Enterno.io
Используйте Enterno heartbeat как fallback-канал — если Slack ушёл в 502, alerts не теряются (Telegram + email + webhook к другому endpoint работают независимо).
Похожие рецепты
Контроль квоты сторонних API
pythonStripe, GitHub, Twilio возвращают X-RateLimit-Remaining в заголовках. Если бэкенд не отслеживает порог — внезапно пойдёт 429, биллинг встанет.
Webhook-receiver принимает события GitHub. Если валидация подписи начала падать (поменяли secret где-то в одном месте) — деплои тихо ломаются.
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.