X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=contrib%2Fexec-nagios.px;h=4b112f95139aa97fc0b04b3044c528f3218837f8;hp=a9f466338cdabe4c8a692065b03d39c63a7bb9a6;hb=b53110ef99e3d6a5e2f8e79b8f068cfe96a1accb;hpb=2c2affa00540642ed087f0f15178eb8cd653fdac diff --git a/contrib/exec-nagios.px b/contrib/exec-nagios.px index a9f46633..4b112f95 100755 --- a/contrib/exec-nagios.px +++ b/contrib/exec-nagios.px @@ -24,7 +24,8 @@ use Regexp::Common ('number'); our $ConfigFile = '/etc/exec-nagios.conf'; our $TypeMap = {}; our $Scripts = []; -our $Interval = 300; +our $Interval = defined ($ENV{'COLLECTD_INTERVAL'}) ? (0 + $ENV{'COLLECTD_INTERVAL'}) : 300; +our $Hostname = defined ($ENV{'COLLECTD_HOSTNAME'}) ? $ENV{'COLLECTD_HOSTNAME'} : ''; main (); exit (0); @@ -88,6 +89,8 @@ with the C). =back +=back + =cut sub handle_config_addtype @@ -233,6 +236,7 @@ sub handle_performance_data my $type = shift; my $time = shift; my $line = shift; + my $ident = "$host/$plugin-$pinst/$type-$tinst"; my $tinst; my $value; @@ -248,7 +252,9 @@ sub handle_performance_data return; } - print "PUTVAL $host/$plugin-$pinst/$type-$tinst interval=$Interval ${time}:$value\n"; + $ident =~ s/"/\\"/g; + + print qq(PUTVAL "$ident" interval=$Interval ${time}:$value\n); } sub execute_script @@ -258,7 +264,7 @@ sub execute_script my $time = time (); my $script = shift; my @args = (); - my $host = hostname () || 'localhost'; + my $host = $Hostname || hostname () || 'localhost'; my $state = 0; my $serviceoutput; @@ -293,7 +299,7 @@ sub execute_script if ($perfdata) { - push (@serviceperfdata, split (' ', $perfdata)); + push (@serviceperfdata, split (' ', $perfdata)); } $state = 1; @@ -308,8 +314,8 @@ sub execute_script if ($perfdata) { - push (@serviceperfdata, split (' ', $perfdata)); - $state = 2; + push (@serviceperfdata, split (' ', $perfdata)); + $state = 2; } } else # ($state == 2) @@ -347,7 +353,7 @@ sub execute_script for (@serviceperfdata) { handle_performance_data ($host, 'nagios', $pinst, $script->{'type'}, - $time, $_); + $time, $_); } } } # execute_script