Hallo Leute,
ich versuche vorgefertigte perl-scripte in mein checkmk einzubauen.
Installiert ist de RAW 1.6.0p17, ich habe schon einige Hosts hinzugefügt und erwarte eigentlich, dass die Checks unter “Manuelle Checks” auftauchen.
Die Perl-Scripte habe ich auf dem Server unter /omd/sites/meinsitename/local/lib/nagios/plugins abgelegt.
Müssen die Perl-Scripte noch angepasst werden zB. mit einem <<>> oder was muss ich tun, damit sie in CheckMK auftauchen? Ist es richtig, dass ich sie eigentlich unter Manelle Checks sehen müsste? Wo kann ich die Commands und Services für die Checks definieren?
OS Version ist Ubuntu 20.04.1 LTS.
Vielen Dank schon mal für Eure Hilfe,
Gruss
Martin
Hier eins der Scripte:
#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;
sub pexit($) {
$_ = shift;
my $retcode = 3; # UNKNOWN
SWITCH: {
m/OK/ && do {$retcode = 0; last SWITCH;};
m/WARNING/ && do {$retcode = 1; last SWITCH;};
m/CRITICAL/ && do {$retcode = 2; last SWITCH;};
}
print $_ . “\n”;
exit $retcode;
}
if ($#ARGV != 2) {
pexit “UNKNOWN: Hostname, port number, and/or server ID argument is missing.”;
}
my $socket = new IO::Socket::INET(
PeerHost => “$ARGV[0]”,
PeerPort => “$ARGV[1]”,
Proto => ‘tcp’,
);
pexit “UNKNOWN: failed to connect: $!” unless $socket;
my $msgStr = sprintf("%03dDo a ping, please, for server %s", length("$ARGV[2]"), “$ARGV[2]”);
$socket->send("$msgStr");
$socket->shutdown(1);
my $response = “”;
pexit “UNKNOWN: failed to read: $!” unless defined $socket->recv($response, 4096);
pexit “UNKNOWN: received empty response” unless $response ne “”;
$socket->close();
pexit $response;