- Мониторинг (измерение) потребляемого траффика в Linux
- Пошаговая инструкция
- Мониторинг трафика
- Содержание
- Мониторинг в реальном времени
- Журналирование активности средствами iptables
- Утилиты Vnstat и Vnstati
- Netflow — мониторинг с ведением статистики
- Сенсор fprobe
- Автозапуск при перезапуске сети
- Несколько демонов fprobe на одном компьютере
- Коллектор Nfdump и визуализатор данных Nfsen
- Мониторинг пропускной способности и скорости сети в Linux
- Инструменты для мониторинга интернет-трафика и скорости сетевого соединения в Linux
- 1. NetSpeed - расширение оболочки GNOME для пользователей ПК
- 2. Fast — тестировщик скорости интернета от Netflix
- 3. speedtest-cli: проверка скорости загрузки и скачивания
- 4. NetHogs — проверка использования пропускной способности для каждой программы
- 5. nload — мониторинг интернет-трафика в режиме реального времени
- 6. CBM — измеритель полосы пропускания с цветным интерфейсом
- 7. iPerf — тестирование производительности сети между двумя хостами
- 8. vnStat — логгер сетевого трафика
- 9. iftop — «топ» использования сети
Мониторинг (измерение) потребляемого траффика в Linux
Однажды мне потребовалось измерить количество трафика, которое «пожирает» некоторое приложение. Один из способов такого измерения — это установить прокси. Но что, если не хочется ставить прокси-сервер. Мне вот не хотелось. В поисках других способов я сначала перерыл Хабр, потом интернет. Так как я в своё время потратил на это много времени, то сейчас я создаю эту заметку, чтобы у других такой проблемы не возникло.
ВАЖНО:
Этот метод работает, если мы знаем по какому адресу (адресам) обращается наше приложение, или же с какого/каких портов.
Пошаговая инструкция
1. iptraf
iptraf — это небольшая программа, которая умеет мониторить всю сетевую активность компьютера.
Исходники и бинарники можно загрузить с сайта iptraf.
В случае Ubuntu установить iptraf можно выполнив команду:
sudo apt-get install iptraf
2. Запускаем!
В терминале пишем: iptraf
3. Настраиваем
Надо включить логирование (иначе программа ограничиться выводом на экран). Делается это, очевидно, в разделе «Configure».
4. Запуск мониторинга
Уходим из настроек, жмём «IP traffic monitor» и выбираем путь к файлу, куда будем логировать сетевую активность.
После этого мы должны увидеть такую картину:
Это всё, что нужно! Почти.
5. Анализ
Как я уже упоминал выше, нужно знать, по какому адресу/порту обращается наше приложение (трафик которого мы высчитываем).
Например, если мы хотим посчитать сколько трафика «стоит» час радио last.fm, мы должны определить следующее:
приложение last.fm обращается к адресам вроде таких:
195.24.* (last.fm не обращается к одному адресу, а обращается к диапазону адресов).
Чтобы вытащить из лога (который писался час) количество трафика, которое было съедено, я написал небольшую «программку» на java, которая этот трафик и считает:
Этот вариант хорошо работает, когда вы постоянно пишите логи, а потом уже надо «что-то там» измерить. Просто нужно написать/сконфигурировать парсер именно так, как необходимо в конкретной ситуации, и тогда можно получить все необходимые данные.
Источник
Мониторинг трафика
Содержание
В этой статье собраны способы мониторинга трафика, проходящего через сервер. Чаще всего задача мониторинга встаёт для роутеров, обеспечивающих связь с интернетом.
Мониторинг в реальном времени
Для мониторинга трафика в реальном времени можно использовать утилиту jnettop :
Или, как вариант, vnstat с ключом –live :
Можно также воспользоваться достаточно удобной утилитой с псевдографическим интерфейсом, которая называется iptraf :
Журналирование активности средствами iptables
Стандартный пакетный фильтр iptables иногда может быть очень полезен для анализа какого-то конкретного типа трафика. iptables позволяет записывать в системный журнал активность по выбранным критериям. Например, с помощью iptables можно легко отследить, какой компьютер посылает данные во внешнюю сеть по 25 порту (SMTP ), таким образом вычислив заражённый компьютер в локальной сети.
Для записи данных в файл журнала предназначено действие LOG (и более мощное ULOG ). Подробный его синтаксис и возможные параметры можно посмотреть в документации по iptables .
Важным аспектом является то, что iptables сам не ведёт файлы журналов. Вместо этого действие LOG отправляет информацию системному демону журналирования, и уже он записывает её в журнал, коим чаще всего является /var/log/syslog . В итоге получается каша, в которой очень непросто разобраться. Поскольку iptables сам не занимается ведением журнала, то перенаправить запись в отдельный файл средствами самого iptables невозможно.
К счастью, в Ubuntu существует простой способ рассортировать данные по нужным журналам средствами используемой системы журналирования rsyslog . Достаточно при записи в журнал добавлять некий уникальный префикс. Например, вот так:
Теперь все записи в журнале, соответствующие этому критерию, будут начинаться с «iptables: ». Осталось добавить правило сортировки в систему журналирования. Для этого можно создать файл /etc/rsyslog.d/10-iptables.conf со следующим содержанием:
Вторая строчка означает, что дальнейшую работу с этой записью производить не надо, т.е. она не должна попадать в другие журналы.
После создания нового файла конфигурации не забудьте переконфигурировать rsyslog :
Теперь вся активность, соответствующая добавленному правилу iptables, будет записываться в файл /var/log/iptables.log . Если вы хотите надолго оставить журналирование, то не забудьте добавить этот файл в систему ротации логов logrotate , а то в какой-то момент у вас может закончиться место на диске.
Подробней про управление записью журнала можно почитать в документации по rsyslog.
Утилиты Vnstat и Vnstati
Vnstat это очень простой инструмент для учёта трафика. Он есть в репозиториях Ubuntu, так что установка не вызывает сложностей. Vnstat не требует тонкой настройки, просто считает трафик и позволяет просматривать статистику. Для обычного пользователя этого чаще всего более чем достаточно.
Чтобы начать подсчёт трафика надо выполнить команду, которая создаст базу данных для указанного интерфейса:
Подсчёт трафика происходит автоматически, база данных обновляется при выключении сетевого устройства. Но есть возможность обновить базу вручную:
Для просмотра статистики достаточно просто ввести:
Также можно использовать ключи:
Vnstati это утилита для визуализации статистики, с ней тоже все просто. Вот, например, короткий скрипт, который выводит на экран статистику в виде картинки:
Обе утилиты имеют еще некоторые возможности, не забывайте про ключ —help и утилиту man!
Netflow — мониторинг с ведением статистики
Для мониторинга с ведением статистики одним из популярных решений является технология Netflow.
Для сбора статистики с помощью Netflow необходимо на нужные интерфейсы повесить специальные Netflow-сенсоры, которые будут собирать информацию и передавать Netflow-коллектору, который может располагаться на другой машине.
Информацию, собранную коллектором, можно визуализировать с помощью графического фронтенда, или же анализировать с помощью утилит командной строки.
В качестве сенсоров можно использовать доступные в стандартных репозиториях fprobe или softflowd .
Сенсор fprobe
Для установки сенсора fprobe можно, например, выполнить такую команду:
Установщик спросит, на каком интерфейсе слушать трафик, и куда передавать собранную статистику — введите нужные вам параметры и fprobe начнёт работать. Например, для Nfsen в примере ниже нужно указать порт 9995.
Автозапуск при перезапуске сети
Демон fprobe всегда аварийно завершается, когда интерфейс, к которому он привязан, выключается (переходит в состояние DOWN). И не запускается автоматически снова, когда интерфейс возобновляет работу.
Если вам по каким-то причинам нужно периодически переключать интерфейсы, то чтобы обойти данную проблему fprobe можно в файл /etc/network/interfaces после описания интерфейса добавить строчки
Например, могло бы получится нечто похожее на:
Теперь при использовании утилит, которые перечитывают этот файл ( ifup и ifdown ), fprobe будет корректно завершаться и автоматически запускаться при переключении состояния интерфейса. При этом при старте системы fprobe будет пытаться запуститься два раза (один раз стандартным способом, другой — через /etc/network/interfaces ), и хотя у него это не получится, но всё же для порядка лучше автозапуск системного демона fprobe убрать:
Несколько демонов fprobe на одном компьютере
Если вы хотите запустить на одном компьютере сразу несколько демонов fprobe (чтобы слушать несколько интерфейсов), то придётся немного изменить стартовые скрипты.
Для начала отредактируйте имеющийся стартовый скрипт /etc/init.d/fprobe , заменив в нём строчку
И, кроме этого, строчку
Первое число добавленного параметра запуска -l («1») говорит fprobe использовать syslog для журналирования, а второе является идентификатором процесса. Именно второе число и нужно менять при запуске нескольких копий fprobe , и оно же должно стоять в квадратных скобочках в параметре NAME соответствующего стартового скрипта.
Теперь, чтобы создать все необходимые параметры и скрипты для запуска второй копии fprobe , скопируйте /etc/init.d/fprobe в /etc/init.d/fprobe_1 :
И /etc/default/fprobe в /etc/default/fprobe_1 :
Отредактируйте /etc/default/fprobe_1 для работы со вторым интерфейсом.
Теперь надо отредактировать стартовый скрипт /etc/init.d/fprobe_1 для второго процесса fprobe . Замените числа в параметре NAME и DAEMON_OPTS на нужные:
Кроме этого, измените код загрузки конфигурационного файла таким образом, чтобы он обращался к файлу fprobe_1. Вместо примерно следующего:
должно получится что-то вроде:
Также в новых версиях Ubuntu в начале этого файла содержится специальный комментарий для системы загрузки. Он начинается со строчки
В этом комментарии также необходимо заменить строчку
Убедитесь, что всё работает, как надо. Для этого запустите оба fprobe , потом загляните в любой менеджер процессов (например, htop ) и найдите там оба демона.
Если всё нормально, то добавьте второй демон fprobe в автозагрузку командой
Конечно, если вы пропишете запуск второго демона fprobe в /etc/network/interfaces , то добавлять его в автозагрузку не стоит.
Таким образом можно запустить сколько угодно демонов fprobe , просто меняя идентификатор.
Коллектор Nfdump и визуализатор данных Nfsen
Nfdump и Nfsen — это коллектор с сопутствующими утилитами и веб-интерфейс визуализации собранных данных. Nfdump доступен в стандартных репозиториях Ubuntu, а Nfsen можно скачать с официального сайта http://nfsen.sourceforge.net/. Там же можно посмотреть скриншоты, чтобы составить представление о том, что такое Nfsen.
В качестве сенсора для этой связки можно использовать любой доступный, например fprobe или softflowd .
Nfdump можно поставить через любой пакетный менеджер, например, командой
Nfsen необходимо распаковать куда-нибудь на сервер из архива с исходными текстами и выполнить несколько несложных операций. Для начала необходимо поставить все нужные для работы пакеты:
После этого зайти в папку etc/ в директории, куда вы распаковали Nfsen, и переименовать находящийся там файл nfsen-dist.conf в nfsen.conf . Это основной конфигурационный файл Nfsen. Его необходимо отредактировать под ваши нужды. Ниже приведены только опции, которые нужно изменить для базовой конфигурации Nfsen:
Подробную документацию по доступным возможностям можно почитать на официальном сайте Nfsen.
После редактирования конфига можно установить Nfsen. Для этого достаточно из директории, куда вы его распаковали, выполнить команду
Всё, что осталось, это запустить Nfsen. В примере выше в качестве директории для установки Nfsen указан путь /srv/nfsen/. В этом случае для запуска можно использовать команду
Чтобы интегрировать Nfsen в систему качестве автоматически запускаемого сервиса выполните две примерно такие команды:
Теперь, если вы оставили настройки веб-сервера по умолчанию, веб-интерфейс должен быть доступен по адресу http://yourserver/nfsen/nfsen.php.
Для мониторинга скорости соединения и трафика можно также использовать стандартный апплет панели cairo-dock — netspeed и популярное средство системного мониторинга conky.
Источник
Мониторинг пропускной способности и скорости сети в Linux
Вкратце: в этой статье мы перечислим некоторые утилиты с открытым исходным кодом для мониторинга сетевого трафика, пропускной способности и скорости интернета в Linux.
Мониторинг скорости интернета может оказаться ключевым шагом в диагностике вашего соединения и способен помочь вам обнаружить возможные проблемы. Это также поможет вам устранить неполадки с подключением интернета и найти узкие места.
Инструменты для мониторинга интернет-трафика и скорости сетевого соединения в Linux
Я представляю вам различные утилиты, которые помогут мониторить скорость вашего интернет соединения. Также я добавил инструкции по установке для дистрибутивов на основе Ubuntu/Debian, также данные утилиты могут быть легко установлены и в других дистрибутивах.
Неважно, если вы новичок, который хочет простых, работающих решений, или гуру, желающий получить как можно больше информации о сети, предпочитаете ли вы программы с графическим интерфейсом (GUI) или командной строкой (CLI), я помогу вам найти необходимую утилиту для определенной задачи.
1. NetSpeed - расширение оболочки GNOME для пользователей ПК
NetSpeed — это расширение оболочки GNOME, которое отображает суммарные скорости загрузки и скачивания на панели gnome. При нажатии на него выводятся отдельные значения в выпадающем списке.
Это применимо, только если вы используете рабочую среду GNOME. Если еще не знакомы, прочитайте руководство, чтобы узнать, как использовать расширения GNOME Shell .
2. Fast — тестировщик скорости интернета от Netflix
Fast — это CLI-утилита с открытым исходным кодом, работающая на сервисе Netflix fast.com . Хотя код самого сайта не является открытым исходным кодом, Netflix объяснил, как он работает здесь . Fast — это идеальный инструмент для тех, кто хочет проверить скорость скачивания простым способом.
После установки вы можете запустить утилиту, напишите:
И через несколько секунд вы еще раз получите свой результат
Скорость интернета на дисплее snap Fast
3. speedtest-cli: проверка скорости загрузки и скачивания
speedtest-cli — это интерфейс командной строки с открытым исходным кодом для тестирования пропускной способности интернета с использованием speedtest.net (код самой страницы не является открытым). Это быстрый и легкий инструмент для проверки скорости загрузки и скачивания.
speedtest-cli доступен в большинстве дистрибутивов и может быть легко установлен с помощью менеджера пакетов. В Debian/Ubuntu вы можете написать следующую команду:
Установили — запустите, просто напишите:
Через несколько секунд вы получите информацию о том, какой сервер использовался для проверки вашего соединения, а также сведения о скорости вашего интернет соединения. Прочтите man speedtest, чтобы узнать о дополнительных возможностях (например, не выполнять тест скачивания командой no-download ).
4. NetHogs — проверка использования пропускной способности для каждой программы
NetHogs — это простая утилита с открытым исходным кодом, которая запускается в терминале. Вместо того, чтобы разбивать трафик по протоколу или подсети, он группирует полосы пропускания по процессам. Это очень полезно для нахождения PID зависшей программы или просто для просмотра того, что съедает вашу пропускную способность. Он опирается в основном на команду /proc , поэтому большинство функций доступно только для Linux.
К счастью, NetHogs входит во многие дистрибутивы. Это означает, что вы можете установить и удалить его с помощью обычного менеджера пакетов. В Debian/Ubuntu вы можете написать такую команду:
Чтобы запустить ее, напишите:
Удобно, что вы можете указать устройства после команды (например, sudo nethogs eth0 ). Также есть дополнительные параметры, такие как: выбор интервала для частоты обновления ( -d ), информация о версии ( -V ), режим трассировки ( -t ) и некоторые другие, о них вы можете прочитать в мануале (man nethogs ).
5. nload — мониторинг интернет-трафика в режиме реального времени
nload — консольное приложение с открытым исходным кодом, которое позволяет вам отслеживать сетевой трафик и использование полосы пропускания в режиме реального времени. Он визуализирует входящий и исходящий трафик с помощью графиков, а также предоставляет дополнительную информацию (общий объем передаваемых данных, минимальное/максимальное использование сети и др.). Это простой в использовании инструмент, который иногда очень помогает.
Вы можете установить его в дистрибутивах на основе Debian и Ubuntu, используя команду:
Для запуска напишите:
Вы можете посмотреть его различные параметры в мануале ( man nload ).
6. CBM — измеритель полосы пропускания с цветным интерфейсом
CBM — очень простая утилита, которая отображает (в цвете) сетевой трафик на всех подключенных устройствах очень лаконично.
CBM — немного устаревшая программа, которую можно найти в большинстве дистрибутивов. Поэтому устанавливать и удалять ее с помощью менеджера пакетов очень просто.
Запустить CBM так же просто, как и установить. Пишем:
Команды отображаются в нижней части вашего терминала, чтобы вы могли легко их выбрать.
7. iPerf — тестирование производительности сети между двумя хостами
iPerf — это инструмент, используемый для измерения и настройки производительности сети, который может производить стандартизированные измерения производительности для любой сети. Он имеет функциональные возможности клиента и сервера и может создавать потоки данных для измерения пропускной способности, потери данных и других параметров между двумя узлами сети в одном или обоих направлениях. Существует две версии: исходная iPerf (iPerf2) и не совместимая с предыдущей версия iPerf3.
Самый простой способ установить (или удалить) iPerf или iPerf3 — использовать менеджер пакетов. Например, в Ubuntu таким образом:
Далее запускаем нужную вам версию:
Примечание. Для всех дальнейших примеров, если вы используете iPerf3, просто замените все случаи iperf на iperf3 .
Однако при этом будут отображаться только ваши параметры. Чтобы запустить iPerf , вам нужно минимум 2 устройства: один для работы в качестве клиента и один для работы в качестве сервера . Для сервера напишите:
Это откроет устройство для прослушивания через порт 5001. Чтобы подключиться к другому устройству и запустить тест, используйте команду:
Где server_address — это, конечно, адрес сервера, к которому вы пытаетесь подключиться. Это может быть либо IP-адрес , либо что-то вроде ping.online.net . У команды iPerf3 есть список серверов для тестирования. Рекомендуется прочитать Топ-31 лучших игр для Linux, в которые можно играть бесплатно
iPerf — это широко используемый инструмент, который имеет множество конкретных применений и специальных возможностей. Я не буду вдаваться в них, поскольку это выходит за рамки этой статьи. Тем не менее, вы можете почитать о них в мануале ( man iperf / man iperf3 ) или в этой документации .
8. vnStat — логгер сетевого трафика
vnStat — это монитор сетевого трафика на основе консоли с открытым исходным кодом, который использует статистику сетевого интерфейса, предоставляемую ядром в качестве источника информации, для своих периодических логов. Это означает, что vnStat, на самом деле, не будет анализировать трафик, а также гарантирует низкую загрузку процессора. Он может быть запущен без root прав.
Как и многие другие сетевые инструменты, vnStat входит в большинство хранилищ дистрибутивов. Это означает, что вы можете очень легко установить (и удалить) его, используя менеджер пакетов.
Чтобы использовать его в обычном виде, напишите:
vnStat также предлагает вам расширенные возможности, такие как возможность использования базы данных (их импорт или экспорт данных в файл). Вы можете прочесть об этом в мануале ( man vnstat ). Больше примеров можно найти на официальном сайте .
9. iftop — «топ» использования сети
iftop — это бесплатный программный инструмент мониторинга c командной строкой и открытым исходным кодом, который выводит часто обновляемый список сетевых подключений между парой хостов. Соединения могут быть упорядочены по разным параметрам, но по умолчанию они упорядочены в зависимости от использования пропускной способности, при этом отображаются только «верхние» потребители пропускной способности.
Заключение
В этой статье я рассказал вам о нескольких инструментах, которые вы можете использовать для мониторинга различной статистики, касающейся производительности вашей сети. Существует инструмент, который подходит для всех, но вы можете выбрать тот, который соответствует вашим конкретным потребностям. Я надеюсь, что эта статья была хорошим введением в мир интернет-мониторинга.
Какой ваш любимый инструмент и как вы его используете? Дайте нам знать в разделе комментариев!
Источник