Библиотека сайта rus-linux.net
Утилиты с интерфейсом командной строки для мониторинга сетевого трафика в Linux
Оригинал: What are useful command-line network monitors on Linux
Автор: Dan Nanni
Дата публикации: 9 января 2015 г.
Перевод: А.Панин
Дата перевода: 14 августа 2016 г.
Мониторинг сетевого трафика является важной процедурой, выполняемой IT-отделами организаций любых размеров. Например, данная процедура может быть частью комплекса мер по долгосрочному резервированию ресурсов сети, защите сети, выявлению проблем, связанных с производительностью сети, оценке использования ресурсов сети и так далее. В зависимости от цели исследования, мониторинг сетевого трафика может осуществляться различными способами, например, путем сниффинга сетевых пакетов, сбора низкоуровневой статистики, активной инъекции пакетов в сеть, разбора файлов журнала сервера и так далее.
Хотя и существует множество систем для мониторинга сетевого трафика в режиме 24/7/365, вы можете воспользоваться инструментами командной строки в тех ситуациях, когда такие системы являются попросту избыточными. Если вы являетесь системным администратором, у вас уже должен быть опыт работы с наиболее известными утилитами для мониторинга сетевого трафика с интерфейсом командной строки. Ниже приведен список наиболее известных и полезных утилит данного типа, предназначенных для использования в Linux.
Сниффинг сетевых пакетов
В данной категории представлены инструменты для захвата отдельных сетевых пакетов из работающей сети, разбора их содержимого и вывода либо самого содержимого захваченных сетевых пакетов в декодированном виде, либо статистических данных, относящихся к содержимому захваченных сетевых пакетов. Описанные инструменты позволяют осуществлять мониторинг сетевого трафика на самом низком уровне и, ввиду этого, могут предоставлять самую подробную информацию о состоянии сети, вызывая при этом снижение производительности сети и тратя вычислительные ресурсы на анализ полученных данных.
1. dhcpdump: сниффер DHCP-трафика с интерфейсом командной строки, позволяющий захватывать запросы, поступающие к серверу DHCP и его ответы, а также выводящий в понятном человеку формате содержимое разобранных сообщений протокола DHCP. Данный инструмент будет полезен в том случае, если возникнет необходимость в диагностике сервера DHCP.
2.
3.
4. IPTraf: инструмент для сбора статистических данных, относящихся к функционированию сети, с интерфейсом командной строки. Он осуществляет вывод статистических данных на уровне сетевых пакетов, соединений, интерфейсов, протоколов, а также подсчет количества сетевых пакетов и байт, переданных по сети в реальном времени. Процесс захвата пакетов может полностью контролироваться путем выбора фильтров протоколов с помощью соответствующего меню.
5.
6. grep
для сетевых пакетов. Данная утилита может захватывать сетевые пакеты в реальном времени и осуществлять поиск их соответствий (фильтрацию) с регулярными выражениями или выражениями в шестнадцатеричном формате. Она может быть полезной для выявления и сохранения с целью дальнейшего анализа аномального трафика или захвата определенных последовательностей данных из сетевого трафика.
7.
8. pktstat: инструмент с интерфейсом командной строки, осуществляющий анализ передающихся по сети пакетов и выводящий информацию об использовании пропускной способности соединений с описаниями используемых протоколов (такими, как HTTP, GET/POST, FTP, X11).
9.
10.
11. tshark: инструмент для захвата сетевых пакетов с интерфейсом командной строки из комплекта поставки приложения
Мониторинг сетевого трафика на уровне потоков, процессов и сетевых интерфейсов
К данной категории относятся инструменты, которые классифицируют сетевой трафик по потокам, ассоциированным процессам или сетевым интерфейсам и собирают статистические данные относительно трафика переданного в рамках отдельных потоков, процессов и сетевых интерфейсов. Источником информации может являться как библиотека для захвата сетевых пакетов libpcap, так и виртуальная файловая система ядра Linux под названием sysfs. Эти инструменты тратят немного системных ресурсов, но обычно не могут осуществлять инспекцию содержимого сетевых пакетов.
12. bmon: инструмент с интерфейсом командной строки для мониторинга показателей использования пропускной способности сети, выводящий информацию о трафике, который был передан через сетевые интерфейсы, включающюю не только статистику принятых и переданных данных, но и историю использования ресурсов сети.
13.
14. nethogs: инструмент для мониторинга состояния процессов, выводящий с помощью псевдографического интерфейса на основе библиотеки ncurses в реальном времени информацию об использовании процессами или программами ресурсов сети для передачи и приема данных. Данный инструмент может пригодиться в том случае, если потребуется выявить процесс, наиболее интенсивно использующий пропускную способность сети.
15. netstat: инструмент с интерфейсом командной строки, выводящий различную статистическую информацию и информацию о параметрах сетевого стека, такую, как параметры открытых соединений по протоколам TCP/UDP, количество принятых и переданных байт, таблицы маршрутизации и статистика использования протоколов/сокетов. Данный инструмент может оказаться полезным в процессе выявления проблем, связанных с производительностью и использованием ресурсов сетевого стека.
16.
17.
18. tcptrack: инструмент для мониторинга состояния сетевых соединений по протоколу TCP, выводящий информацию об активных TCP-соединениях, включающую IP-адреса и номера портов источника и целевого узла соединения, идентификатор состояния соединения, а также скорость передачи данных в рамках него.
19. vnStat: инструмент с интерфейсом командной строки для мониторинга сетевого трафика, ведущий учет всех отправленных и принятых данных (в текущий момент, за день, месяц) для каждого из сетевых интерфейсов. Работая в фоновом режиме, он собирает и хранит статистические данные о скоростях соединений и общем количестве переданных байт.
Активный мониторинг сетей
В отличие от рассмотренных выше инструментов для пассивного мониторинга сетей, инструменты из данной категории осуществляют мониторинг сетей путем активных "инъекций" сетевых пакетов и сбора соответствующих им ответных пакетов. С помощью данных инструментов могут отслеживаться маршруты сетевых пакетов, оцениваться доступная пропускная способность сетей, вычисляться показатели потерь пакетов, задержек доставки пакетов, нестабильности передачи данных по сетям, выявляться значения системных настроек, наличие уязвимостей и так далее.
20.
21.
22.
23.
24. ping: инструмент для тестирования сети, осуществляющий отправку эхо-запросов по протоколу ICMP заданному удаленному узлу и обрабатывающий ответы на них. Он может оказаться полезным при необходимости измерения времени обращения (RTT) и процентного показателя потерь сетевых пакетов при передаче данных по заданному маршруту, а также проверки корректности правил межсетевого экрана или конфигурации удаленной системы. Также существуют вариации утилиты ping с более удобным интерфейсом (такие, как
25.
26. traceroute: инструмент для исследования сети, раскрывающий путь следования сетевых пакетов на уровне 3 OSI от локального узла до удаленного узла с заданным адресом. Он осуществляет отправку тестовых сетевых пакетов с установленным ограничением временем жизни и собирает сообщения об их уничтожении от промежуточных маршрутизаторов, отправляемые по протоколу ICMP. Данный инструмент может оказаться полезным в том случае, если требуется найти причину замедления передачи данных по сети или выявить проблемы маршрутизации. Также существуют вариации traceroute с улучшенным механизмом сбора статистики времени обращения пакетов (такие, как
Разбор содержимого журналов серверных приложений
К данной категории отнесены инструменты для мониторинга сетевого трафика, предназначенные для работы совместно с определенным серверным приложением (например, веб-сервером или сервером базы данных). Сетевой трафик, генерируемый или обрабатываемый серверным приложением, отслеживается путем анализа файла журнала этого приложения. В отличие от рассмотренных выше инструментов, работающих непосредственно с сетью, инструменты из данной категории осуществляют анализ и мониторинг сетевого трафика лишь на уровне приложения, формирующего журнал.
27.
28.
29.
Заключение
В рамках данной статьи я описал большое количество инструментов для мониторинга сетевого трафика с интерфейсом командной строки, начиная с инструментов для низкоуровневого мониторинга сетевого трафика на уровне сетевых пакетов и заканчивая инструментами для высокоуровневого мониторинга сетевого трафика на уровне серверных приложений. Важно знать, как работает каждый из этих инструментов и уметь подбирать инструмент для решения той или иной задачи, ведь, как вы наверняка заметили, в списке нет универсальных инструментов, позволяющих решить любую задачу. Хороший системный администратор должен уметь выбирать правильные инструменты в зависимости от сложившихся обстоятельств. Надеюсь, данная статья поможет вам в этом плане.
Разумеется, вы также можете оставить комментарий с описанием своего любимого инструмента для мониторинга сетевого трафика, который, по вашему мнению, должен быть включен в данный список!
Об инструментах мониторинга сетевого трафика вы можете почитать также в следующих статьях:
- Инструменты для исследования сетей с интерфейсом командной строки,
- Использование Wireshark для исследования сетей,
- Использование фильтров в Wireshark,
- Подробнее о фильтрах в Wireshark