Kafka consumer lag — алерт при отставании больше N
Consumer-группа отстаёт от продьюсера, и сообщения копятся. Нужен порог lag, после которого летит алерт.
Рецепт
bash
#!/usr/bin/env bash
# /opt/kafka-lag-watch.sh — exposes the worst lag of a group as plain text
# Wrap as HTTP endpoint via nginx fastcgi or python -m http.server.
GROUP="${1:-payments-consumer}"
BROKER="${2:-localhost:9092}"
THRESHOLD="${LAG_THRESHOLD:-10000}"
LAG=$(/opt/kafka/bin/kafka-consumer-groups.sh \
--bootstrap-server "$BROKER" --describe --group "$GROUP" 2>/dev/null \
| awk 'NR>2 && $5 != "-" {print $5}' | sort -n | tail -1)
[ -z "$LAG" ] && { echo "no-data"; exit 1; }
[ "$LAG" -ge "$THRESHOLD" ] && echo "lag $LAG" || echo "ok $LAG"
То же самое в Enterno.io
Поднимите эндпойнт /kafka-lag → "ok N" / "lag N" и натравите HTTP-монитор Enterno с keyword-rule "не содержит ok". Алерт мгновенный, без alertmanager.
Похожие рецепты
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.
Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.