The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
flow-tools, !*! vda256, 31-Янв-05, 18:08  [смотреть все]
Друзья, кто пользовался на практике flow-export для перевода данных flows в mysql, помогите определиться с синтаксисом, желательно конечно примеры на практике.
согласно man: flow-export -f3 -mSRCADDR,DSTADDR,DOCTETS -u "user:password:host:port:name:table" < flows  
Я решил попробовать: flow-export -f3 -mSRCADDR,DSTADDR,DOCTETS -u "user:password:host:port:name:table" < flows
где user - root
    password - он самый
    host - написал ip
    port - 3306
    name - flow (имя базы)
    table - test (созданная мной таблица с соответствующими полями)
    flows - путь к файлу
Ругается следующим образом:
flow-tools: format not supported
flow-tools: exported 0 records
Понятно что не нравится фомат, но что не так не понятно. Вроде бы простая команда, а не хотит....  
Ps: И flow-tools и mysql на одной машине (FreeBSD)

  • 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





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру