Сеть — алерт по packet-loss до upstream (через mtr)
Соединение до database / partner-API теряет 5–10 % пакетов — приложение видит timeout-ы, но `ping -c 4` показывает «всё ок». TCP-retransmits скрытно режут throughput.
Рецепт
#!/usr/bin/env bash
# /etc/cron.d/packet-loss
# */5 * * * * root /opt/packet-loss.sh
TARGET=${TARGET:-db.internal}
THRESH_PCT=${THRESH_PCT:-3} # alert above 3 % loss
# mtr -r = report mode, -c 100 = 100 packets, -n = numeric only
LOSS=$(mtr -r -c 100 -n "$TARGET" \
| awk 'END {gsub(/%/,"",$3); print $3+0}')
if [ "${LOSS:-0}" -gt "$THRESH_PCT" ]; then
curl -fsS "$HEARTBEAT_URL" --data "loss_pct=$LOSS,target=$TARGET"
exit 2
fi
echo "OK (loss=${LOSS}%)"
То же самое в Enterno.io
Используйте Enterno ping/port вместо собственного mtr-cron — мониторинг с нескольких регионов одновременно, найдёте geographic-issue без своих VPN-нод.
Похожие рецепты
BGP-сессия с upstream / cloud peering упала — половина routes ушла. Сетевой партнёр сам не известит, а сетевой мониторинг (если есть) часто не настроен на BGP-state.
Нужно убедиться, что сайт возвращает 2xx каждую минуту, и получить алерт в Slack/Telegram при падении.
Самоподписанный скрипт проверяет SSL сертификат и шлёт алерт за 14 дней до expiry.