Sinds een tijdje ben ik (weer) aan het spelen met Splunk. Waarom weet ik nog niet, maar inmiddels is Splunk al twee keer gecrashed. Om dit beter in de gaten te kunnen houden heb ik een simpele Nagios check geschreven.

cat check_nagios.pl

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;

# exit code 0, if the test was okay = green
# exit code 1 means warning = yellow
# exit code 2 means critical = red
# exit code 3 means unknown = orange.

my $input_command = "sudo /opt/splunk/bin/splunk status";

open(PIPE, "${input_command} |");

my $count;

while(my $line = ) {
chomp($line);

if ( ${line} =~ m/splunkd\sis\srunning/ ) {
$count++;
} elsif ( ${line} =~ m/splunkweb\sis\srunning/ ) {
$count++;
} elsif ( ${line} =~ m/splunk\shelpers\sare\srunning/ ) {
$count++;
} else {
print "Unknown output from ${input_command}\n$line\n";
exit(1);
}
}
close(PIPE);

if ( ${count} eq 3 ) {
print "All splunk parts are running\n";
exit(0);
} else {
print "Not all splunk parts are running!!\n";
exit(2);
}

Dit perl script heb ik in NRPE gezet, zodat ik vanaf mijn Nagios server, dit script kan uitvoeren.

command[check_splunk]=/usr/local/sbin/check_splunk.pl

Aangezien de nrpe daemon niet door root wordt uitgevoerd, heb ik via sudo de rechten aan Nagios gegeven om de splunk binarie aan te roepen.