- flow-tools, Sergei Wind, 20:36 , 31-Янв-05 (1)
<?php $workdir="/var/flow/router/"; $dh=dir($workdir); while ($entry=$dh->read()) { if ($entry[0]=='f') { echo("Processing NetFlow File:".$entry."\n"); $strtoexecute='flow-export -f3 -mDOCTETS,SRCADDR,DSTADDR -u "DBNAME:PASSWD:IP.IP.IP.IP:PORT:DBNAME:TABLENAME" <'.$workdir.$entry; exec($strtoexecute); $filetodelete=$workdir.$entry; unlink($filetodelete); }; }; $dh->close; ?>Скрипт выгребает все flow файлы из workdir и запихивает их в базу. Работает 100%. Прописываешь его в крон например раз в час. Удачи.
- flow-tools, vda256, 16:02 , 01-Фев-05 (2)
Спасибо за отзывчивость. Но прошу немного подкорректировать мои действия. С PHP вплотную не занимался.... Установил php-4-4.3.6,запустил скрипт сл. образом... #!/usr/local/bin/php -q <?php $workdir="/usr/flow/php/ft-v05.2005-01-31"; (я для теста поместил одну 15-ти минутку в отдельный каталог) $dh=dir($workdir); while ($entry=$dh->read()) { if ($entry[0]=='f') { echo("Processing NetFlow File:".$entry."\n"); $strtoexecute='flow-export -f3 -mDOCTETS,SRCADDR,DSTADDR -u "root::(пароль):(IP лок машины):3306:flow:test" <'.$workdir.$entry; exec($strtoexecute); $filetodelete=$workdir.$entry; unlink($filetodelete); }; }; $dh->close; ?> В ответ следующее .. Warning: dir(/usr/flow/php/ft-v05.2005-01-31.181501+0000): failed to open dir: Not a directory in /usr/flow/php/flow-exp.php on line 4 Fatal error: Call to a member function on a non-object in /usr/flow/php/flow-exp.php on line 5 Если можно прошу пояснить в чем могут быть еще особенности (). Спасибо.
- flow-tools, A Clockwork Orange, 16:25 , 01-Фев-05 (3)
Проверь, может в этом $workdir="/usr/flow/php/ft-v05.2005-01-31"; - это запись, вероятно должно быть $workdir="/usr/flow/php/";
- flow-tools, Simps, 17:06 , 01-Фев-05 (4)
>Проверь, может в этом >$workdir="/usr/flow/php/ft-v05.2005-01-31"; - это запись, вероятно должно быть >$workdir="/usr/flow/php/"; Странно ... flow-tools version 0.67: built by simps@router on Fri Jun 18 14:34:14 MSD 2004 В этих исходниках был нерабочий flow-export точнее та часть что пихала в mysql мне пришлось исходники править
- flow-tools, Sergei Wind, 17:26 , 01-Фев-05 (6)
>Странно ... >flow-tools version 0.67: built by simps@router on Fri Jun 18 14:34:14 MSD >2004 > >В этих исходниках был нерабочий flow-export точнее та часть что пихала в >mysql мне пришлось исходники править Честно говоря не скажу какой у меня билд, но я наступил на те же грабли, что и автор топика - просто не соблюден порядок полей. Он их может экспортить только в "естественном" порядке, так как они в потоке идут.
- flow-tools, Simps, 17:27 , 01-Фев-05 (7)
>>Странно ... >>flow-tools version 0.67: built by simps@router on Fri Jun 18 14:34:14 MSD >>2004 >> >>В этих исходниках был нерабочий flow-export точнее та часть что пихала в >>mysql мне пришлось исходники править > >Честно говоря не скажу какой у меня билд, но я наступил на >те же грабли, что и автор топика - просто не соблюден >порядок полей. Он их может экспортить только в "естественном" порядке, так >как они в потоке идут. Да да да что то похожее на правду =) Только походу я сходу полез без разбора в дебри =) - flow-tools, vda256, 20:34 , 01-Фев-05 (12)
Я так понимаю, что порядок DOCTETS,SRCADDR,DSTADDR правильный. Кстати, у меня версия 0.66 - какие-нибудь мнения есть?
- flow-tools, Sergei Wind, 17:24 , 01-Фев-05 (5)
>Проверь, может в этом >$workdir="/usr/flow/php/ft-v05.2005-01-31"; - это запись, вероятно должно быть >$workdir="/usr/flow/php/"; Да, это имя директории, не файла. Скрипт выгребает все файлы из этой директории. Извините, долго не отвечаю - разница во времени 8 часов :(
- flow-tools, vda256, 19:36 , 01-Фев-05 (8)
Да, друзья, вы правы, внес изменения.... (убрал лишнее) Теперь при запуске ни на что не ругается, но и вообще ничего не выдает. Ведь должен отображать то что посылает echo... Да кстати еще один вопрос - отдельно пользователя обязательно нужно создавать на БД (у меня сейчас root как был по умолчанию) Я имею не вообще (это и так понятно что нужно), а именно для этой операции.
- flow-tools, Sergei Wind, 19:43 , 01-Фев-05 (9)
я пускал его просто /scriptdir/php4 flowtosql.php, и echo работало. На счет пользователя в БД это скорее вопрос безопасности чем функциональности :) В идеале ты должен иметь юзера с правами на работу с таблицей куда ты вставляешь свои данные и не больше. Желательно что бы был отдельный конечно, рута рискованно оставлять. - flow-tools, Sergei Wind, 20:01 , 01-Фев-05 (10)
А вообще root может делать все что угодно ;)
- flow-tools, vda256, 20:15 , 01-Фев-05 (11)
Дело в том, что файл из директории удаляет..... Значит скрипт отрабатывается до конца... но что-то видно еще нужно подправить....
- flow-tools, Sergei Wind, 20:42 , 01-Фев-05 (13)
>Дело в том, что файл из директории удаляет..... >Значит скрипт отрабатывается до конца... но что-то видно еще нужно подправить.... Это на счет того что echo не работает? да может у него стандартный вывод куда ни будь в другое место чем на активную консоль по дефолту :) честно говоря не знаю :) Да и кроме того это echo тут как зайцу стоп-сигнал :)
- flow-tools, undegro, 12:18 , 28-Дек-07 (15)
>[оверквотинг удален] > exec($strtoexecute); > $filetodelete=$workdir.$entry; > unlink($filetodelete); > }; >}; >$dh->close; >?> > >Скрипт выгребает все flow файлы из workdir и запихивает их в базу. >Работает 100%. Прописываешь его в крон например раз в час. Удачи. Хочу поднять тему!!! пишу для биллинга, написал shell скрипт для экспорта притом он файлы (5мин-ки) разбивает по дням и кладет в таблицы типа nf20071218 (я думал это ускорит) хотелось бы узнать два вопроса: Если лить все в одну таблицу хотяб на три месяца как это повлияет на скорость;? Или все таки обрабатывать допустим дневную таблицу или вообще 5-мин-ку но так чтоб в новой таблице был не сырой трафик netflow в формате 1.1.1.1 2.2.2.2 srcport dstport octets <-in пакет 2.2.2.2 1.1.1.1 srcport dstport octets -> out пакет а в нормальном виде 1.1.1.1 2.2.2.2 srcport dstport !in !out . Не могу такой sql запрос собрать - голову уже сломал, отдельно по входящему и исходящему могу выводить причем уже с посчитаными байтами на одинаковых dstip , а надо чтоб красиво было ip remip in out. Я уже решил другой вариант пробовать, снчала flow-export ом в ascii а оттуда пхп или shellом агрегировать и закидывать в скуль уже нормальные таблицы в нормальном формате!!! Если есть у кого наработки поделитесь чтоб велосипед не изобретать!! Очень буду рад всем ответившим!!
- flow-tools, Destroer Zliden, 06:45 , 23-Ноя-05 (14)
Мужик, я тебе отвечу как человек который сам мучался с этим геммороем, и который мучался этим геммороем вместе со своим коллегой. Работать удалось заставить версию Flow-Tools 0.67 (Ставили на FreeBSD 4.7, 5.3 и 5.4) теоритически поможет и с другими версиями.Итак есть несколько вариантов развития событий, но фишка в чем: ставим Flow-Tools, предположим следуя пути меньшей гемморойности с портов (#/usr/ports/net-mgmt/flow-tools/make install), - бинарники соотвественно свалились в /usr/local/bin, нам это по барабану (но потом пригодится, точнее надо запомнить потому что оттуда запускать мы нифига не будем), заходим в порты ищем этот порт (net-mgmt/flow-tools) и в нем директорию work, и там заходим в директорию исходников, затем даем команду: #./configure --with-mysql=/usr/local/lib/mysql где /usr/local/lib/mysql - путь к библиотэкам MySQL (у вас может быть не там!) соотвественно тут два варианта развития сюжета, которые наступают после команды make 1) команда make отработала без ошибок 2) команда make отработала с ошибкой на файле flow-export (бла-бла-бла flow-export.c: In function 'format3': бла-бла-бла или потерялся файл заголовков mysql.h) В первом случае уважаемый configure по каким-то собственным причинам решил с MySQL воопче не работать, делаем так: открываем *configure ищем строку ac_cv_lib_mysqlclient_my_init=no ставим yes но эт еще не все теперь надо #./configure --with-mysql=/usr/local спросите куда пропала /lib/mysql ? Скрипт сам допишет, поэтому если у вас библиотеки не там то гемор будет полный разбирайтесь с путями в скрипте *configure ну соотвественно пишем #make и снова ГЕМОР! но ГЕМОР втрого варианта который собсвенно мы и ожидали с таким нетерпением и дрожью в руках итак второй вариант файл flow-export.c идет с ошибками... как минимум с двумя. Ошибка номер 1: там стоит строка в начале include <mysql.h> меняем на то место, где у вас находится файл заголовков mysql.h у нас например это </usr/local/include/mysql/mysql.h> Ошибка номер 2: в файле flow-export.c есть переменная init debug, она прописана не там где надо, а надо чтобы она была прописана перед функцией int main(int arc, char **argv) а она там неправильно прописана в ТЕЛЕ функции, т.е. после - это неправильно, она должна быть глобальной, или прописывать ее надо везде где она используется! Вообщем, все поправили, и делаем #make install не забыли где ищет бинарники FreeBSD? правильно на /usr/local/bin/ а make install все закинуло в /usr/local/netflow/bin все сделалось, но в другом месте... теперь пробуем экспорт в mysql... ну там команда #/usr/local/netflow/bin/flow-export -f3 m-чего-то там... я дословно писать не буду... вся фишка в том, ЧТО СНОВА МОЖЕТ НЕ ЗАРАБОТАТЬ!!! скажет потерялась библиотэка libmysqlclient.so.14 ну тут все зависит от того как ставился mysql, можно по-тупому скопировать его библиотеки в /usr/lib это есть неправильно, т.е. файл flow-export он собирал с библиотэками из /usr/local/lib/mysq, а работает из /usr/lib, чес слово это кривой configure, хотите доводите до ума и сохраните для потомков... Destroer & Zliden
|