Доброго времени суток, дорогие читатели.
Думаю что каждый системный администратор хорошо знаком с утилитой ntop, позволяющую видеть утилизацию полосы различными протоколами и хостами.
Спустя 15 лет с момента представления оригинального ntop, объявлен релиз нового, современного ntop. Мы называем его ntopng, ntop next generation (ntop следующее поколение). Цели преследуемые этим приложением:
- Публикация под GNU GPLv3
- Представление современного, основанного на HTML5 и Ajax веб интерфейса (предостережение: вам нужен современный браузер для использования ntopng)
- Небольшой движок приложения, разумное потребление памяти и отказоустойчивость
- Возможность определить протокол приложения с помощью nDP, DPI (Deep Packet Inspection) фреймворка ntop'a c открытым исходным кодом
- Возможность пользователей использовать скрипты, расширять и модифицировать страницы ntopng программируя с помощью LuaJIT, небольшого, но в то же время быстрого языка
- Характеризовать HTTP траффик за счет использования сервисов категоризации block.si (ntopng уже включает в себя лицензионный код, но вы можете получить личный код связавшись через info@block.si.)
- Использование redis как кеша данных, для разделения движка и хранилища данных
- Возможность собирать потоки — flows (sflow, NetFlow, IPFIX) используя nProbe в качестве зонда/прокси
- Быстрый, очень быстрый движок масштабирующийся вплоть до 10 Гбит на голом PC с помощью PF_RING/DNA.
- Поддержка Unix, BSD, MacOSX и Windows (включая 7/8).
Приступим к непосредственно установке в правильной ОС:
cd /usr/ports/net/ntopng
make install clean
Для работы ntopng также требует БД Redis для сохранения данных. Установим сразу и ее:
cd /usr/ports/database/redis
make install clean
Также создадим папку, если она не создалась автоматически:
mkdir /var/tmp/ntopng
Подправим немного стартовый скрип /usr/local/etc/rc.d/ntopng добавив в строке
command_args="-e -G $pid_path -1 $httpsdocs_path -2 $scripts_path -3 $callbacks_p ath"
закрывающую кавычку (")
и изменив
pid_path=/var/tmp/ntopng/${name}.pid
Выясним номер интерфейса для мониторинга, обычно он смотрит в локалную сеть, в моем случае это em0 и адресация сети 172.16.0.0/16.
ntopng -i
ntopng: option requires an argument -- i
28/May/2014 13:39:40 [Ntop.cpp:461] Setting local networks to 192.168.1.0/24,0.0.0.0/32,224.0.0.0/8,239.0.0.0/8,255.255.255.255/32,127.0.0.0/8
28/May/2014 13:39:40 [NetworkInterface.cpp:75] WARNING: No capture interface specified
28/May/2014 13:39:40 [NetworkInterface.cpp:1092] Available interfaces (-i <interface index>):
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 1. (em0)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 2. (usbus0)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 3. (ipfw0)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 4. (ng0)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 5. (em1)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 6. (usbus1)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 7. (ng1)
28/May/2014 13:39:40 [NetworkInterface.cpp:1113] 8. (lo0)
И видим что номер интерфейса у нас 1.
С учетом полученных данных, прописываем в rc.conf:
redis_enable="YES"
ntopng_enable="YES"
ntopng_flags="-G=/var/tmp/ntopng/ntopng.pid --local-networks "172.16.0.0/16" --interface 1"
Стартуем все:
/usr/local/etc/rc.d/redis start
/usr/local/etc/rc.d/ntopng start
Запускаем современный браузер и стучимся на гейт http://gateip:3000 с логином/паролем admin/admin и любуемся представленными отчетами.
И напоследок, несколько скринов: