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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: flow-tools уже начинают бесить  (Прочитано 13127 раз)
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« : 11 Сентября 2013, 21:28:33 »

Люди добрые и не очень, но знающие, кто может подробно описать алгоритм работы flow-tools т.к. уже запарился отлавливать баг.
Баг заключается в следующем -  траффик на порт флова принимается, flow-capture запущен и даже более того - трафф пишется в БД НО! через 2-3 среза на 3-4, соответственно, ядро говорит: "Не получен траффик от (8888:16)". при этом файл за этот срез в $Nodeny_dir/sql есть, он не пустой, с нормальными правами. Фал так и остается там лежать, пока все место, напару с своими сородичами не забьет. Начал разбираться в чем причина и у меня тупо ступор... каким магическим чудом netflow_8888.pl запускается именно тогда, когда это надо сделать? в ядре на Request_traf создается этот самый netflow_8888.pl, на Check_traf уже проверяется наличие файла с траффом, который и должен быть создан тем самым netflow_8888.pl. А этот netflow_8888.pl запускается демоном flow-capture, судя по ману, раз в день, т.к. запущен он следующим образом:
Код:
/usr/local/bin/flow-capture -n1 -N0 -R /usr/local/nodeny50.33/netflow_8888.pl -w /var/db/flows -p /var/run/flow-capture/flow-capture.pid ....
флаг -n из мана нам говорит, что дефолтное его значение 95, что равно 15 минутам, в сутках 1440 минут, значит, если -n1 значит 1440/1=1440 и значит ротация происходит раз в сутки, а раз флаг -R, опять же из man flow-capture, говорит нам, что это скрипт или бинарник, который запускается каждую ротацию...
Код:
-n rotations
          Configure  the number of times flow-capture will create a new
          file per day.  The default is 95, or every 15 minutes.
-R rotate_program
          Execute rotate_program with the first argument  as  the  flow
          file name after rotating it.
Тогда откуда же берется запуск этого, чертового, netflow_8888.pl на те срезы, где ядро нормально видит файлы, вы**ные этим netflow_8888.pl?

Код:
Количество обработанных строк
от коллекторов трафика 3693157
Время обсчета направлений 113.0 сек
Время добавления трафика
к текущим значениям в базе данных 10.9 сек
Время получения данных трафика
для передачи клиентам 0.5 сек
Записей в кеше адресов обсчета направлений 4000001
netflow:x.x.x.x 8888:16
183 348 410 байт
Время отключения абонентов превысивших лимиты 0.0 сек
Записан детельный трафик на 100.0 %
Время записи детализации трафика 11.6 сек
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #1 : 12 Сентября 2013, 21:57:36 »

Если кому интересно, то проблема в скрипте netflow_<flow_port>.pl переписал на баше - Е-bash'е почти в три раза быстрее.
на больших объемах траффика это спасение, если вместо 30сек на perl (если еще отработает) 10 сек. на bash'e
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #2 : 13 Сентября 2013, 03:15:01 »

Если кому интересно, то проблема в скрипте netflow_<flow_port>.pl переписал на баше - Е-bash'е почти в три раза быстрее.
на больших объемах траффика это спасение, если вместо 30сек на perl (если еще отработает) 10 сек. на bash'e
дай Улыбающийся
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #3 : 13 Сентября 2013, 10:18:10 »

тоже интересно затестить
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #4 : 13 Сентября 2013, 14:58:08 »

ну что ж, дамы и господа, удалось добиться 6 секунд на экспорт 3794932 записей
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4789



Просмотр профиля
« Ответ #5 : 13 Сентября 2013, 15:40:30 »

А покажи  netflow_<flow_port>.pl, неужели я там так неоптимально сделал...
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #6 : 13 Сентября 2013, 16:03:20 »

нууу. у меня не netflow_<flow_port>.pl , а .sh
и там всего пара строчек:
Код:
#!/usr/local/bin/bash
FLOW_FILE="/var/db/flows/$1"
FILE_NAME="/usr/local/nodeny50.33/sql/1-1379080617"
/usr/local/bin/flow-export -f6 -o16 < $FLOW_FILE >${FILE_NAME}_tmp
mv ${FILE_NAME}_tmp ${FILE_NAME}
rm $FLOW_FILE;

это сегодня, который дает самый быстрый результат, а то, что вчера, то там был обычный flow-export у которого небыло f6, там было перенаправление в пайп awk и одна строка в нем
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #7 : 13 Сентября 2013, 16:47:13 »

