forked from pool/mailgraph
merge changes OBS-URL: https://build.opensuse.org/request/show/703799 OBS-URL: https://build.opensuse.org/package/show/server:monitoring/mailgraph?expand=0&rev=13
87 lines
3.3 KiB
Diff
87 lines
3.3 KiB
Diff
Index: mailgraph-1.14/mailgraph.pl
|
|
===================================================================
|
|
--- mailgraph-1.14.orig/mailgraph.pl
|
|
+++ mailgraph-1.14/mailgraph.pl
|
|
@@ -473,6 +473,7 @@ my $points_per_sample = 3;
|
|
my $daemon_logfile = '/var/log/mailgraph/mailgraph.log';
|
|
my $daemon_pidfile = '/var/run/mailgraph.pid';
|
|
my $daemon_rrd_dir = '/var/lib/mailgraph';
|
|
+my $statfile='';
|
|
|
|
# global variables
|
|
my $logfile;
|
|
@@ -481,6 +482,7 @@ my $rrd_virus = "mailgraph_virus.rrd";
|
|
my $year;
|
|
my $this_minute;
|
|
my %sum = ( sent => 0, received => 0, bounced => 0, rejected => 0, virus => 0, spam => 0 );
|
|
+my %sum_stat = %sum;
|
|
my $rrd_inited=0;
|
|
|
|
my %opt = ();
|
|
@@ -509,6 +511,7 @@ sub usage
|
|
print " -y, --year starting year of the log file (default: current year)\n";
|
|
print " --host=HOST use only entries for HOST (regexp) in syslog\n";
|
|
print " -d, --daemon start in the background\n";
|
|
+ print " -s, --statfile f statistic file (for nagios plugin check_mailgraph) f\n";
|
|
print " --daemon-pid=FILE write PID to FILE instead of /var/run/mailgraph.pid\n";
|
|
print " --daemon-rrd=DIR write RRDs to DIR instead of /var/log\n";
|
|
print " --daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log\n";
|
|
@@ -527,7 +530,7 @@ sub main
|
|
{
|
|
Getopt::Long::Configure('no_ignore_case');
|
|
GetOptions(\%opt, 'help|h', 'cat|c', 'logfile|l=s', 'logtype|t=s', 'version|V',
|
|
- 'year|y=i', 'host=s', 'verbose|v', 'daemon|d!',
|
|
+ 'year|y=i', 'host=s', 'verbose|v', 'daemon|d!', 'statfile|s=s',
|
|
'daemon_pid|daemon-pid=s', 'daemon_rrd|daemon-rrd=s',
|
|
'daemon_log|daemon-log=s', 'ignore-localhost!', 'ignore-host=s@',
|
|
'only-mail-rrd', 'only-virus-rrd', 'rrd_name|rrd-name=s',
|
|
@@ -543,6 +546,7 @@ sub main
|
|
$daemon_pidfile = $opt{daemon_pid} if defined $opt{daemon_pid};
|
|
$daemon_logfile = $opt{daemon_log} if defined $opt{daemon_log};
|
|
$daemon_rrd_dir = $opt{daemon_rrd} if defined $opt{daemon_rrd};
|
|
+ $statfile = $opt{statfile} if defined $opt{statfile};
|
|
$rrd = $opt{rrd_name}.".rrd" if defined $opt{rrd_name};
|
|
$rrd_virus = $opt{rrd_name}."_virus.rrd" if defined $opt{rrd_name};
|
|
|
|
@@ -957,6 +961,7 @@ sub process_line($)
|
|
sub event($$)
|
|
{
|
|
my ($t, $type) = @_;
|
|
+ $sum_stat{$type}++;
|
|
update($t) and $sum{$type}++;
|
|
}
|
|
|
|
@@ -979,6 +984,9 @@ sub update($)
|
|
RRDs::update $rrd_virus, "$sm:0:0" unless $opt{'only-mail-rrd'};
|
|
}
|
|
}
|
|
+ if ("$statfile" ne ""){
|
|
+ update_stat();
|
|
+ }
|
|
$this_minute = $m;
|
|
$sum{sent}=0;
|
|
$sum{received}=0;
|
|
@@ -989,6 +997,14 @@ sub update($)
|
|
return 1;
|
|
}
|
|
|
|
+sub update_stat()
|
|
+{
|
|
+ open (my $stath, ">", $statfile) or die "unable to open $statfile to write mail statistic $!";
|
|
+ print $stath "sent:$sum_stat{sent} received:$sum_stat{received} bounced:$sum_stat{bounced} rejected:$sum_stat{rejected} virus:$sum_stat{virus} spam:$sum_stat{spam}\n";
|
|
+ close($stath);
|
|
+ return 1;
|
|
+}
|
|
+
|
|
main;
|
|
|
|
__END__
|
|
@@ -1013,6 +1029,7 @@ B<mailgraph> [I<options>...]
|
|
-y, --year starting year of the log file (default: current year)
|
|
--host=HOST use only entries for HOST (regexp) in syslog
|
|
-d, --daemon start in the background
|
|
+ -s, --statfile f statistic file (for check_mailgraph) f\n";
|
|
--daemon-pid=FILE write PID to FILE instead of /var/run/mailgraph.pid
|
|
--daemon-rrd=DIR write RRDs to DIR instead of /var/log
|
|
--daemon-log=FILE write verbose-log to FILE instead of /var/log/mailgraph.log
|