--- sysplogd 2009/04/11 11:42:04 11 +++ sysplogd 2009/04/13 18:40:32 16 @@ -8,15 +8,22 @@ use DBI; use Getopt::Long; -my $port = 514; +our $port = 514; +our $MAXLEN = 1524; -my $MAXLEN = 1524; +our $dsn = 'DBI:Pg:dbname=syslog'; +our $user = 'dpavlin'; +our $log = '/tmp/sysplog.log'; + +my $config = $0; +$config =~ s{/[^/]+$}{/conf.pl}; +if ( -e $config ) { + require $config; + warn "# using $config ", -s $config, $/; +} -my $dsn = 'DBI:Pg:dbname=syslog;host=llin.lan'; -my $user = 'dpavlin'; my $debug = 0; my $schema = 0; -my $log = '/tmp/sysplog.log'; GetOptions( 'debug+' => \$debug, @@ -40,7 +47,7 @@ id serial, timestamp timestamp default now(), ip inet not null, - hostname text not null, + hostname text, message text, level int, facility int, @@ -86,7 +93,7 @@ }); my $sth_log_unparsed = $dbh->prepare(qq{ - insert into log (ip,hostname,messsage) values (?,?,?) + insert into log (ip,hostname,message) values (?,?,?) }); @@ -105,7 +112,6 @@ _log "INFO: listen on $port"; -my $rin = ''; my $buf; while(1) { $sock->recv($buf, $MAXLEN); @@ -114,7 +120,7 @@ my $ip = join('.', unpack('C4',$ipaddr)); my @values = ( $ip, $hostname, $buf ); - if ( $buf =~ /<(\d+)>\s*(\S*)\s*:\s*(.*)/ ) { + if ( $buf =~ /<(\d+)>\w\w\w \d+ \d\d:\d\d:\d\d\s*(\S*)\s*:\s*(.*)/ ) { $values[2] = $3; my $level = $1 % 8; my $facility = ( $1-$level ) / 8;