Биллинговая система Nodeny

Главная категория => Курилка => Тема начата: 0xbad0c0d3 от 11 Сентября 2013, 21:28:33



Название: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 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 сек


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 12 Сентября 2013, 21:57:36
Если кому интересно, то проблема в скрипте netflow_<flow_port>.pl переписал на баше - Е-bash'е почти в три раза быстрее.
на больших объемах траффика это спасение, если вместо 30сек на perl (если еще отработает) 10 сек. на bash'e


Название: Re: flow-tools уже начинают бесить
Отправлено: Andrey Zentavr от 13 Сентября 2013, 03:15:01
Если кому интересно, то проблема в скрипте netflow_<flow_port>.pl переписал на баше - Е-bash'е почти в три раза быстрее.
на больших объемах траффика это спасение, если вместо 30сек на perl (если еще отработает) 10 сек. на bash'e
дай :)


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 13 Сентября 2013, 10:18:10
тоже интересно затестить


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 13 Сентября 2013, 14:58:08
ну что ж, дамы и господа, удалось добиться 6 секунд на экспорт 3794932 записей


Название: Re: flow-tools уже начинают бесить
Отправлено: Efendy от 13 Сентября 2013, 15:40:30
А покажи  netflow_<flow_port>.pl, неужели я там так неоптимально сделал...


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 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 и одна строка в нем


Название: Re: flow-tools уже начинают бесить
Отправлено: Andrey Zentavr от 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]";


Название: Re: flow-tools уже начинают бесить
Отправлено: Andrey Zentavr от 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"  ё**тся можно :(


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 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)


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 14 Сентября 2013, 01:23:55
а дальше? )))


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 14 Сентября 2013, 01:34:28
Тестируется )) Но, кажется, стреляет что надо ))


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 14 Сентября 2013, 23:07:57
а патч? будет в паблике?


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 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Мб


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 15 Сентября 2013, 21:49:32
блин ))) мнеж для дженты надо... ну да ладно... я разберусь )


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 15 Сентября 2013, 23:16:14
Я на арче собирал, так что там все Окай будет


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 16 Сентября 2013, 23:36:00
победить неудаление файлов удалось добавлением очереди на удаление, которая очищается, каждый раз, при запросе траффика, т.е. если, вдруг, из-за нагрузок остался дамп траффа с прошлого среза, то он удалится в текущем


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 20 Сентября 2013, 02:07:45
0xbad0c0d3, а можешь показать netflow.pl свой? А то я что-то с созданием скрипта башевского запнулся.


Название: Re: flow-tools уже начинают бесить
Отправлено: 0xbad0c0d3 от 20 Сентября 2013, 13:37:54
oops


Название: Re: flow-tools уже начинают бесить
Отправлено: Cell от 20 Сентября 2013, 15:24:37
oops
Граце