NfSen
https://nfsen.sourceforge.net/
Nfsen — сборщик и анализатор Netflow с открытым исходным кодом, отображает статистику в веб интерфейсе в виде графиков.
Перед установкой Nfsen должен быть установлен Nfdump
Для установки Nfdump в Ubuntu/Debian
apt-get install nfdump
В CentOS:
sudo yum install nfdump
Проверка сбора:
nfcapd -E -p 9996 -l /tmp/nfcap-test
Проверка файлов
nfdump -r /tmp/nfcap-test/nfdump/nfcapd.202506251935
Для продолжение установки Nfsen установим необходимые компоненты:
add-apt-repository universe apt-get install apache2 php libapache2-mod-php librrds-perl librrdp-perl librrd-dev libmailtools-perl build-essential autoconf rrdtool libio-socket-inet6-perl
Скачаем Nfsen и распакуем:
mkdir /srv/nfsen cd /srv/nfsen wget https://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.8/nfsen-1.3.8.tar.gz tar xzfv nfsen-1.3.8.tar.gz
Создадим файл конфигурации и откроем его в текстовом редакторе:
cd nfsen-1.3.8/etc cp nfsen-dist.conf nfsen.conf nano nfsen.conf
Если Ubuntu/Debian то в файле /srv/nfsen/etc/nfsen.conf
- Изменить USER, WWWUSER и WWWGROUP на www-data
- В хеше %sources указать IP оборудования, которое должно совпадать с IP, указанного в Настройка > Сервер доступа
$BASEDIR = "/srv/nfsen"; $PREFIX = '/usr/bin'; $USER = "www-data"; $WWWUSER = "www-data"; $WWWGROUP = "www-data"; %sources = ( 'mikrotik' => { 'port' => '9996', 'col' => '#00ff00', 'IP' =>'192.168.0.0' 'type' => 'netflow' }, 'upstream1' => { 'port' => '555', 'col' => '#0000ff', 'IP' =>'195.158.00.000' 'type' => 'netflow' }, 'upstream2' => { 'port' => '555', 'col' => '#00ff00', 'IP' =>'195.158.00.111' 'type' => 'netflow' }, );
Запустим скрипт установки Nfsen:
cd .. ./install.pl ./etc/nfsen.conf
Запустим nfsen:
/srv/nfsen/bin/nfsen start
В конфигурации мы указал mikrotik с портом 9996, по этому после запуска nsfsen он автоматически запустит nfcapd на порту 9996 и будет писать данные в директорию /srv/nfsen/profiles-data/live/mikrotik/.....
Для автозапуска при старте операционной системы выполним команды:
ln -s /srv/nfsen/bin/nfsen /etc/init.d/nfsen update-rc.d nfsen defaults 20
Осталось настроить конфигурацию веб сервера либо просто создать символическую ссылку в www директорию (после этого можно будет открыть nfsen в браузере, например http://ixnfo.com/nfsen/nfsen.php):
ln -s /srv/nfsen/www/ /var/www/html/nfsen ln -s /var/www/nfsen/ /var/www/html/nfsen
После редактирования конфигурации, например когда нужно добавить или изменить источники, выполним:
cd /srv/nfsen/bin ./nfsen reconfig
Через некоторое время должны появится данные на графиках, также через tcpdump можно посмотреть приходят ли данные от сенсора:
tcpdump -i eno4 -n port 9996
Убедимся что nfsen запускается при запуске операционной системы:
systemctl is-enabled nfsen systemctl is-enabled nfdump systemctl enable nfsen systemctl status nfsen
Если в операционной системе установлен flow-tools, то можно отключить его так:
systemctl is-enabled flow-capture systemctl disable flow-capture systemctl status flow-capture systemctl stop flow-capture
Проверка/редактирование настроек сервиса
vim /etc/systemd/system/nfsen.service
Сделать симлинк на файл traffic2sql
ln -s /usr/abills/Abills/modules/Internet/traffic2sql /usr/abills/libexec/traffic2sql
Для сбора данных c Nfsen добавление данных в базу данных нужно добавить вызов файла traffic2sql на крон каждый час в /etc/crontab . В поле [NAS_IDS] указать NAS_ID. Для проверки вывода данных с потока поставить DEBUG=8.
По умолчанию путь для программы Nfdump указана по адресу '/usr/bin/nfdump'. Если программа установлена по другому пути - можно задать через аргумент FLOW_NFDUMP=/usr/local/bin/nfdump
* */1 * * * root /usr/abills/libexec/traffic2sql [NAS_IDS] NFSEN=1 flowdir=/srv/nfsen/profiles-data/live/upstream1/
Пример:
* */1 * * * root /usr/abills/libexec/traffic2sql 5 NFSEN=1 flowdir=/srv/nfsen/profiles-data/live/upstream1/
Проблемы при установке
RRD version '1.5001' not yet supported | Открыть файл vim /srv/nfsen/nfsen-1.3.8/libexec/NfSenRRD.pm и изменить строку (line 76) $rrd_version >= 1.2 && $rrd_version < 1.6 |
не запускается nfcapd | nfcapd -D -p 9996 -u www-data -g www-data -B 200000 -S 1 -P /srv/nfsen/var/run/p9996.pid -z -I mikrotik2 -w /srv/nfsen/profiles-data/live/mikrotik2 |