Skip to content

Сеть — алерт по packet-loss до upstream (через mtr)

Соединение до database / partner-API теряет 5–10 % пакетов — приложение видит timeout-ы, но `ping -c 4` показывает «всё ок». TCP-retransmits скрытно режут throughput.

Рецепт

bash
#!/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-нод.

Настроить Ping & Port Checker → ← Все рецепты

Похожие рецепты

BGP-сессия с upstream / cloud peering упала — половина routes ушла. Сетевой партнёр сам не известит, а сетевой мониторинг (если есть) часто не настроен на BGP-state.