Additional scripts for Zabbix agent on Linux to discover and monitor several services
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
904 B

#!/usr/bin/perl -w
use strict;
use warnings;
use LWP::Simple;
use Getopt::Long;
use JSON;
my $uri = 'http://127.0.0.1/server-status';
my $what = 'all';
my $help = 0;
GetOptions(
"uri=s" => \$uri,
"what=s" => \$what,
"help" => \$help
);
my %res = ();
my $status = get($uri . '?auto');
unless ($status){
print 'ZBX_NOTSUPPORTED';
exit 1;
}
foreach my $line (split(/\n/, $status)){
next unless ($line =~ m/^(\w+(\s\w+)?):\s([\.\d]+)/);
my ($key, $val) = ($1,$3);
$key =~ s/\s/_/g;
$key = lc $key;
# Remove leading and trailing spaces
$val =~ s/^\s+|\s+$//g;
# Add 0 before the . when needed
$val =~ s/^(\.\d+)$/0$1/;
$res{$key} = $val;
}
if ($help){
print "Valid keys are:\n\n";
print "$_\n" for keys %res;
exit 0;
}
if ($what eq 'all'){
print to_json(\%res);
}
elsif (defined $res{$what}){
print $res{$what};
}
else{
print 'ZBX_NOTSUPPORTED';
}
exit 0;