#!/usr/bin/perl use XML::Twig; use Text::Wrap; %severity = ( 'Emergency' => 'Critical', 'Alert' => 'Major', 'Critical' => 'Critical', 'Error' => 'Minor', 'Warning' => 'Warning', 'Notice' => 'Normal', 'Info' => 'Normal', 'Debug' => 'Normal', ); my $twig = XML::Twig->new( pretty_print => 'indented_c', quote => 'single', escape_gt => 1 ); my $events = XML::Twig::Elt->new( 'events' ); foreach my $fac ( qw/ kernel user mail daemon auth syslog lpr news uucp cron authpriv ftp ntp audit alert clock /, map { "local".$_ } (0..7) ) { foreach my $pri ( qw/ Emergency Alert Critical Error Warning Notice Info Debug / ) { if (($fac eq "clock" || $fac eq "authpriv" || $fac eq "audit" || $fac eq "ftp" || $fac eq "ntp" || $fac eq "alert") && $pri eq "Debug") { next; } my $e = XML::Twig::Elt->new( 'event' ); XML::Twig::Elt->new('uei' => sprintf("uei.opennms.org/syslogd/%s/%s", $fac, $pri)) ->paste( $e ); XML::Twig::Elt->new('event-label' => sprintf("OpenNMS-defined node event: syslogdMessage (%s/%s)", $fac, $pri)) ->paste_last_child( $e ); XML::Twig::Elt->new('descr' => (wrap(' 'x6, ' 'x6, '
The interface %interface% generated a Syslog Message.
Node ID: %nodeid%
Host: %nodelabel%
Interface: %interface%
Message: %parm[syslogmessage]%
Process: %parm[process]%
PID: %parm[processid]%
An OpenNMS Event has been received as a Syslog Message
Message: %parm[syslogmessage]%