Коллектор nfdump+PIGZ (NetFlow v5, v7, v9)

 

Одним из наиболее популярных способов получать и анализировать трафик NetFlow является связка:

nfcapd – демон-коллектор, который слушает порт, собирает данные и пишет в файлы;

nfdump – дамп, который читает и выводит собранные nfcapd-данные;

NfSen – визуализатор, который является графическим интерфейсом для данных nfdump (не используется в нашем случае).

 

Сборка из исходников nfdump

Необходимо установить зависимости и скачать архив с исходным кодом (предварительно нужно также взять из архива с компонентами для установки модуля-коллектора патч для nfdump). Патч нужно поместить в каталог уровнем выше каталога с исходным кодом.



[root] yum -y install byacc flex zlib-devel rpm-build
[root] wget http://downloads.sourceforge.net/project/nfdump/stable/nfdump-1.6.11/nfdump-1.6.11.tar.gz
[root] tar xzf nfdump-1.6.11.tar.gz 
[root] cd nfdump-1.6.11
[root] patch -p1 < ../nfdump-1.6.13-plx.v0.2.patch; ./configure --prefix=/usr/local/PLATEX/converters --enable-sflow; make all install

 

После установки необходимо проверить, что в /usr/local/PLATEX/convertes/bin лежат файлы:


[root] ll /usr/local/PLATEX/converters/bin/
-rwxr-xr-x. 1 oracle oinstall 247187 Feb 18 00:57 nfanon
-rwxr-xr-x. 1 oracle oinstall 799192 Feb 18 00:57 nfcapd
-rwxr-xr-x. 1 oracle oinstall 681635 Feb 18 00:57 nfdump
-rwxr-xr-x. 1 oracle oinstall 112590 Feb 18 00:57 nfexpire
-rwxr-xr-x. 1 oracle oinstall 871407 Feb 18 00:57 nfreplay
-rwxr-xr-x. 1 oracle oinstall 595889 Feb 18 00:57 sfcapd

 

Установка PIGZ

PIGZ — сокращение от Parallel Implementation of GZip (параллельная реализация GZip). Это полная замена GZip, способная использовать несколько процессоров (нескольких ядер) при сжатии данных, используется при агрегации собранных файлов.


[root] wget https://zlib.net/pigz/pigz-2.6.tar.gz
[root] mkdir -p /root/rpmbuild/{SOURCES,SPECS,RPMS,BUILD}
[root] mv pigz-2.6.tar.gz /root/rpmbuild/SOURCES/
[root] tar -C /root/rpmbuild/SPECS -x -f /root/rpmbuild/SOURCES/pigz-2.6.tar.gz pigz-2.6/pigz.spec
[root] chown root. /root/rpmbuild/SOURCES/pigz-2.6.tar.gz 
[root] mv /root/rpmbuild/SPECS/pigz-2.6/pigz.spec /root/rpmbuild/SPECS/
[root] rmdir /root/rpmbuild/SPECS/pigz-2.6
[root] vim /root/rpmbuild/SPECS/pigz.spec
[root] rpmbuild -bb /root/rpmbuild/SPECS/pigz.spec
[root] yum install /root/rpmbuild/RPMS/x86_64/pigz-2.6-1.x86_64.rpm 

 

Создание необходимых каталогов

Сырые файлы собираются в каталог /usr/local/PLATEX/converters/spool/netflow. Агрегированные данные для загрузки в СУБД перемещаются в /usr/local/PLATEX/converters/data/netflow. Загруженные данные перемещаются в /usr/local/PLATEX/converters/cdr/netflow. Cоздать каталоги можно командами:


[root] install -d -o oracle -g oinstall /usr/local/PLATEX/converters/data/netflow
[root] install -d -o oracle -g oinstall /usr/local/PLATEX/converters/cdr/netflow
[root] install -d -o oracle -g oinstall /usr/local/PLATEX/converters/spool/netflow

 

Примечание

В каталоге ../netflow могут быть созданы еще отдельные директории для каждого источника

 

Настройка автозапуска сборщика

В архиве с компонентами для установки модуля Коллектора необходимо взять скрипт platex_nfcapd_XXXX и поместить в каталог /etc/init.d/

Запустить сборщик можно командой:


[root] /etc/init.d/platex_nfcapd_XXXX start 

Настройка загрузчика

Для установки загрузчика необходимо установить агрегатор NetFlow и скрипт-Renamer.

Файлы в архиве с компонентами для установки модуля Коллектора:

Renamer_netflow.cfg

Renamer.sh

NetflowParser

 

Конфигурационный файл (Renamer_netflow.cfg) необходимо переместить в каталог /usr/local/PLATEX/converters/etc, Renamer.sh и исполняемый файл агрегатора (NetflowParser) в /usr/local/PLATEX/converters/bin.

 

В CRON от пользователя oracle нужно добавить расписание запуска загрузчика трафика Netflow в АСР:

 


# NFDUMP Netflow Parser
5 * * * * /usr/local/PLATEX/converters/bin/Renamer.sh /usr/local/PLATEX/converters/etc/Renamer_nfdump_X.X.X.X.cfg; /usr/local/PLATEX/converters/bin/Renamer.sh /usr/local/PLATEX-converters/etc/Renamer_netflow.cfg