Какие существуют метрики работы сети в Linux?

«Какие существуют метрики работы сети в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В моей практике мониторинга инфраструктуры я фокусируюсь на следующих ключевых сетевых метриках, которые дают полную картину о здоровье и производительности сети.

Основные метрики и инструменты для их сбора:

  1. Пропускная способность (Throughput) и утилизация интерфейса:

    • Что это: Объём переданных (TX) и полученных (RX) данных в единицу времени (байт/сек, пакет/сек).
    • Как смотреть:
      # Статистика по всем интерфейсам
      ip -s link
      # Или с помощью sar для истории
      sar -n DEV 1 3
    • Зачем: Выявление узких мест, планирование масштабирования.
  2. Ошибки и сбросы (Errors/Drops):

    • Что это: Счётчики errs, drop, fifo, frame в выводе ip -s link.
    • Как смотреть:
      watch -n 1 'ip -s link show eth0 | grep -A1 "RX.*TX"'
    • Зачем: Рост этих значений указывает на проблемы с сетевым оборудованием, перегрузку или неверный MTU.
  3. Задержка (Latency) и потери пакетов (Packet Loss):

    • Что это: Время отклика (ping) и процент потерянных ICMP-пакетов.
    • Как смотреть:
      ping -c 100 -i 0.2 <целевой_хост> | grep "packet loss"
      mtr --report <целевой_хост>  # Показывает потери на каждом хопе
  4. Статистика TCP-соединений:

    • Что это: Количество соединений в различных состояниях (ESTABLISHED, TIME_WAIT), ретрансмиты.
    • Как смотреть:
      ss -s  # Общая сводка
      netstat -s | grep -E "segments retransmited|packet receive errors"
    • Зачем: Большое количество TIME_WAIT может исчерпать доступные порты. Рост ретрансмитов указывает на проблемы с сетью.

Интеграция в мониторинг: Я настраиваю экспорт этих метрик (через node_exporter для Prometheus или агент для Datadog) и создаю дашборды в Grafana. Критически важные алерты ставятся на рост ошибок интерфейса (>0 в течение минуты) и высокий процент потерь пакетов (>1%).