Nfsen — сборщик и анализатор Netflow с открытым исходным кодом, отображает статистику в веб интерфейсе в виде графиков.
На примере установлю Nfsen в Ubuntu Server 16.04.
Перед установкой Nfsen должен быть установлен Nfdump, например как я описывал в статье:
Установка и использование Nfdump
Также установим необходимые компоненты:
sudo add-apt-repository universe
sudo apt-get install apache2 php libapache2-mod-php librrds-perl librrdp-perl librrd-dev libmailtools-perl build-essential autoconf rrdtool
Скачаем Nfsen https://sourceforge.net/projects/nfsen/ и распакуем:
mkdir /srv/nfsen
cd /srv/nfsen
tar xzfv nfsen-1.3.8.tar.gz
Создадим файл конфигурации и откроем его в текстовом редакторе:
cd nfsen-1.3.8/etc
cp nfsen-dist.conf nfsen.conf
nano nfsen.conf
Например в Ubuntu Server 16.04 я изменил следующее (apach2 и nginx по умолчанию работают от пользователя www-data):
$BASEDIR = "/srv/nfsen";
$PREFIX = '/usr/bin';
$USER = "www-data";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
%sources = (
'upstream1' => { 'port' => '555', 'col' => '#0000ff', 'type' => 'netflow' },
);
Запустим скрипт установки nfsen:
cd ..
./install.pl ./etc/nfsen.conf
Запустим nfsen:
/srv/nfsen/bin/nfsen start
Если необходимо запустить nfsen на порту 2055/udp, а его занял по умолчанию nfdump (процессом nfcapd), то остановим его перед запуском nfsen:
systemctl is-enabled nfdump
systemctl stop nfdump
netstat -anpl | grep 2055
kill -9 PID_NUMBER
netstat -anpl | grep nfcapd
В конфигурации я указал upstream1 с портом 555, по этому после запуска nsfsen он автоматически запустит nfcapd на порту 555 и будет писать данные в директорию /srv/nfsen/profiles-data/live/upstream1/.
Для автозапуска при старте операционной системы выполним команды:
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 port 555 -e -n
Убедимся что 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
В файле php.ini обязательно укаем верный часовой пояс, например:
date.timezone = Europe/Kiev
Скажите, при таком сценарии nfdump должен быть запущен или нет?
При запуске nfsen поднимается nfcup
/usr/bin/nfcapd -w -D -p 2055 -u www-data -g www-data -B 200000 -S 1 -P /opt/nfsen/var/run/p2055.pid -z -t 300 -I ASA -l /opt/nfsen/profiles-data/live/source
Однако nfdump не активен.
Active: failed (Result: exit-code) since Thu 2023-07-27 13:00:55 MSK; 31min ago
Process: 7529 ExecStart=/usr/bin/nfcapd -D -l /var/cache/nfdump -P /var/run/nfcapd.pid -p 2055 (code=exited, status=255)
/var/cache/nfdump пуст соответственно.