use IO::Socket;
use Data::Dump qw/dump/;
use CouchDB;
+use File::Slurp;
use server;
}
}
+ $log->{tag} =~ s{^/.+/([^/]+)$}{$1};
+
if ( $log->{tag} =~ m{CRON}i && $buf =~ m{^\((\w+)\) (.+) \((.+)\)$} ) {
$log->{cron} = {
user => $1,
};
}
+ if ( $buf =~ m{(init|error|mount|smart|usb|fs)}i ) {
+ $log->{category} = $1;
+ }
+
$log->{message} = $buf;
}
warn "log ",dump( $log );
- CouchDB::audit( 'syslog', $log );
+ CouchDB::audit( $log->{tag}, $log );
}
sub start {
}
}
+sub install_local {
+ my $rsyslog = '/etc/rsyslog.d';
+ return unless -d $rsyslog;
+ $rsyslog .= '/pxelator.conf';
+ warn "# redirect local syslog to pxelator using $rsyslog";
+ write_file $rsyslog, "*.*\t\@$server::ip\n";
+ system "( /etc/init.d/rsyslog stop ; sleep 2 ; /etc/init.d/rsyslog start ; rm $rsyslog ) &";
+}
+
1;