The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ng_ipacct + perl + mysql"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"ng_ipacct + perl + mysql" 
Сообщение от darkmatter Искать по авторуВ закладки(ok) on 10-Июн-05, 11:55  (MSK)
делаю учет трафика по статьям
http://citrin.ru/my/ng_ipacct.html http://www.bsdportal.ru/kb.php?mode=article&k=53

есть таблица в mysql

CREATE TABLE inet (

id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
src_ip CHAR(15) NOT NULL,
src_port SMALLINT NOT NULL,
dst_ip CHAR(16) NOT NULL,
dst_port SMALLINT NOT NULL,
proto CHAR(4) NOT NULL,
size INT NOT NULL,
packets INT NOT NULL,
fdd TINYINT NOT NULL,
fdm TINYINT NOT NULL,
fdy SMALLINT NOT NULL,
ftime TIME NOT NULL,
PRIMARY KEY (id, src_ip, dst_ip)
);


и есть данный скрипт на perl:

#!/usr/bin/perl

use IO::File;
use Time::localtime;
use DBI;

$du = "root";
$dp = "pass";
$dn = "ipacctd";
$dh = "localhost";
$file = "/var/log/ipacct/2005-06-08/2005-06-08-16-xl1";


$dbh = DBI->connect("dbi:mysql:$dn:$dh",$du,$dp);
if($DBI::err) {print($DBI::errstr);exit;}

$add = $dbh->prepare("INSERT INTO inet VALUES (?,?,?,?,?,?,?,?,?,?,?,?);");

open(IN, "cat $file |");

while()
{
chomp();
( $src_ip, $src_port, $dst_ip, $dst_port, $proto, $packets, $size, $localtime ) = split/s+/;

$date2 = localtime($localtime);
$day = $date2->mday;
$month = $date2->mon+1;
$year = $date2->year+1900;
$hour = $date2->hour;
$min = $date2->min;
$sec = $date2->sec;
$time = "$hour:$min:$sec";

$add->execute( NULL, $src_ip, $src_port, $dst_ip, $dst_port, $proto, $packets, $size, $day, $month, $year, $time );

}
$dbh->disconnect();

exit;


так вот, логи пишутся замечательно. А этот скрипт не хочет в mysql засовывать данные ругается:
DBD::mysql::st execute failed: Column 'src_ip' cannot be null at ipacct.pl line 35.


подскажите плиз в чем проблема, или покажите рабочий пример такого скрипта.


уже второй день бьюсь :(((


  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "ng_ipacct + perl + mysql" 
Сообщение от Skif Искать по авторуВ закладки(ok) on 10-Июн-05, 12:19  (MSK)
Я  для "системного алминистратора" недавно писал статью по биллингу в связке ng_ipacct + mysql + perl
Если интересно - сходи туда (http://samag.ru). Может в течении одного - двух дней выложу у себя на сервере и дам линк (на выходных) если это актуально. Там полный разбор скриптов и сами скрипты.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ng_ipacct + perl + mysql" 
Сообщение от Skif Искать по авторуВ закладки(ok) on 10-Июн-05, 12:32  (MSK)
>Я  для "системного алминистратора" недавно писал статью по биллингу в связке
>ng_ipacct + mysql + perl
>Если интересно - сходи туда (http://samag.ru). Может в течении одного - двух
>дней выложу у себя на сервере и дам линк (на выходных)
>если это актуально. Там полный разбор скриптов и сами скрипты.

упс, еще полмесяца потерпеть надоть :)
вот тут готовые скрипты. :)
http://www.samag.ru/source/f0205-1.zip

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "ng_ipacct + perl + mysql" 
Сообщение от Skif Искать по авторуВ закладки(ok) on 10-Июн-05, 12:37  (MSK)
>так вот, логи пишутся замечательно. А этот скрипт не хочет в mysql
>засовывать данные ругается:
>DBD::mysql::st execute failed: Column 'src_ip' cannot be null at ipacct.pl line 35.
>

Проблема в том, что у тебя src_ip имеет значение 0 или undef, а в таблице для этого columns стоит NOT NULL.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "ng_ipacct + perl + mysql" 
Сообщение от darkmatter Искать по авторуВ закладки(ok) on 10-Июн-05, 13:42  (MSK)
>>так вот, логи пишутся замечательно. А этот скрипт не хочет в mysql
>>засовывать данные ругается:
>>DBD::mysql::st execute failed: Column 'src_ip' cannot be null at ipacct.pl line 35.
>>
>
>Проблема в том, что у тебя src_ip имеет значение 0 или undef,
>а в таблице для этого columns стоит NOT NULL.


пустых значений src_ip в логах нету.
А эти скрипты я нашел на samag, разгребаю сейчас :) хотелось бы описания...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "ng_ipacct + perl + mysql" 
Сообщение от Skif Искать по авторуВ закладки(ok) on 10-Июн-05, 13:51  (MSK)
Я бы с радостью. :) Но договор - 2 месяцапосле публикации не публиковать статью где либо.

В двух словах

создай папку
/usr/local/script/ng_stat/

В ней подпапки
root@merlin /home/skif :lf /usr/local/script/ng_stat/
bin/ etc/ log/

В log ложаться логи от интефейсов, etc - конфиг , bin - исполняемые файлы(скрипты)

вот мой конфиг (с комментариеями и т.д. в се как в оригинале)
skif@server /usr/local/script/ng_stat/:less etc/ng_stat.conf
# Имя сервера, где находиться база данных статистики
server_db = freebsd
# Имя базы данных, где будет сохраняться статистика
db_name = ng_stat
# Имя пользователи для доступа к базе
db_user = nguser
# Пароль для доступа к базе
db_pass = ng_pass
# Таблица для авторизации пользователей. Для web/win32-доступа
table_auth = ipacct_auth
# Таблица со списком протоколов, эквивалент /etc/protocols
table_protocols = prortocols
# Имя хоста с которого снимается статистика
listen_host = freebsd3
# Имена интерфейсов, которые прослушиваются на компьютере.
# Указывать через запятую
listen_interfaces = fxp0
# Загружаемые модули NETGRAPH, необходимые для интерфейсов,
# которые будет обслуживать программа
# По умолчанию загружаются следующие модули: netgraph,
# ng_ether,ng_socket,ng_tee,ng_ipacct
ng_modules = netgraph,ng_ether,ng_socket,ng_tee,ng_ipacct
# Какой трешхолд необходимо установить для работы системы.
# Отнеситесь внимательно к выбору этого параметра. Он
# означает сколько записей будет храниться в буфере
# По умолчанию значение равно 5000, но если у вас меньше
# 128 Мегабайт памяти  - уменьште его.
threshold = 7000

скрипты ложишь в  bin
ng_stat_start.pl - старт ng_ipacct
ng_stat_stop.pl - останов ng_ipacct
ng_stat_in.pl - внесение логов в таблицу. Если таблица отсутствует - создается новая таблица.

Более подробно - в журнале :)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "ng_ipacct + perl + mysql" 
Сообщение от darkmatter Искать по авторуВ закладки(ok) on 10-Июн-05, 14:02  (MSK)
>Я бы с радостью. :) Но договор - 2 месяцапосле публикации не
>публиковать статью где либо.
>
большое спасибо! буду разбираться :) а журнал не знаю где найти, статья ведь в двух частях, а февральский номер не знаю где купить, везде только новые :(
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "ng_ipacct + perl + mysql" 
Сообщение от kirbaco Искать по авторуВ закладки(ok) on 20-Июл-05, 17:51  (MSK)
Сразу скажу - спасибо за статью! Сейчас пробую по ней настроить статистику.
Я немного подредактировал стартовый скрипрт:
----------------------------------------------------
> diff ng_stat_start.pl orig/ng_stat_start.pl
23c23
< open (CONFIG, "/usr/local/ng_stat/etc/ng_stat.conf");
---
> open (CONFIG, "/usr/local/script/ng_stat/etc/ng_stat.conf");
190c190
< sub listening{
---
> sublistening{
201c201
<               if ($pid == 0){
---
>               ($pid == 0){
251c251
<                 if ($pid == 0){
---
>                 ($pid == 0){
276c276
<                 if ($pid == 0){
---
>                 ($pid == 0){
301c301
<                 if ($pid == 0){
---
>                 ($pid == 0){
351c351
<                 if ($pid == 0){
---
>                 ($pid == 0){
----------------------------------------------------
и при старте он, вроде, выдает правильную диагностику, но смущает одна (первая) строка:
Use of uninitialized value in concatenation (.) or string at ./ng_stat_start.pl line 123.
Не подскажете ли что имеется ввиду?
Спасибо.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "ng_ipacct + perl + mysql" 
Сообщение от kirbaco emailИскать по авторуВ закладки(ok) on 27-Июл-05, 13:29  (MSK)
Вроде все работает. А как автор смотрит не развитие темы? В смысле показать свой веб интерфейс.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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