Linux - сетевые мониторы

После разговора с sysadmin я понял, что могу пригодиться в разделе UNIX. Начнем, пожалуй с этой темы.

Speedometer - монитор сети по интерфейсам, один из моих любимых мониторов, на работе я отдельный дисплей для него выделил, чтобы одним взглядом оценить эффективность работы моего шейпера. Конечно, для детальной статистики он не подойдет, зато позволяет оперативно получать информацию в момент, когда администратор расширяет инфраструктуру. Он представляет собой некоторый двухмерный плот для отображения гистограмм.

Примеры использования.

  1. Терминальный: speedometer -r eth0 -t eth0 -r eth1 -t eth1 -r eth2 -t eth2 -i 1 -s
    “-r eth0 -t eth0” таким образом мы добавляем один RX показатель и один TX показатель для интерфейса eth0 в плот спидометра.
    В данном примере я добавил три пары входящих и исходящих показателей для интерфейсов eth0, eth1, eth2
    “-i 1” указываем интервал снятия показаний с интерфейсов, в данном примере 1 секунда, когда я использую спидометр с терминала сотового телефона, я ставлю 5 секунд для снижения нагрузки на видеоподсистему телефона и снижаю расходы мобильного трафика.
    “-s” указания на использование битов в секунду, в качестве единицы измерения, вместо байтов в секунду

  2. Мониторинг с помощью Remmina: Если вы используете приложение Remmina, вы можете создать ssh подключение к своему шлюзу и добавить в качестве команды на исполнение вышеуказанный пример. Таким образом вы сможете оставить спидометр на экране всегда включенным, если вы завершите обзор к примеру с помощью CTRL+C, подключение автоматически закроется программой Remmina - довольно безопасно.

Пример терминального вызова спидометра:

http://storage8.static.itmages.ru/i/14/0109/s_1389297914_5630341_4a3055621d.png

Из справки по программе: speedometer [options] tap [[-c] tap]…
Описание разработчика: Монитор сетевого трафика или скорости\прогресса сетевой передачи файл[а,ов]. Как минимум один интерфейс должен быть добавлен. Параметр -c стартует новую колонку, иначе все будет отображаться вертикально.

Подробное описание возможностей: speedometer -h

Разработан на Python 2.7
Работает с Urwid версии 0.9.9.1 или более новой
Позволяет использовать UTF-8

В моем примере я наблюдаю ночные показатели по eth0 - LAN к шлюзу, eth1 - Интернет к шлюзу, eth2 - VPN канал для доступа к другой локальной сети.

Дааа… такое не грех на отдельном мониторе держать ))) :good: :good: :good:

Мне известна масса средств мониторинга в терминале, я после работы вечером еще одну программку опишу тут, так я планирую рассмотреть по меньшей мере 5 отличных мониторов.

Монитор сетевой активности по интерфейсам iptraf.

Этот монитор можно использовать как центр статистики, чтобы измерить количество трафика, которое расходует какое-либо приложение. Для этого достаточно знать адреса и\или порты по которым работает объект изучения.

Справку по работе с программой можно найти в самой программе, в официальной вики, на сайте разработчика и в манах.

Совет от меня: Первым делом надо включить логирование, иначе программа по умолчанию ограничится выводом статистики на экран. После выхода из настроек в IP traffic monitor укажем путь, куда логировать.

Дальше можно с этим логом делать что угодно - грепать на предмет искомых обращений, например.

Для задачи подсчета более лаконичным будет использование netflow сенсора для iptables. Но iptraf это тоже хороший инструмент.

Отлично, слышал что можно как то между линукс машинами сгенерировать и передать файл по сети при этом замерив скорость передачи данных, случаем не сталкивался?

Генерация файла размером в 100 мегабайт из блоков по 1 мегабайт: dd if=/dev/zero of=file.test bs=1M count=100
Передача по сети возможна различными способами, к примеру, если передавать по ssh или ftp, скорость можно замерить самими утилитами, если передавать через веб-сервер - скорость замерить можно тем же wget при скачивании с веб-сервера файла в локальной сети.

Я осуществляю удаленное копирование в локальной сети с помощью scp. SCP (Secure Copy Protocol) - Линукс команда для защищенного копирования файлов или папок на удаленный компьютер (сервер) или с него, используя для этого протокол SSH (Secure Shell). SCP является составной частью пакета OpenSSH. Благодаря использованию ssh, SCP является отличной заменой для небезопасного протокола FTP, которой широко используется в Интернете.

Пример с замерами скорости копирования:

http://www.ibm.com/developerworks/ru/library/cl-smartcloudsolution2/figure21.jpg

Так же mc, krusader, filezilla имеют счетчики скорости копирования. Диалог копирования по умолчанию в KDE имеет счетчики скорости копирования.

Что стоит сказать о технологиях передачи данных: Ну определенно, копирование зависит от протокола, разные скоростные характеристики и требования к ресурсам будут замечены в одной и той же локальной сети при копировании по протоколу smb и по протоколу ftp. Мы так же можем замерить скорость внешними (относительно процесса или компьютера) утилитами. Спидометр не подходит для этого измерения из-за отображения общей активности на интерфейсе. Получается погрешность между передачей байт файла по сети и общей сетевой активностью, которая может быть неадекватно большой при двух потоках или когда кто-нибудь начнет с передающего сервера качать другие общедоступные файлы по sftp например или из smb шары. В таком случае показания спидометра увеличиваются, а показатели scp падают, последний получает меньше пропускной, из-за наличия другого процесса сетевой передачи - поделят поровну. А на спидометре показатели лишь увеличатся или останутся без изменений, в зависимости от общей пропускной в сети.

Я предлагаю в качестве средства по замеру сетевых передач интересную программку etherape, она наблюдает за портами и протоколами, их можно даже отображать графически (основной режим работы программы). Если щелкнуть дважды на узле (точка на графической плоскости программы), тогда можно наблюдать скорость и объем переданных данных по конкретному протоколу. Протоколы можно подсветить разными цветами и включить логарифмический режим отображения скоростей, вместо параметрического. Мы так же можем использовать режим накопления статистики.

В средней локальной сети:

Пример сбалансированной сети:

Пример замеров в малой локальной сети:

Напоминаю, что счетчики с детализированной информацией и точными счетчиками можно получить дважды кликнув на узле в программе.

Ай, спасибо, то что надо… !