|
Титла: Избор на най-удобно решение Публикувано от: PAIN1 в Jan 08, 2006, 18:15 Така, захванах се да си направя която да следи трафика на няколко ип-та.Що се отнася до iptables нещата са направени.
Общата идея е да изкарам в txt нужната информация, тя да се обработи от съответна програма или скрипт (които да напиша) и да се вкара във mysql база данни или в отделен файл който друг скрипт да вкара в база данни. Имам опит със C/C++ , с нея мога да обработя файла, но не знам как да вържа C-то със mysql ... Дали Perl няма да е по-удобен? но ще трябва да чета за него ..... Имам спомен че серия от правила можеха да се импортват в mysql без никакъв скрипт, в смисъл само с едно mysql << .... но не помня точно синтаксиса. Само идеи искам и може би насока, искам сам да си напиша всичко. Титла: Избор на най-удобно решение Публикувано от: в Jan 08, 2006, 21:11 Ако искаш със C++ - http://tangentsoft.net/mysql++/
Ако искаш с C - http://dev.mysql.com/doc/refman/5.0/en/c.html Happy hacking Титла: Избор на най-удобно решение Публикувано от: VladSun в Jan 09, 2006, 01:05 Веднага ще ти кажа, че когато се отнася до обработка на текстова информация Perl е сред челните фаворити за това
В твоя случай обаче, надали изобщо ще ти трябва толкова мощно нещо като Perl Аз също ползвам MRTG, но на отдалечена машина от тази, от която дърпам данните на iptables. Данните ги прехвърлям чрез txt файл Ето ти малко сорс На локалната машина:
на отдалечената
Това го изпълнявам на всеки 5 мин От този сорс можеш да видиш както как дърпам данните от iptables в по-подходящ формат, така и как ги "бутам" в mysql таблица Титла: Избор на най-удобно решение Публикувано от: PAIN1 в Jan 09, 2006, 01:32 VladSun пък да ти кажа как почти нищо не разбрах
баш скриптинга дори не съм го поглеждал. Значи то ще е...... а какъв формат трябва да има файла за да се импортнет информяцията в sql-a ? Другото ще го оправя все някак ? Титла: Избор на най-удобно решение Публикувано от: VladSun в Jan 09, 2006, 04:19 1.
Начин да запишеш инфото от броячите на iptables във файл (текстов): iptables -t mangle -L -nxvZ BG_CHAIN | grep MARK | grep -v " 0 MARK" | awk {'print $2" "$8" "$9" "'} > /var/mrtg/BGtraf.dat , или по друг начин - вземи изхода на iptables за CHAIN BG_CHAIN, вземи само тези, които са маркирани, махни тези които имат трафик 0, изкарай само 2, 8 и 9 поле (брояч байтове, src IP, dst IP) Получаваш текстов файл с разделител шпация. 2. Стандартни SQL заявки
mysql -е "sql" :изпълнява SQL заявката sql; load data local infile '/traf.tmp' into table traffic.traffic_bg; : SQL заявка, която казва "зареди данните от външно разположен файл /traf.tmp в таблицата traffic.traffic_bg Таблицата ти трябва да има полета такива, че да съответстват на полетата във текстовия файл - в случая, който съ показал в предния пост - BIGINT (байтове), CHAR(15) (src_IP), CHAR(15) (dst_ip), DATETIME (кога е засечено) Титла: Избор на най-удобно решение Публикувано от: PAIN1 в Jan 09, 2006, 09:17 Мерси много, определено решението с bash е в пъти по-елементарно, ше взема да го понауча.
Титла: Избор на най-удобно решение Публикувано от: в Jan 09, 2006, 23:17 Само едно уточнение: safe_mysqld --user=mysql_усер --local-infile=1 & local-infile опцията трябва да се разреши при стартирането на mysql за да можеш да "импортваш" външни файлове Титла: Избор на най-удобно решение Публикувано от: PAIN1 в Jan 10, 2006, 00:14 М да казваше ми че версията ми не го подържала и аз си написах програма на C , беше достатъчно кратка и решава проблема напълно като създава sql файл.
Само друго да те питам. Така като на всеки 5мин трупаш запис, таблицата в един момент става отвратително голяма, това до колко твари, бави и всякакви следствия ? Титла: Избор на най-удобно решение Публикувано от: в Jan 10, 2006, 01:57 А и аз го използвам за други цели За теб по-подходящо би било използването на RRD база данни - виж http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ за подробности. Иначе винаги можеш да си направиш нещо подобно в Mysql таблици - за деня през 5мин, за седмицата през 1/2 час и т.н. Това вече е игра на SQL заявки ... Аз само ти показах начин за импортване на данните от iptables към mysql От там нататък си ти Титла: Избор на най-удобно решение Публикувано от: PAIN1 в Jan 10, 2006, 11:00 Да мерси, най-вероятно статистиките няма да са подробни и старит записи ще се трият
|