NTP — алерт когда системные часы дрейфуют
Часы поползли (timesync завис, провайдер NTP-сервера лёг) — TOTP начнёт фейлить, JWT с iat в будущем отвергаются, логи путаются.
Рецепт
#!/usr/bin/env bash
# /etc/cron.d/ntp-drift
# */5 * * * * root /opt/ntp-drift.sh
THRESH_MS=${THRESH_MS:-500} # alert above 500ms
# chrony exposes drift in seconds via 'tracking' command (CSV mode)
OFFSET=$(chronyc -c tracking | awk -F, '{print $5}')
ABS_MS=$(awk -v v="$OFFSET" 'BEGIN{print int((v < 0 ? -v : v)*1000)}')
if [ "$ABS_MS" -gt "$THRESH_MS" ]; then
echo "ntp-drift: ${ABS_MS}ms (threshold ${THRESH_MS}ms)"
curl -fsS "$HEARTBEAT_URL?status=fail&drift_ms=$ABS_MS"
exit 2
fi
echo "OK (${ABS_MS}ms drift)"
То же самое в Enterno.io
Поставьте Enterno heartbeat с интервалом 5 мин — drift-история и алерт без отдельного NTP-monitoring-стека (Prometheus + node-exporter + alertmanager).
Похожие рецепты
docker info висит >30 сек — daemon в split-brain состоянии. Контейнеры работают (kernel держит namespaces), но новых релизов deploy не сделать. systemctl status показывает active.
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.