Skip to content

Slack — алерт когда incoming webhook не отвечает

Все алерты идут в Slack — но если URL webhook revoked / 404 / Slack-incident, ты не узнаешь именно потому что алерты не доходят (failure-of-failure).

Рецепт

bash
#!/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 работают независимо).

Настроить HTTP monitor → ← Все рецепты

Похожие рецепты

Stripe, GitHub, Twilio возвращают X-RateLimit-Remaining в заголовках. Если бэкенд не отслеживает порог — внезапно пойдёт 429, биллинг встанет.