NFdump является частью инструментария "Netflow flow collector", который включает в себя:
nfcapd, nfdump, nfreplay, nfexpire, nftest, nfgen
В Ubuntu есть подходящий пакет, но он для слишком старой версии, поэтому мы установим его из исходников. Сначала, убедитесь что все необходимые для установки вручную инструменты и зависимости присутствуют в системе:
$ sudo apt-get install build-essential
$ sudo apt-get install rrdtool mrtg librrds-perl librrdp-perl librrd-dev \
libmailtools-perl php5 bison flex
Теперь нам нужно скачать исходники и установить программу. Обратите внимание на то, что только самый последний шаг (make install
) должен быть выполнен с правами администратора.
$ cd
$ wget http://noc.ws.nsrc.org/downloads/nfdump-1.6.10p1.tar.gz
$ tar xvzf nfdump-1.6.10p1.tar.gz
$ cd nfdump-1.6.10p1
$ ./configure --help # optional, shows the build settings available
$ ./configure --enable-nfprofile --enable-nftrack
$ make
$ sudo make install
$ mkdir /tmp/nfcap-test
$ nfcapd -E -p 9001 -l /tmp/nfcap-test
... через какое-то время, серия потоков должна появиться на экране.
Остановите программу, нажав CTRL+C, потом посмотрите на каталог /tmp/nfcap-test
$ ls -l /tmp/nfcap-test
Вы должны увидеть один или несколько файлов вида nfcapd.<YEAR><MON><DAY><HR><MIN>
Пропустите файл(ы) через nfdump
:
nfdump -r /tmp/nfcap-test/nfcapd.201Ywwxxyyzz | less
nfdump -r /tmp/nfcap-test/nfcapd.201Ywwxxyyzz -s srcip/bytes
Вы должны получить кое-какую полезную информацию :)
Скачайте и установите. Патч нужен для коррекции следующей проблемы http://sourceforge.net/p/nfsen/bugs/31/
$ cd
$ wget http://noc.ws.nsrc.org/downloads/nfsen-1.3.6p1.tar.gz
$ tar xvzf nfsen-1.3.6p1.tar.gz
$ cd nfsen-1.3.6p1
$ wget http://noc.ws.nsrc.org/downloads/nfsen-socket6.patch
$ patch -p0 < nfsen-socket6.patch
$ cd etc
$ cp nfsen-dist.conf nfsen.conf
$ editor nfsen.conf
Установите переменную $BASEDIR
$BASEDIR = "/var/nfsen";
Укажите правильного пользователя и группу, для того чтобы Apache имел доступ к файлам:
$WWWUSER = 'www-data';
$WWWGROUP = 'www-data';
Установите размер буфера в какое-нибудь небольшое значение, так что мы увидим новые данные через непродолжительное время. В реальной работе вы не будете использовать такое малое значение.
# Receive buffer size for nfcapd - see man page nfcapd(1)
$BUFFLEN = 2000;
Найдите определение %sources
, и поменяйте его на:
%sources=(
'rtrX' => {'port'=>'9001','col'=>'#0000ff','type'=>'netflow'},
);
(используйте ваш групповой роутер вместо rtrX
, и либо удалите либо закомментируйте существующие источники-примеры). Теперь сохраните файл и выйдите из редактора.
Наконец, если ваша систем - Ubuntu 14.04 (но не 12.04), поменяйте HTMLDIR с /var/www/nfsen/
на /var/www/html/nfsen/
$HTMLDIR = "/var/www/html/nfsen/";
netflow
в системе$ sudo useradd -d /var/nfsen -G www-data -m -s /bin/false netflow
Перейдите опять в каталог с исходниками:
$ cd
$ cd nfsen-1.3.6p1
И установите nfsen
:
$ sudo perl install.pl etc/nfsen.conf
Нажмите ВВОД когда вас спросят о пути к Perl.
Для того чтобы nfsen запускался и останавливался автоматически когда система загружается, добавьте ссылку в каталоге init.d
, указывающую на скрипт запуска nfsen
:
$ sudo ln -s /var/nfsen/bin/nfsen /etc/init.d/nfsen
$ sudo update-rc.d nfsen defaults 20
Запустите NfSen
$ sudo service nfsen start
Проверьте, запущены ли процессы nfcapd
:
$ ps auxwww | grep nfcapd
Страница nfsen будет расположена здесь:
http://pcX.ws.nsrc.org/nfsen/nfsen.php
Если вы работаете в парах, то каждый из вас должен указать в броузере ту машину, которая является коллектором.
Возможно, вы увидете сообщение:
Frontend - Backend version mismatch!
Это не является проблемой, сообщение исчезнет, когда вы перегрузите страницу в броузере.
Готово! Перейдите к третьей лабораторной работе, exercise3-nfsen-top-talkers.
Если несколько роутеров в сети шлют потоки на один и тот же коллектор, вы можете либо настроить их отправлять данные на разные порты коллектора, или вы можете сказать nfsen
IP адреса каждого роутера. Это позволит nfsen
показывать разную информацию от каждого источника.
НЕ ДЕЛАЙТЕ ЭТОГО СЕЙЧАС, потому что у нас есть только один роутер, но если вам это понадобиться, вам нужно поступить следующим образом:
/var/nfsen/etc/nfsen.conf
, и добавьте источники, например:%sources = (
'rtrX' => { 'port' => '9001', 'col' => '#0000ff', 'type' => 'netflow' },
'rtrY' => { 'port' => '9002', 'col' => '#00ff00', 'type' => 'netflow' },
'gw' => { 'port' => '9996', 'col' => '#ff0000', 'type' => 'netflow' },
);
Вам нужно будет запускать следующую команду каждый раз, когда вы будете менять содержимое /var/nfsen/etc/nfsen.conf
:
$ sudo /etc/init.d/nfsen reconfig
Вы увидите:
New sources to configure : gw rtrY
Continue? [y/n] y
Add source 'gw'
Add source 'rtrY'
Start/restart collector on port '9002' for (rtr2)[pid]
Start/restart collector on port '9996' for (gw)[pid]
Restart nfsend:[pid]