Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory:Rebuild
mailgraph
mailgraph-1.14-pl.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mailgraph-1.14-pl.patch of Package mailgraph
Index: mailgraph-1.14/mailgraph.pl =================================================================== --- mailgraph-1.14.orig/mailgraph.pl +++ mailgraph-1.14/mailgraph.pl @@ -287,6 +287,102 @@ sub _next_syslog($) } return undef; } +sub _next_rsyslog($) +{ + my ($self) = @_; + while($self->{_repeat}>0) { + $self->{_repeat}--; + return $self->{_repeat_data}; + } + my $file = $self->{file}; + line: while(defined (my $str = $self->_next_line)) { + # date, time and host + $str =~ /^ + (\d+)-(\d+)-(\d+) # date -- 1, 2, 3 (YYYY-MM-DD) + T + (\d+):(\d+):(\d+) # time -- 4, 5, 6 (HH:MM:SS) + \.\d+(\+\d+:\d+) # time -- 7 nanoseconds (+HH:MM) + \s + ([-\w\.\@:]+) # host -- 8 + \s+ + (?:\[LOG_[A-Z]+\]\s+)? # FreeBSD + (.*) # text -- 9 + $/x or do + { + warn "WARNING: line not in rsyslog format: $str"; + next line; + }; + # subtract 1 from month, cause month is an array from 0-11 + # prevent 'Day '31' out of range 1..30' message + my $mon = $2 -1; + #defined $mon or croak "unknown month $1\n"; + #$self->_year_increment($mon); + # convert to unix time + my $time = $self->str2time($6,$5,$4,$3,$mon,$1,$7); + if(not $self->{allow_future}) { + # accept maximum one day in the present future + if($time - time > 86400) { + warn "WARNING: ignoring future date in rsyslog line: $str"; + next line; + } + } + my ($host, $text) = ($8, $9); + # last message repeated ... times + if($text =~ /^(?:last message repeated|above message repeats) (\d+) time/) { + next line if defined $self->{repeat} and not $self->{repeat}; + next line if not defined $self->{_last_data}{$host}; + $1 > 0 or do { + warn "WARNING: last message repeated 0 or less times??\n"; + next line; + }; + $self->{_repeat}=$1-1; + $self->{_repeat_data}=$self->{_last_data}{$host}; + return $self->{_last_data}{$host}; + } + # marks + next if $text eq '-- MARK --'; + # some systems send over the network their + # hostname prefixed to the text. strip that. + $text =~ s/^$host\s+//; + # discard ':' in HP-UX 'su' entries like this: + # Apr 24 19:09:40 remedy : su : + tty?? root-oracle + $text =~ s/^:\s+//; + $text =~ /^ + ([^:]+?) # program -- 1 + (?:\[(\d+)\])? # PID -- 2 + :\s+ + (?:\[ID\ (\d+)\ ([a-z0-9]+)\.([a-z]+)\]\ )? # Solaris 8 "message id" -- 3, 4, 5 + (.*) # text -- 6 + $/x or do + { + warn "WARNING: line not in rsyslog format: $str"; + next line; + }; + if($self->{arrayref}) { + $self->{_last_data}{$host} = [ + $time, # 0: timestamp + $host, # 1: host + $1, # 2: program + $2, # 3: pid + $6, # 4: text + ]; + } + else { + $self->{_last_data}{$host} = { + timestamp => $time, + host => $host, + program => $1, + pid => $2, + msgid => $3, + facility => $4, + level => $5, + text => $6, + }; + } + return $self->{_last_data}{$host}; + } + return undef; +} sub _next_metalog($) { my ($self) = @_; @@ -347,6 +443,9 @@ sub next($) if($self->{type} eq 'syslog') { return $self->_next_syslog(); } + elsif($self->{type} eq 'rsyslog') { + return $self->_next_rsyslog(); + } elsif($self->{type} eq 'metalog') { return $self->_next_metalog(); } @@ -371,9 +470,9 @@ my $rrdstep = 60; my $xpoints = 540; my $points_per_sample = 3; -my $daemon_logfile = '/var/log/mailgraph.log'; +my $daemon_logfile = '/var/log/mailgraph/mailgraph.log'; my $daemon_pidfile = '/var/run/mailgraph.pid'; -my $daemon_rrd_dir = '/var/log'; +my $daemon_rrd_dir = '/var/lib/mailgraph'; # global variables my $logfile;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor