Мониторинг пропускной способности и трафика: vnstat, iftop, nethogs
Историческая статистика с vnstat, мониторинг в реальном времени с iftop, пропускная способность по процессам с nethogs, использование nload и интерпретация результатов.
Содержание
Мониторинг пропускной способности и трафика: vnstat, iftop, nethogs
Мониторинг сетевого трафика сервера критически важен для обнаружения проблем с производительностью, оптимизации использования пропускной способности и выявления аномальной активности. В этом руководстве мы рассмотрим наиболее популярные инструменты для мониторинга сетевого трафика в Linux — vnstat, iftop, nethogs и nload.
vnstat — Историческая статистика трафика
vnstat — это лёгкий инструмент, который хранит статистику трафика для сетевых интерфейсов в базе данных. Он сохраняет исторические данные даже после перезагрузки системы.
Установка
# 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
Основное использование
# Сводка по всем интерфейсам
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-адресами.
Установка
# Ubuntu/Debian
sudo apt install iftop -y
# CentOS/AlmaLinux
sudo dnf install iftop -y
Основное использование
# Запустить на интерфейсе по умолчанию
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 показывает, какое приложение или процесс использует сколько пропускной способности. Идеально для поиска процесса, генерирующего высокий трафик.
Установка
# Ubuntu/Debian
sudo apt install nethogs -y
# CentOS/AlmaLinux
sudo dnf install nethogs -y
Основное использование
# Мониторинг всех интерфейсов
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-графика.
Установка
# Ubuntu/Debian
sudo apt install nload -y
# CentOS/AlmaLinux
sudo dnf install nload -y
Основное использование
# Интерфейс по умолчанию
nload
# Конкретный интерфейс
nload eth0
# Несколько интерфейсов (переключение стрелками)
nload eth0 eth1
# Интервал обновления (миллисекунды)
nload -t 500
# Единица трафика
nload -u h # Читаемый формат
nload -u m # Mbit/s
nload -u k # Kbit/s
Другие полезные инструменты
ss — Статистика сокетов
# Список активных соединений
ss -tuln
# Показать количество соединений
ss -s
# Фильтровать по конкретному порту
ss -tuln sport = :80
# Показать состояния соединений
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
Статистика трафика с командой ip
# Статистика интерфейса
ip -s link show eth0
# Все интерфейсы
ip -s link
# Непрерывный мониторинг
watch -n 1 'ip -s link show eth0'
Интерпретация результатов
Обнаружение аномального трафика
# Найти процессы с высоким трафиком
sudo nethogs eth0
# Проверить подозрительные соединения
ss -tuln
# Список внешних IP-соединений
ss -tn | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn
Отчёт об использовании пропускной способности
# Ежемесячная сводка использования
vnstat -m
# Топ-10 использования за всё время
vnstat --top10
Вы можете создавать автоматические отчёты, комбинируя vnstat с cron:
# Отправлять отчёт каждую ночь в полночь
0 0 * * * vnstat --json > /var/log/vnstat_daily.json
iftop и nethogs требуют привилегий root. В целях безопасности запускайте эти инструменты только при необходимости и храните вывод в безопасном месте.
Заключение
vnstat идеален для исторической статистики трафика, iftop — для мониторинга соединений в реальном времени, nethogs — для анализа пропускной способности по процессам, а nload — для визуальных графиков трафика. Используя эти инструменты вместе, вы можете комплексно отслеживать сетевой трафик сервера, обнаруживать аномальную активность и оптимизировать использование пропускной способности.
Связанные статьи
Привязка домена к серверу: руководство по A, AAAA и CNAME
Привяжите домен к серверу: типы DNS-записей A, AAAA, CNAME, MX и TXT, время распространения DNS, тестирование с dig/nslookup и распространённые ошибки.
Настройка обратного DNS (PTR) записи: почта и безопасность
Что такое PTR-запись, как она влияет на доставляемость почты и безопасность, настройка в панели REXE, проверка с dig -x и распространённые проблемы.
Смена неймсерверов: руководство по переносу DNS домена
Что такое неймсерверы, как изменить NS у регистратора, время распространения, проверка с whois/dig и интерфейсы популярных регистраторов.