Установка и использование Nfsen

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

Вливайтесь в общение

1 комментарий

Добавить комментарий

  1. Скажите, при таком сценарии 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 пуст соответственно.