Linux утилизация сетевого интерфейса

Утилиты командной строки Linux. Мониторинг загрузки сетевого интерфейса

Одна из задач по сопровождению операционных систем семейства Linux, это мониторинг сетевого трафика. В рамках данной статьи описываются наиболее популярные утилит, которые можно использовать для мониторинга загрузки сетевого интерфейса в оперативном режиме через SSH. Эти утилиты выполняют измерение потока трафика через каждый из сетевых интерфейсов и измеряют скорость с которой были переданы данные, причем входящий и исходящий трафик показывается раздельно.
Некоторые из приведенных команд позволяют просматривать использование сети отдельными процессами, это позволяет определить, какой из процессов загружает сетевой интерфейс.

  1. загруженность целиком интерфейса (динамическое отображение) — nload, bmon, bwm-ng
  2. загруженность целиком интерфейса (только вывод статистики) — vnstat, dstat, collectl
  3. использование сети для каждого соеденения (per socket) — iftop, iptraf, trafshow
  4. использование сети по процессам — nethogs

NLoad — утилита командной строки, которая позволяет выполнять мониторинг входящего и исходящего трафика отдельно, а также отрисовка масштабируемых графиков загрузки сетевого интерфеса.

userman.ru nload

Пример отображения:
Установка NLoad

# fedora or centos $ yum install nload # ubuntu/debian $ apt-get install nload

BMon — это утилита похожая на nload, которая показывает нагрузку на трафик по всем сетевым интерфейсам в системе. Выходные данные также состоят из графика и раздела с детализацией на уровне пакетов. Bmon поддерживает множество опций и способен создавать отчеты в формате html.
Пример запуска:

userman.ru bmon

Пример отображения:
Установка BMon

# fedora or centos $ yum install bmon # ubuntu or debian $ apt-get install bmon

Bwm-ng другой очень простой монитор нагрузки сети в реальном времени который сообщает сводку скорости на которую данные переносятся в и из всех доступных сетевых интерфейсов на системе.
Если размер консоли достаточно велик, bwm-ng также может рисовать гистограммы для трафика, используя режим вывода curses 2.
Пример запуска:

Читайте также:  Gma 3600 linux mint

userman.ru bwm-ng

Пример отображения:
Установка bwm-ng

# fedora or centos $ yum install bwm-ng # ubuntu or debian $ apt-get install bwm-ng

Vnstat немного отличается от большинства других инструментов. Он фактически запускает фоновую службу/демон и постоянно записывает размер передачи данных. Далее его можно использовать для формирования отчета об истории использования сети.
Запуск vnstat без каких-либо опций просто покажет общий объем передачи данных, который имел место с момента запуска демона.
Для мониторинга использования полосы пропускания в режиме реального времени используйте опцию ‘- l ‘ (live mode). Затем он будет показывать общую пропускную способность, используемую входящими и исходящими данными, но очень точно без каких-либо внутренних подробностей о соединениях хоста или процессах.

Vnstat больше похож на инструмент для получения исторических отчетов о том, сколько пропускной способности используется каждый день или за последний месяц. Это не только инструмент для мониторинга сети в реальном времени.
Пример запуска:

# Создание БД для сбора статистики интерфейса $ vnstat --create -i eth0 # запуск сервиса $ service vnstat start # Мониторинг в реальном времени $ vnstat -l -i eth0

userman.ru vnstat

Пример отображения:
Установка vnstat

# fedora or centos $ yum install vnstat # ubuntu or debian $ apt-get install vnstat

Источник

Утилизация сетевого интерфейса

Расскажи мне, какой способ получить инфу по загрузке сетевого интерфейса в линупсе сейчас самый модный? Понятно, что можно самому считать RX/TX bytes и делить на время, но вдруг есть что-то менее убогое.

Просто мысль: как это делает утилита bmon?

А разве были модные способы? Ядро — это тебе не какой-то хипсторский фреймворк.

Помимо «считать вручную» есть pcap, но я не уверен, насколько он подходит к твоей задаче.

Понятно, что можно самому считать RX/TX bytes и делить на время, но вдруг есть что-то менее убогое.

овеянный годами способ — ставить snmpd и прикладом считывать требуемое с него. Всё прочее от лукавого.

Читайте также:  Hp laser 107w driver linux

А разве были модные способы? Ядро — это тебе не какой-то хипсторский фреймворк.

Вокруг ядра ещё куча юзерспейсных библиотек может быть. К тому же, в /sys и так куча шлака экспортируется, я бы не удивился если бы и это туда сунули.

Помимо «считать вручную» есть pcap, но я не уверен, насколько он подходит к твоей задаче.

Никак не подходит. Мне не нужно ловить трафик.

hateyoufeel ★★★★★ ( 26.02.18 23:12:33 MSK )
Последнее исправление: hateyoufeel 26.02.18 23:13:23 MSK (всего исправлений: 1)

Тем, что это копипаста из проекта в проект. Я ожидал, что кто-то сделает библиотеки с подобными функциями, но, похоже, упс.

через ioctl к интерфейсу, как написано в исходниках ifconfig

Только если в кошмарах. SNMP — это ад, который нужно выставлять в музее в назидание потомкам в качестве примера того, как делать НЕ НАДО.

через ioctl к интерфейсу, как написано в исходниках ifconfig

ifconfig же не мониторит загрузку (bandwidth), только tx и rx. Но я понял. Хотя проще это через /proc или /sys читать.

в системе нет данных по загрузке, ее можете сами посчитать по скорости рх тх в секунду или минуту, так делают все утилиты

netdata умеет например. Пожалуй вполне модно, будет.

Только если в кошмарах. SNMP — это ад, который нужно выставлять в музее в назидание потомкам в качестве примера того, как делать НЕ НАДО.

сколько системо-зависимых решений уже предложили в треде ? штук 5 если не ошибаюсь. Вы уверенны что они все (или хотя-бы одно из них) гарантированно работает не только на «убунточке» ? 🙂 и останется хотя-бы 3-4 года. А если вдруг понадобится BSD..

Читайте также:  Linux mint keyboard shortcuts

SNMP конечно не фонтан. Только этот «не фонтан» стандартизован. Ужасают ASN.1 MiB DER/BER ? что поделать, это так исторически сложилось, так мониторят сети.

Если только дергать статистику. С производительностью у AF_PACKET очень большие проблемы даже с RX_RING и fanout.

сколько системо-зависимых решений уже предложили в треде ? штук 5 если не ошибаюсь. Вы уверенны что они все (или хотя-бы одно из них) гарантированно работает не только на «убунточке» ? 🙂 и останется хотя-бы 3-4 года. А если вдруг понадобится BSD..

Деды страдали и ты страдай?

В итоге, запилил чтение данных из /sys/class/net/$interface/statistics. Вопрос закрыт.

Источник

Оцените статью
Adblock
detector