Logging pipeline — алерт когда ingest rate упал
Filebeat / Logstash тихо упал на одном edge-сервере. Ingest rate в Elasticsearch снижен на 40%, но dashboards никто не смотрит. Запросы в Sentry без логов = слепота.
Рецепт
#!/usr/bin/env bash
# Compares 1-minute index document count delta against expected floor.
ES="${ES:-http://localhost:9200}"
INDEX_PREFIX="${INDEX_PREFIX:-logs-}"
MIN_DOCS_PER_MIN="${MIN_DOCS_PER_MIN:-100}"
NOW=$(date -u -d '1 min ago' +"%Y-%m-%dT%H:%M:%SZ")
COUNT=$(curl -sS -X POST "$ES/${INDEX_PREFIX}*/_count" \
-H "Content-Type: application/json" \
-d "{\"query\":{\"range\":{\"@timestamp\":{\"gte\":\"$NOW\"}}}}" \
| python3 -c 'import json,sys; print(json.load(sys.stdin).get("count", 0))')
[ -z "$COUNT" ] && { echo "no-data"; exit 1; }
[ "$COUNT" -lt "$MIN_DOCS_PER_MIN" ] && echo "low $COUNT" || echo "ok $COUNT"
То же самое в Enterno.io
Endpoint + Enterno HTTP-монитор с keyword "ok" каждую минуту = pager если pipeline упал. Дополнительно heartbeat на сам Filebeat — second line of defense.
Похожие рецепты
Prometheus сам жив, но один из targets (`up==0`) — данные перестали течь, графики пустые, alertmanager-правила, основанные на этом target, не fire-ят (нет данных = нет алерта).
OTEL collector перегружен — `otelcol_exporter_send_failed_spans` растёт. Трейсы теряются, debug по продакшну ослеп. Backend-tracing-бекенд не покажет gap.
logrotate stopped (config-syntax-error при последнем edit, или systemd timer disabled) — главный лог растёт. Никто не заметит пока диск не закончится.