- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF142:ntop
Материал из Linuxformat.
- Ntop Хотите узнать больше о своей локальной сети? Ясное дело, хотите!
Содержание |
Ntop: Проверьте свою сеть
- Бен Мартин расскажет, как использовать сетевой монитор для выявления причин перегрузки полосы пропускания и узнать больше о трафике.
Ресурсы компьютера ограничены, как вам известно по операциям с дисками, сетями, ОЗУ и процессором. У многих людей на рабочих столах присутствует монитор процессора и ОЗУ для слежения за этими ценными ресурсами, так почему бы не сделать то же самое для вашей сети? Например, в какое-то время сеть может быть слишком перегружена, или кабель при последнем издыхании, что вызывает поток ошибок. С Ntop вы увидите, кто и что использует в вашей сети, и проверите, что все работает как положено, или диагностируете проблемы в конкретном участке сети или приложении.
Для анализа сети имеется много способов. Например, вас может интересовать трафик, идущий через вашу сеть, или процент трафика Network File System (NFS) или Internet Message Access Protocol (IMAP) в определенное время дня. Или вы просто хотите знать, какие хосты имеют активные подключения к службам, работающим на машине; а разброс времен прохождения трафика по локальной сети может указывать на проблемы хоста или сетевого оборудования.
Стоп около Ntop
Ntop анализирует сетевой трафик, который идет к хосту или через него, и предоставляет информацию о нем через web-интерфейс. Ради простоты, мы будем называть машину под управлением Ntop сервером, а хосты, которые общаются с ним или через него, клиентами, хостами или машинами.
Имейте в виду, однако, что Ntop может только помочь вам анализировать сетевой трафик, который он видит. И если ваш сервер подключен к коммутатору Ethernet, две другие машины общаются друг с другом через него, а не через сервер, и трафика Ntop не увидит. Таким образом, стоит запускать Ntop на машине, обеспечивающей сетевой сервис, который вы хотите контролировать. Или – если ваша Linux-машина служит Интернет-шлюзом, то это также неплохое место для запуска Ntop.
Если у вас есть сетевое оборудование с мониторингом cPacket, sFlow или Netflow, можно указать этим железякам тоже посылать информацию в Ntop для анализа. Как вариант, удобно выбрать сервером Ntop хост, выполняющий функции маршрутизатора (с двумя или более сетевыми картами).
На момент написания, последней версией Ntop была 4.0.3, доступная в виде пакетов для нестабильной версии Debian. Все Fedora, в том числе 14 и разрабатываемые, идут с версией Ntop 3.4 или выше. Ничто не мешает самостоятельно собрать Ntop 4.0.3 из исходных кодов. Наконец, двоичный 64‑битный RPM Ntop для Fedora 13, применяемый на данном уроке, доступен на DVD этого месяца.
Давайте начнем
Ntop запускается как демон и предлагает web-интерфейс на портах 3000 и 3001, используя протокол HTTP и HTTPS соответственно. По умолчанию, только машина с Ntop получает доступ к этому интерфейсу. Чтобы разрешить другим компьютерам доступ к Ntop или изменить порты, отредактируйте /etc/ntop.conf и запустите HTTP(S) сервер на IP-адресе, отличном от 127.0.0.1. В примере ниже сервер HTTP сделан доступным на явном интерфейсе сети, а сервер HTTPS – на порте 3001 на сетевых интерфейсах всех машин.
# edit/etc/Ntop.conf … --http-server 192.168.1.1:3000 --https-server 3001 … # service Ntop restart
Отметим, что хотя мы пытались явно перечислить все сетевые адреса, повторяя опцию --https-server, повезло только последнему. Если опустить имя хоста или IP-адрес, web-интерфейс Ntop будет доступен через все сетевые интерфейсы вашей машины.
Также имейте в виду, что web-интерфейс Ntop позволяет неавторизованным клиентам просматривать данные через сеть, но менять настройки можно только тем, кто авторизован с правами администратора. Следующая последовательность команд, запускаемая с правамиадминистратора, позволяет установить пароль администратора:
# service Ntop stop # Ntop --set-admin-password=CHANGEME # service Ntop start
Посещение порта 3001 должно вывести большое резюме. Две верхние круговые диаграммы показывают соотношение одноадресных передач и маршрутизованных пакетов и распределение размеров пакетов. Далее идут еще две диаграммы, отображающие отношение IP к не-IP трафику и TTL (Time To Live, время жизни) пакетов, проходящих через вашу сеть.
TTL – это число, приписанное сетевому пакету, которое уменьшается при каждом прохождении пакета через маршрутизатор. Когда TTL пакета достигает нуля, пакет удаляется. Так предотвращается бесконечная циркуляция пакетов в сети.
Трафики на графике
Поинтереснее будут четыре графика зависимостей от времени в нижней части главной страницы, которые описывают трафик HTTP, DNS, почты и SSH за последние несколько часов. За этим разделением на порты следует временной график, включающих много общих типов сетевого трафика, таких как BitTorrent и VoIP, поэтому вы можете быстро узнать, когда и чем именно вызваны пики нагрузки.
Нажатие на лупу рядом с каждым графиком позволяет явно указать интервал времени для графика. Удобное меню предлагает общие интервалы по отношению к текущему времени: например, за последний день или полчаса. И если вы хотите точно узнать, когда HTTP-трафик резко возрастает или велика ли нагрузка NFS и на какое время приходятся ее пик, отсюда и начните.
В самом низу страницы сводки показан входящий и исходящий трафик портов сервера за последнюю минуту, в порядке уменьшения пропускной способности. Каждый порт в этом списке означен гиперссылкой, позволяющей быстро увидеть, какие хосты недавно использовали порт. Эта страница по умолчанию доступна на Summary > Traffic. Если вам надо посмотреть, как загружена сеть прямо сейчас и какие хосты влияют на нее, начинайте с нижней части этой страницы.
Властелин хостов
Перейдя к странице Хосты, находящейся в меню Summary, мы увидим списки всех хостов, известных Ntop, в сопровождении некоторой явной информации типа МАС-адреса и информации, обнаруженной Ntop, типа операционной системы хоста и используемого сетевого оборудования. По умолчанию эта таблица отсортирована по объему трафика, отправленного хостом через сервер. Сортировку можно изменить, нажав на любой заголовок таблицы для сортировки по этому столбцу. Если сеть большая, можно также ограничиться показом только хостов для выбранной подсети, используя выпадющие меню в верхней части страницы для фильтрации того, что вам нужно.
Таблица хостов дает доступ к стандартной информации по каждой машине в сети, такой как имя хоста, IP-адрес, MAC адрес и подсчет входящего и исходящего трафика. Доступна также дополнительная информация – догадки Ntop про тип сетевой карты и операционной системы, является ли хост маршрутизатором и какие сервисы на нем работают. Список сервисов ограничивается хостами в вашей локальной сети. Для хостов в Интернет, количество перескоков на каждом компьютере отображается в столбце Hops Distance.
Увидеть с высоты птичьего полета, что делают хосты в сети, можно в разделе IP >Local > Local Matrix, где показан объем данных, пересылаемых между известными хостами локальной сети. Переход в All protocols > Activity покажет трафик, созданный для каждого известного хоста за последний день.
Эта страница имеет цветовые коды для трафика каждого хоста по отношению к себе. Например, если ваш почтовый сервер больше всего нагружен в 9 утра и сразу после обеда, то на странице Activity эти одночасовые блоки будут полыхать красным цветом. Так как хост оценивают по отношению к самому себе, файловый сервер, пересылающий гигабайты данных, не заглушит статистику для вашего почтового сервера.
Ориентация сервера
Переход к странице IP-> Local> Active TCP/UDP Sessions сессий покажет все входящие и исходящие соединения вашего сервера. Для каждого соединения можно видеть, сколько данных было отправлено и получено, долго ли соединение было активным, а также сетевую задержку в обоих направлениях для каждого соединения.
К сожалению, таблицу активных соединений, похоже, отсортировать нельзя, то есть вы не можете, например, увидеть, у каких активных соединений наибольшая сетевая задержка.
Чтобы узнать, с какими сервисами каждого узла хост связывается через сервер, перейдите к странице IP > Summary > Traffic. Таблица по умолчанию отсортирована по общей пропускной способности, но посмотреть, через какой хост прошло больше SSH, NFS, почты или пирингового трафика, можно всего лишь по одному щелчку.
Более того, Ntop способен показать вам карты, иллюстрирующие, откуда идут запросы к серверу. Одна из карт, Region Map, представляет цветную карту мира, где страны, чаще всего обращающиеся к серверу, окрашены темным, тогда как вариант Host Map быстро выдаст ограниченное число машин в Интернете, связывавшихся с машиной, где работает Ntop. Если вы предлагаете трафик в интернет, эти две карты позволят вам увидеть, откуда приходят ваши сетевые запросы по стране, или маркеры на карте Google.
IP > Local > Network Traffic Map использует инструмент Dot для создания графика вашего сетевого трафика. Правда, Ntop ожидает, что приложение Dot из Graphviz установлено в /usr/local/bin, а значит, не найдет его, если вы установили Dot с помощью пакетов дистрибутива. К счастью, вам предложат ссылку на настройки, чтобы это исправить, но придется прокручивать настройки, чтобы найти путь dot.path, установленный в /usr/local/bin/dot по умолчанию. Изменение его на правильный путь для вашего дистрибутива (на Fedora это /usr/bin/dot) – первый шаг для построения графиков в Ntop.
В этом пункте может возникнуть ошибка, связанная с невозможностью создать временный файл. При этом можно либо разрешить пользователю Ntop создавать файлы в --spool-file-path, по умолчанию /var/lib/ntop, или изменить этот путь, добавив к файлу /etc/ntop.conf нечто вроде
# edit /etc/ntop.conf … --spool-file-path=/tmp
С этим путем и Dot, после выбора IP > Local > Network Traffic Map вы должны увидеть миленький розово-голубой график.
Через модули
Меню Плагины > Все выводит таблицу с описанием имеющихся модулей расширения, с кратким изложением функций каждого, пометкой, активен модуль или нет, и ссылкой для его настройки. Остальная часть меню Плагины в основном представляет быстрые ссылки на опции, представленные в таблице под Плагины > Все опции. rrdPlugin управляет файлами карусельной базы данных [Round Robin Database], используемой для хранения информации, которую собирает Ntop. Можно также включить модуль мониторинга трафика ICMP.
Кроме того, есть модули для мониторинга cPacket, sFlow и Netflow. Все они, как уже говорилось, позволяют Ntop получать информацию о сетевом трафике от любого вашего сетевого устройства. Вам, как правило, придется заплатить больше на сетевые переключатели, что позволяет посылать информацию о потоках определенным машинам.
Утилита с удобствами
Меню Utils позволяет просматривать кольцевой буфер последних 50 сообщений от демона Ntop. Вы также можете экспортировать данные, собранные Ntop, либо в виде текста, либо как XML, JSON, Perl, Python или PHP. Вы, возможно, удивитесь, почему языки программирования включены в форматы экспорта. Но как JSON определяет информацию в виде получаемой из JavaScript, создавая структуры данных, так и экспорт Perl объявит и определит многие хэши, содержащие экспортируемые данные.
Экспорт в синтаксисе обычного языка скриптов позволяет создать приведенный ниже Perl-скрипт. Этот скрипт захватывает информацию, экспортируемую из Ntop, а затем создает очень простой отчет в командной строке.
#!/usr/bin/perl use IO::All; eval io(“http://127.0.0.1:3000/dumpData.html?language=perl&view=long”)->slurp(); print STDOUT “Сервер отправил “, $ntopHash{‘127.0.0.1’} {‘bytesSent’}, “ байтов.\n”;
Но не все так просто с Ntop. Страница Utils > RRD Alarm Configurator выглядит замечательно, но нам не удалось убедить ее сохранить нашу конфигурацию, чтобы мы ею пользовались. Надеюсь, что ко времени, когда вы будете читать наш учебник, эта проблема будет решена.
Чья корова мычала
На странице Хосты найдется масса полезной информации о том, кто подключен к вашему серверу.
Ntop позволяет посмотреть, какие хосты передают информацию в сети, что они передают, и когда. Просмотр используемых хостов и портов позволит быстро увидеть, кто и что, а графики с настраиваемой шкалой времени (доступны в нижней части страницы Summary > Traffic) дадут вам понять, когда.
Заметьте, что мы нашли несколько похожих страниц, и нам пришлось переключаться между ними в поисках той, что дает искомую информацию. Например, страница All Protocols > Traffic отображает трафик IPsec в двух различных столбцах, но SSH вообще не выводит. Зато на странице IP > Resume > Traffic есть данные об SSH, NFS и X11, но ничего про IPSec. Мы надеемся, что в будущем подобные страницы свяжут друг с другом, или они будут предлагать разграниченные сводные данные: безопасность (IPSec, SSH), файловый сервер (NFS, Samba), P2P, и другие.
Наконец, возможность экспорта данных, собранных Ntop, в различные языки скриптов сильно упрощает изготовление пользовательских отчетов и запуск проверок на вашем любимом скриптовом языке.
Как вы, надеюсь, поняли, Ntop очень много чего может; вам остается только приставить его к делу.
Ресурсы
- Домашняя страница Ntop http://www.ntop.org
- Ntop для настабильного Debian http://packages.debian.org/sid/ntop
- Числа автономных систем (AS) http://en.wikipedia.org/wiki/autonomous_system_%28Internet%29
- Комплект Graphviz, включая инструмент Dot для отображения сетевого трафика http://www.graphviz.org
- NetFlow http://www.cisco.com/en/US/products/ps6645/products_ios_protocol_option_home.html
- SFlow-совместимые устройства http://www.sflow.org/products/network.php
- Время жизни IP-пакета (TTL) http://en.wikipedia.org/wiki/time_to_live
Порты приписки
Многие сетевые приложения – такие как файл-серверы, электронная почта и web-трафик – клиенто- или серверо-ориентированы. Это означает, что клиент обычно обращается к серверу через предопределенный порт и просит то, что ему, клиенту, нужно. Порты до 1024 зарезервированы на сервере, чтобы клиенты могли связаться с предопределенными портами. Нормальный web-трафик идет через порт HTTP (80), а зашифрованный трафик – через HTTPS (443). Как правило, порты ниже 1024 предоставляются привилегированным приложениям, и клиенты получают большую уверенность, что на их сетевые запросы отвечает не хулиган-пользователь с сервера.
Сопутствующие AS
Колонка AS на странице Хосты показывает количество используемых хостом автономных систем (AS). В Интернет такие AS используются десятками тысяч. Их можно считать назначенными хосту или корпоративной сети на более высоком уровне в Интернет – например, предоставленными крупному ISP. Таким образом, число AS дает указание более высокого уровня о том, связаны ли хосты, благодаря маршрутизации пакетов через общего провайдера.