Quantcast
Channel: Monitoring-Portal Feed
Viewing all articles
Browse latest Browse all 1338

Icinga2 NRPE: Unable to read Output

$
0
0
Hallo Leute,
ich hab ein paar Probleme beim Check von Diensten mit NRPE.

Als erstes hab ich einen Debian Server auf dem Icinga2 läuft, welcher die Clients überprüfen soll.
Auf einem der Clients läuft ebenfalls Debian mit dem nagios-nrpe-server Service.

Wenn ich auf dem Icinga-Server einen Check absetze funktioniert er, zumindest die meiste normalen Checks ala Disk oder Load.
Will ich jetzt aber den Status von Pacemaker und Resourcen abfragen, kommt Unable to read Output.
Ich weiß nicht ob das Pacemaker Skript selbst geschrieben wurde, ich hab das ganze Projekt nur übernommen und soll es fertigstellen.
Da in dem Skript /usr/sbin/crm_mon aufgerufen wird, habe ich den User Nagios zur Gruppe haclient hinzugefügt. Manuell als Nagios User kann ich den Befehl auch abschicken und bekomme den eigentlich zu erwartenden Output.

Die Konfig auf dem Client sollte auch richtig sein.
Die bisherigen Tipps die ich gelesen haben, wie zum Beispiel: /etc/sudoers --> defaults:nagios !requiretty
funktionieren hier nicht, weil wir auf den meisten Maschinen kein sudo nutzen und auch nicht nutzen wollen.
Habt ihr irgendwelche Ideen??

Vorgehensweise:
Icinga:~# /usr/lib/nagios/plugins/check_nrpe -H CLIENT -c check_pcmk_master_1 --> Unable to read Output
nagios@CLIENT:~# /usr/lib/nagios/plugins/check_pacemaker Master CLIENT --> OK: Master: CLIENT

Konfiguration Client (/etc/nagios/nrpe.cfg):
nrpe_user=nagios
nrpe_group=nagios
server_port=5666
allowed_hosts=ICINGA
command[check_pcmk_master_1]=/usr/lib/nagios/plugins/check_pacemaker Master CLIENT

check_pacemaker Skript:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#/bin/bash
IN=$(/usr/sbin/crm_mon --one-shot | grep "$1")
#Check Master
if [[ "$1" == "Master" ]]
then
saveIFS=$IFS
IFS=" "
IN2=($IN)
IFS=$saveIFS
count=${#IN2[@]}
IN3="Master: ${IN2[$count-2]}"
if [[ "$IN3" != *$2* ]]
then
    	echo "WARNING: $IN3"
    	exit 1
else
echo "OK: $IN3"
exit 0
fi

#Check Service
else
saveIFS=$IFS
IFS="   "
IN2=($IN)
IFS=$saveIFS
count=${#IN2[@]}
IN3="$1 ${IN2[$count-1]}"
if [[ "$IN3" == *Stopped* ]]
then
    	echo "Critical: $IN3"
    	exit 2
elif [[ "$IN3" != *$2* ]]
then
    	echo "Warning: $IN3"
    	exit 1
else
echo "OK: $IN3"
exit 0
fi
fi

Viewing all articles
Browse latest Browse all 1338