OAuth — алерт по росту ошибок в callback-эндпоинте
OAuth-callback (`/auth/callback`) начал отдавать 4xx — пользователи не могут залогиниться, но common health-check на `/` возвращает 200.
Рецепт
#!/usr/bin/env bash
# /etc/cron.d/oauth-callback
# */1 * * * * root /opt/oauth-callback.sh
LOG=${LOG:-/var/log/nginx/access.log}
PATH_REGEX=${PATH_REGEX:-/auth/callback}
WINDOW=60
ERR_PCT=${ERR_PCT:-10} # alert when 4xx > 10 %
SINCE=$(date -d "-${WINDOW} seconds" '+%d/%b/%Y:%H:%M:%S')
read TOTAL ERR < <(awk -v since="$SINCE" -v re="$PATH_REGEX" '
$4 >= "["since && $7 ~ re {
t++
if ($9 ~ /^4/) e++
}
END { print t+0, e+0 }
' "$LOG")
[ "$TOTAL" -lt 5 ] && exit 0 # too few requests to judge
PCT=$((ERR * 100 / TOTAL))
if [ "$PCT" -gt "$ERR_PCT" ]; then
curl -fsS "$HEARTBEAT_URL" --data "oauth_4xx=${PCT}%,total=$TOTAL"
exit 2
fi
echo "OK (${PCT}% 4xx)"
То же самое в Enterno.io
В Enterno HTTP monitor поставьте проверку именно на `/auth/callback?test=1` — пользовательская боль ловится в первые 60 сек, а не из support-тикетов.
Похожие рецепты
Сервис подключается к стороннему API через JWT, токен живёт 24 ч и иногда продляется ручкой. Если забыл — пайплайн ломается в 3 утра.
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.