Перейти к основному содержимому
Вернуться в категорию

Мониторинг пропускной способности и трафика: vnstat, iftop, nethogs

Историческая статистика с vnstat, мониторинг в реальном времени с iftop, пропускная способность по процессам с nethogs, использование nload и интерпретация результатов.

Время чтения: 13 мин Сеть и DNS
мониторинг пропускной способностиvnstatiftopnethogsnloadсетевой трафикпропускная способностьlinux сетевые инструменты

Содержание

Мониторинг пропускной способности и трафика: vnstat, iftop, nethogs

Мониторинг сетевого трафика сервера критически важен для обнаружения проблем с производительностью, оптимизации использования пропускной способности и выявления аномальной активности. В этом руководстве мы рассмотрим наиболее популярные инструменты для мониторинга сетевого трафика в Linux — vnstat, iftop, nethogs и nload.

vnstat — Историческая статистика трафика

vnstat — это лёгкий инструмент, который хранит статистику трафика для сетевых интерфейсов в базе данных. Он сохраняет исторические данные даже после перезагрузки системы.

Установка

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install vnstat -y

# CentOS/AlmaLinux
sudo dnf install vnstat -y

# Запустить сервис
sudo systemctl enable vnstat
sudo systemctl start vnstat

Основное использование

hljs bash
# Сводка по всем интерфейсам
vnstat

# Конкретный интерфейс
vnstat -i eth0

# Почасовая статистика
vnstat -h

# Ежедневная статистика
vnstat -d

# Ежемесячная статистика
vnstat -m

# Еженедельная статистика
vnstat -w

# Живой трафик (обновляется каждые 5 секунд)
vnstat -l

# JSON-вывод (для интеграции со скриптами)
vnstat --json

Чтение вывода vnstat

                      rx      /      tx      /     total    /   estimated
 eth0:
       2024-01-15    1.23 GiB  /    456 MiB  /    1.67 GiB
       2024-01-16    2.45 GiB  /    789 MiB  /    3.24 GiB
  • rx: Полученный (загрузка) трафик
  • tx: Отправленный (выгрузка) трафик
  • total: Общий трафик
  • estimated: Оценка на конец месяца

iftop — Мониторинг соединений в реальном времени

iftop — интерактивный инструмент, который показывает в реальном времени, сколько трафика обменивается с какими IP-адресами.

Установка

hljs bash
# Ubuntu/Debian
sudo apt install iftop -y

# CentOS/AlmaLinux
sudo dnf install iftop -y

Основное использование

hljs bash
# Запустить на интерфейсе по умолчанию
sudo iftop

# Конкретный интерфейс
sudo iftop -i eth0

# Отключить разрешение DNS (быстрее)
sudo iftop -n

# Показать номера портов
sudo iftop -P

# Фильтровать конкретную сеть
sudo iftop -F 192.168.1.0/24

Горячие клавиши iftop

n  — Переключить разрешение DNS
p  — Переключить номера портов
P  — Пауза
s  — Переключить адрес источника
d  — Переключить адрес назначения
t  — Переключить направление трафика
1  — Среднее за 2 секунды
2  — Среднее за 10 секунд
3  — Среднее за 40 секунд
q  — Выход

Чтение вывода iftop

203.0.113.50   =>  203.0.113.1    1.23Kb  2.45Kb  3.67Kb
                <=                 4.56Kb  8.90Kb  12.3Kb
  • =>: Исходящий трафик (выгрузка)
  • <=: Входящий трафик (загрузка)
  • Три столбца: средние за 2с, 10с, 40с

nethogs — Пропускная способность по процессам

nethogs показывает, какое приложение или процесс использует сколько пропускной способности. Идеально для поиска процесса, генерирующего высокий трафик.

Установка

hljs bash
# Ubuntu/Debian
sudo apt install nethogs -y

# CentOS/AlmaLinux
sudo dnf install nethogs -y

Основное использование

hljs bash
# Мониторинг всех интерфейсов
sudo nethogs

# Конкретный интерфейс
sudo nethogs eth0

# Несколько интерфейсов
sudo nethogs eth0 eth1

# Установить интервал обновления (секунды)
sudo nethogs -d 2

# Единица трафика (KB/s)
sudo nethogs -v 1

# Единица трафика (MB/s)
sudo nethogs -v 2

Чтение вывода nethogs

  PID USER     PROGRAM                      DEV        SENT      RECEIVED
 1234 www-data /usr/sbin/apache2            eth0       1.234     5.678 KB/sec
 5678 root     /usr/bin/wget                eth0       0.123     45.67 KB/sec
  • PID: ID процесса
  • USER: Пользователь, запустивший процесс
  • PROGRAM: Имя приложения
  • SENT: Скорость отправки данных
  • RECEIVED: Скорость получения данных

nload — График пропускной способности

nload — простой инструмент, отображающий сетевой трафик в реальном времени в виде ASCII-графика.

Установка

hljs bash
# Ubuntu/Debian
sudo apt install nload -y

# CentOS/AlmaLinux
sudo dnf install nload -y

Основное использование

hljs bash
# Интерфейс по умолчанию
nload

# Конкретный интерфейс
nload eth0

# Несколько интерфейсов (переключение стрелками)
nload eth0 eth1

# Интервал обновления (миллисекунды)
nload -t 500

# Единица трафика
nload -u h  # Читаемый формат
nload -u m  # Mbit/s
nload -u k  # Kbit/s

Другие полезные инструменты

ss — Статистика сокетов

hljs bash
# Список активных соединений
ss -tuln

# Показать количество соединений
ss -s

# Фильтровать по конкретному порту
ss -tuln sport = :80

# Показать состояния соединений
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn

Статистика трафика с командой ip

hljs bash
# Статистика интерфейса
ip -s link show eth0

# Все интерфейсы
ip -s link

# Непрерывный мониторинг
watch -n 1 'ip -s link show eth0'

Интерпретация результатов

Обнаружение аномального трафика

hljs bash
# Найти процессы с высоким трафиком
sudo nethogs eth0

# Проверить подозрительные соединения
ss -tuln

# Список внешних IP-соединений
ss -tn | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

Отчёт об использовании пропускной способности

hljs bash
# Ежемесячная сводка использования
vnstat -m

# Топ-10 использования за всё время
vnstat --top10

Вы можете создавать автоматические отчёты, комбинируя vnstat с cron:

hljs bash
# Отправлять отчёт каждую ночь в полночь
0 0 * * * vnstat --json > /var/log/vnstat_daily.json

iftop и nethogs требуют привилегий root. В целях безопасности запускайте эти инструменты только при необходимости и храните вывод в безопасном месте.

Заключение

vnstat идеален для исторической статистики трафика, iftop — для мониторинга соединений в реальном времени, nethogs — для анализа пропускной способности по процессам, а nload — для визуальных графиков трафика. Используя эти инструменты вместе, вы можете комплексно отслеживать сетевой трафик сервера, обнаруживать аномальную активность и оптимизировать использование пропускной способности.