parent
7b6c8bd1d5
commit
98c9297292
2 changed files with 59 additions and 0 deletions
@ -0,0 +1,13 @@ |
||||
# Description: SA Learn statistics |
||||
# Type: Agent or Agent (active) |
||||
# Key: mail.bayes |
||||
# Type of information: Text |
||||
# Units: N/A |
||||
# Custom multiplier: Do not use |
||||
# Store Value: As is |
||||
# This is a master item which must then be splited with preprocessing (Zabbix >= 3.4.0) |
||||
|
||||
UserParameter=mail.bayes.all,/usr/bin/sudo /var/lib/zabbix/bin/check_sa_learn_sudo |
||||
|
||||
# Or you can use individual items. Valid arg are ham, spam and token |
||||
UserParameter=mail.bayes[*],/usr/bin/sudo /var/lib/zabbix/bin/check_sa_learn_sudo --what=$1 |
@ -0,0 +1,46 @@ |
||||
#!/usr/bin/perl |
||||
|
||||
use strict; |
||||
use warnings; |
||||
use JSON; |
||||
use Getopt::Long; |
||||
use File::Spec; |
||||
open STDERR, '>', File::Spec->devnull() or die "could not open STDERR: $!\n"; |
||||
|
||||
my $what = 'all'; |
||||
GetOptions( |
||||
"what=s" => \$what |
||||
); |
||||
|
||||
my @salearn = qx(sa-learn --dump magic); |
||||
my $data = { |
||||
spam => 0, |
||||
ham => 0, |
||||
token => 0 |
||||
}; |
||||
|
||||
foreach my $line (@salearn){ |
||||
if ($line =~ m/(\d+)\s*0\s*non-token\sdata:\snspam$/){ |
||||
$data->{spam} = $1; |
||||
} |
||||
elsif ($line =~ m/(\d+)\s*0\s*non-token\sdata:\snham$/){ |
||||
$data->{ham} = $1; |
||||
} |
||||
elsif ($line =~ m/(\d+)\s*0\s*non-token\sdata:\sntokens$/){ |
||||
$data->{token} = $1; |
||||
} |
||||
} |
||||
|
||||
if ($what eq 'spam'){ |
||||
print $data->{spam} . "\n"; |
||||
} |
||||
elsif ($what eq 'ham'){ |
||||
print $data->{ham} . "\n"; |
||||
} |
||||
elsif ($what eq 'token'){ |
||||
print $data->{token} . "\n"; |
||||
} |
||||
else{ |
||||
print to_json($data); |
||||
} |
||||
exit(0); |
Loading…
Reference in new issue