Биллинговая система Nodeny
25 Ноября 2024, 22:51:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Сбор трафика по netflow+ipcad+freebsd  (Прочитано 6193 раз)
NodenY45
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 365


Просмотр профиля
« : 07 Февраля 2018, 19:49:00 »

Настроив nodeny plus по доке, пришло время, когда сбор трафика начал жрать много ресурсов системы, и инет начал тормозить (divert).
Был куплен модуль в лк netflow и решил сделать сбор через него.
Может кому пригодится, оставлю мануал  Улыбающийся
Поправьте, если что-то забыл.

Часть взял от сюда -> https://app.nodeny-plus.com.ua/docs/work/netflow.html

Код:
cd /usr/ports/net-mgmt/flow-tools && make install clean

/usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl \
     -p /var/run/flow-capture/flow-capture.pid -w /var/db/flows \
     -n1 -N0 0.0.0.0/0.0.0.0/8888

cp /usr/local/nodeny/modules/netflow/netflow_8888.pl /var/db/flows/
chmod 700 /var/db/flows/netflow_8888.pl


Далее часть отсюда -> http://muff.kiev.ua/content/ipcad-netflow-sobiraem-i-slivaem-statistiku-traffika
Так же, сразу удаляем с файрвола упоминание про divert
Код:
mkdir /tmp/ipcad

cat /usr/local/etc/ipcad.conf

capture-ports disable;
buffers = 64k;
interface vlan200;   #ваш внешний интерфейс
netflow export destination 127.0.0.1 8888;
netflow export version 5;
dumpfile = ipcad.dump;
chroot = /tmp/ipcad;
pidfile = ipcad.pid;
memory_limit = 50m;

Единственное с чем пришлось повозится, это с номером интерфейса, который нужно прописать в конфиг нодейнай.
Что я делал:
Код:
#flow-stat -f 17 < /var/db/flows/8888.txt
#  --- ---- ---- Report Information --- --- ---
#
# Fields:    Total
# Symbols:   Disabled
# Sorting:   None
# Name:      Input interface
#
# Args:      flow-stat -f 17
#
#
# interface flows                 octets                packets
#
65535       152567                7245731384            7493605
Вот отсюда я брал номер интерфейса ext_iface.

Код:
Редактируем /usr/local/nodeny/kernel/collectors.cfg
            {
                type        => 'netflow',
                port        => '8888',
                flow_base   => '/var/db/flows/',
                capture_pid => '/var/run/flow-capture/flow-capture.pid',
                ext_iface   => '65535',
            },

Нагрузка на проц упала до 20% в пиках, хотя ранее была постоянно 100%

Поправьте, если что не так. Спасибо.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 08 Февраля 2018, 11:26:10 »

Т.е. в доку нужно добавть способ нахождения интерфейса flow-stat -f 17 < /var/db/flows/8888.txt?

Кстати. Вы должны понимать, что с ростом сети рано или поздно прийдет момент когда модуль ядра подсчета трафика не будет справляться ни по памяти ни по производительности - он написан на перле, а перл - это скриптовой язык, а значит не быстрый. Для этих случаев скорее всего придется применять аккаунтинг раудиуса. Вы будете смеяться, но аккаунтинг в первую очередь и предназначен для того, чтобы передавать трафик в биллинговую систему. Просто я его использую как признак, что клиент пока еще не сделал дисконнект. Как настроить: http://forum.nodeny.com.ua/index.php?topic=2495.0
Естественно вы должны понимать, что если у вас процедура radreply отличается, то нужно взять свою и перенести туда код, связанный с подсчетом трафика. Если у вас не радиус, то вы должны быть готовы, что рано или поздно придется отказаться от подсчета трафика
Записан
Roman
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 14


Просмотр профиля Email
« Ответ #2 : 08 Февраля 2018, 12:23:02 »

Т.е. в доку нужно добавть способ нахождения интерфейса flow-stat -f 17 < /var/db/flows/8888.txt?

Да, именно так я нашел свой интерфейс под номером 6

Цитировать
flow-stat -f 17 < /var/db/flows/8888.txt
#  --- ---- ---- Report Information --- --- ---
#
# Fields:    Total
# Symbols:   Disabled
# Sorting:   None
# Name:      Input interface
#
# Args:      flow-stat -f 17
#
#
# interface flows                 octets                packets
#
152         5417                  8615050               97150               
150         3850                  12827845              131031             
144         6                     912                   12                 
143         408686                1339845394            2211054             
142         15004                 40526170              388730             
6           601619                1914824073            3663866             
5           2151                  1112027               7143               
0           423615                154065214             1236346   

При этом таблицы X-дата заполняются, но биллинг упорно не хочет показывать что в них.
Записан
Roman
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 14


Просмотр профиля Email
« Ответ #3 : 08 Февраля 2018, 12:43:27 »

При этом таблицы X-дата заполняются, но биллинг упорно не хочет показывать что в них.

Единственное, что я глобально переделал, это то, что у меня все таблицы в базе MyISAM, ушел от InnoDB. Это критично?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #4 : 08 Февраля 2018, 13:28:07 »

При этом таблицы X-дата заполняются, но биллинг упорно не хочет показывать что в них.
у меня все таблицы в базе MyISAM, ушел от InnoDB. Это критично?
так я специально сделал важные таблицы в InnoDB, а неважные в MyISAM. В важные таблицы по идее много данных не пишется. InnoDB в какой-то степени гарантирует целостность для данных. В принципе сбои бд редко бывают, так что можно и MyISAM, но я бы рекомендовал InnoDB чтобы быть уверенным, что все ок.
Записан
NodenY45
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 365


Просмотр профиля
« Ответ #5 : 08 Февраля 2018, 17:02:41 »

Т.е. в доку нужно добавть способ нахождения интерфейса flow-stat -f 17 < /var/db/flows/8888.txt?

Кстати. Вы должны понимать, что с ростом сети рано или поздно прийдет момент когда модуль ядра подсчета трафика не будет справляться ни по памяти ни по производительности - он написан на перле, а перл - это скриптовой язык, а значит не быстрый. Для этих случаев скорее всего придется применять аккаунтинг раудиуса. Вы будете смеяться, но аккаунтинг в первую очередь и предназначен для того, чтобы передавать трафик в биллинговую систему. Просто я его использую как признак, что клиент пока еще не сделал дисконнект. Как настроить: http://forum.nodeny.com.ua/index.php?topic=2495.0
Естественно вы должны понимать, что если у вас процедура radreply отличается, то нужно взять свою и перенести туда код, связанный с подсчетом трафика. Если у вас не радиус, то вы должны быть готовы, что рано или поздно придется отказаться от подсчета трафика

Я не мог найти как уйти от DIVERT\TEE, вот нашел таким способом "netflow export"
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!