А покажи  netflow_<flow_port>.pl, неужели я там так неоптимально сделал...


Вот так.
Код:
#!/usr/bin/perl
 system("/usr/local/bin/flow-print -f6 < /var/db/flows/8003/$ARGV[0] >/usr/local/nodeny/sql/1-1379083575 2>/dev/null");
 unlink "/var/db/flows/8003/$ARGV[0]";
Записан
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #8 : 13 Сентября 2013, 16:55:15 »

нууу. у меня не netflow_<flow_port>.pl , а .sh
и там всего пара строчек:
Код:
#!/usr/local/bin/bash
FLOW_FILE="/var/db/flows/$1"
FILE_NAME="/usr/local/nodeny50.33/sql/1-1379080617"
/usr/local/bin/flow-export -f6 -o16 < $FLOW_FILE >${FILE_NAME}_tmp
mv ${FILE_NAME}_tmp ${FILE_NAME}
rm $FLOW_FILE;

это сегодня, который дает самый быстрый результат, а то, что вчера, то там был обычный flow-export у которого небыло f6, там было перенаправление в пайп awk и одна строка в нем


Что-то у меня нет опции -o....
А какая версия у вас? какая фря?

Код:
FLOW-EXPORT(1)                                                  FLOW-EXPORT(1)



NAME
       flow-export - Export flow-tools files into other NetFlow packages.

SYNOPSIS
       flow-export [ -h ]  [ -d debug_level ]  [ -f format ]  [ -m mask_fields
       ]  [ -u user:password:host:port:name:table ]

DESCRIPTION
       The flow-export utility will convert flow-tools  flow  files  to  ASCII
       CSV, cflowd, pcap, wire, mySQL, and PGSQL format.


Я пытался перелопатить sub Count_Traf в nodeny.pl что делает экспорт из файла в БД, но без "use strict"  ё**тся можно Грустный
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #9 : 13 Сентября 2013, 17:07:32 »

дык я сомневаюсь, что и формат 6 у Вас есть, в flow-export, в flow-print он есть, но делает он совсем не то [ниже цитата из man flow-print], оно подходит только в том случае, если у вас нет out_int, а если есть... )) 0.68.5.1, версия из портов, только пропатчена под экспорт в формат нодени

Код:
-f format
       Select format. The default is appropriate for the export type of
       the flow data. Available formats are:

           0 1 line, interfaces, hex ports
           1 2 line (includes timing and flags)
           2 2 line candidate TCP syn attack flows
           3 1 line, no interfaces, decimal ports
           4 1 line with AS number
           5 1 line, 132 column
           6 show ip accounting emulation
           7 1 line, 132 column +router_id
           8 1 line, 132 column +encapsulation
           9 1 line with tag values
          10 AS aggregation
          11 Protocol Port aggregation
          12 Source Prefix aggregation
          13 Destination Prefix aggregation
          14 Prefix aggregation
          15 Destination aggregation (Catalyst)
          16 Source Destination aggregation (Catalyst)
          17 Full Flow (Catalyst)
          18 ToS AS Aggregation
          19 ToS Proto Port aggregation
          20 ToS Source Prefix aggregation
          21 ToS Destination Prefix aggregation
          22 ToS Prefix Aggregation
          23 ToS Prefix Port aggregation
          24 Full (Catalyst)
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #10 : 14 Сентября 2013, 01:23:55 »

а дальше? )))
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #11 : 14 Сентября 2013, 01:34:28 »

Тестируется )) Но, кажется, стреляет что надо ))
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #12 : 14 Сентября 2013, 23:07:57 »

а патч? будет в паблике?
Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #13 : 15 Сентября 2013, 19:09:28 »

Патчи нужно положить в /usr/ports/net-mgmt/flow-tools-ng/files и пересобрать пакет make -C /usr/ports/net-mgmt/flow-tools-ng make reinstall clean
Кстати наблюдается забавная ситуация, прекратилось забивание винта траффиком, но остаются файлы, срез которых припадает на бекапирование базы. странно это потому, что ядро сам файл видит и прочитало его, трафф посчитало, но не удалило... оО Размер среза не такой уж и большой - 54Мб
Записан
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #14 : 15 Сентября 2013, 21:49:32 »

блин ))) мнеж для дженты надо... ну да ладно... я разберусь )
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

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