Flow-Tools записки.
Понадобилось собирать netflow статистику, и для этого выбран был пакет flow-tools и вэб морда к нему FlowViewer. Про вэб морду поговорим позже а вот по flow-tools есть некоторые соображения.
В Centos 7 запуском служб заведует systemd и соответственно, конфигурацию сервисов берёт из /etc/sysconfig. А там, по умолчанию, описаны опции только для одного процесса flow-capture. А так как, по условиям задачи, требуется складывать статистику на каждое устройство (маршрутизатор) в отдельный каталог, то и запускать надо столько процессов сколько устройств отслеживается.
Пошевелив извилинами было найдено решение (за правильность, красивость и новизну не ручаюсь) создать несколько файлов для запуска потребного количества сервисов использующих один файл настроек:
/etc/sysconfig/flow-cature
OPTIONS1="-n 287 -N 0 -w /var/spool/flow/router-1 0/192.168.1.1/3000"
OPTIONS2="-n 287 -N 0 -w /var/spool/flow/router-2 0/192.168.2.1/3001"
/usr/lib/systemd/system/flow-capture-1
[Unit]
Description=Flow-capture Capture Traffic Flow Data
After=network.target
[Service]
User=flow-tools
Group=flow-tools
EnvironmentFile=-/etc/sysconfig/flow-capture
ExecStart=/usr/bin/flow-capture -D $OPTIONS1
[Install]
WantedBy=multi-user.target
/usr/lib/systemd/system/flow-capture-2
[Unit]
Description=Flow-capture Capture Traffic Flow Data
After=network.target
[Service]
User=flow-tools
Group=flow-tools
EnvironmentFile=-/etc/sysconfig/flow-capture
ExecStart=/usr/bin/flow-capture -D $OPTIONS2
[Install]
WantedBy=multi-user.target
Далее включаем сервисы
$ systemctl enable flow-capture-1
$ systemctl enable flow-capture-2
Запускаем и пользуемся
$ systemctl start flow-capture-1
$ systemctl start flow-capture-2
Проверить что сервисы запущены можно и через journalctl, но я проверяю так
$ [root@squid-1 multi-user.target.wants]# ps -aux | grep flow
И получим вывод, подобный следующему:
flow-to+ 10383 0.0 0.0 20704 2024 ? Ss 11:12 0:00 /usr/bin/flow-capture -D -n 287 -N 0 -w /var/spool/flow/router-1 0/192.168.1.1/3000
flow-to+ 10474 0.0 0.0 20704 1880 ? Ss 11:16 0:00 /usr/bin/flow-capture -D -n 287 -N 0 -w /var/spool/flow/router-2 0/192.168.2.1/3001
Видно, что запущено два процесса и с нужными настройками.
И если на устройствах отдающих статистику (в данном случае router-1 и -2) все настроено корректно то в каталоге /var/spool/flow/router-{1,2} увидим файлы, типа таких ft-v05.2018-01-25.171806+0300