NRPE: Skrypt niestandardowy nie może odczytać danych wejściowych, ale działa poprawnie, co to może być?
Napisałem skrypt walidacyjny Nagios, który przyjmuje ścieżkę jako argument i sprawdza:
- jeśli ścieżka jest ustawiona
- jeśli jest dostępny, dotykając pliku w ścieżce.
- Jeśli katalog punktu podłączenia jest pusty
[root@hadoop-nn1 mass1]# su - nagios
[nagios@hadoop-nn1 ~]$/usr/lib64/nagios/plugins/check_nfsmount.sh/mass2/hpfiles/
Warning:/mass2/hpfiles/ is mounted but directory is empty!
[nagios@hadoop-nn1 ~]$/usr/lib64/nagios/plugins/check_nfsmount.sh/mass1/hpfiles/
Warning:/mass1/hpfiles/ is MOUNTED properly but not writeable for user nagios
[nagios@hadoop-nn1 ~]$/usr/lib64/nagios/plugins/check_nfsmount.sh/mass1/hp_offline/
Ok:/mass1/hp_offline/ is MOUNTED properly and writeable for user nagios
[nagios@hadoop-nn1 ~]$
Zespół w
/etc/nagios/nrpe.cfgna to wygląda:
command[check_nfsmounts]=/usr/lib64/nagios/plugins/check_nfsmounts.sh $ARG1$
Jak widać, kiedy uruchamiam polecenie z monitorowanej maszyny za pomocą użytkownika Nagios, wynik jest zgodny z oczekiwaniami, ale kiedy uruchamiam polecenie za pomocą
nrpez serwera Nagios zwraca „NRPE: Unable to read input”.
Inne rzeczy, których próbowałem:
- Podając ścieżkę w samym skrypcie, więc nie ma potrzeby przekazywania argumentu przez NRPE, ale uzyskaj ten sam wynik.
- Zapewnienie ścieżki do środka
nrpe.cfg
, również aby uniknąć przekazywania argumentów, bezskutecznie.
nrpe.cfgi włączyłem debugowanie, a następnie podczas pracy
tail -f/var/log/messages |grep nrpei wysyłając zdalne polecenie z serwera Nagios, widzę w dzienniku te dwie linie:
Dec 15 04:09:44 hadoop-nn1 nrpe[9354]: Error: Request contained illegal metachars!
Dec 15 04:09:44 hadoop-nn1 nrpe[9354]: Client request was invalid, bailing out...
Ale nie mam możliwości dowiedzenia się, czym były te nielegalne symbole ...
Don't_blame_nrpe jest ustawiona na 1. Skrypt wygląda następująco:
#!/bin/bash
# This script checks if the provided mount point is mounted and writeable.
# Script by Itai Ganot
if [ -z "$1" ]; then
echo "Usage: $(basename $0) PATH_TO_CHECK"
echo "Available PATH's:/mass1/hp_offline --/mass1/hpfiles --/mass2/hpfiles"
exit 3
fi
DF="/bin/df -t nfs"
GREP="/bin/grep -q"
AWK="/bin/awk"
TOUCH="/bin/touch"
LS="/bin/ls"
WC="/usr/bin/wc"
TESTFILE="test.dat"
USER=$(whoami)
NFS_MOUNT="$1"
$DF | $GREP "$NFS_MOUNT" | $AWK '{print $5}'
if [ $? = 0 ]; then
MOUNTED="yes"
else
MOUNTED="no"
fi
if [[ "$MOUNTED" = "yes" ]] && [[ $($LS -A "$NFS_MOUNT" | "$WC" -l) -gt "1" ]]; then
"$TOUCH" "$NFS_MOUNT""$TESTFILE" 2>/dev/null
if [ $? = 0 ]; then
TOUCHED="yes"
else
TOUCHED="no"
fi
elif [[ "$MOUNTED" = "yes" ]] && [[ $($LS -A "$NFS_MOUNT" | "$WC" -l) -eq "0" ]]; then
TXT="$NFS_MOUNT is mounted but directory is empty!"
RETVAL="1"
STATUS="Warning"
elif [ "$MOUNTED" = "no" ]; then
TXT="$NFS_MOUNT not MOUNTED"
RETVAL="2"
STATUS="Critical"
fiif [[ "$TOUCHED" = "yes" ]]; then
TXT="$NFS_MOUNT is MOUNTED properly and writeable for user $USER"
RETVAL="0"
STATUS="Ok"
elif [[ "$TOUCHED" = "no" ]] || [[ "$MOUNTED" = "no" ]]; then
TXT="$NFS_MOUNT is MOUNTED properly but not writeable for user $USER"
RETVAL="1"
STATUS="Warning"
fi
echo "$STATUS: $TXT"
exit $RETVAL
Jaka może być przyczyna błędu „NRPE: nie można odczytać danych wejściowych”?
Edycja nr 1:
[root@mon1 ~]#/usr/lib64/nagios/plugins/check_nrpe -H 10.39.21.211 -c check_nfsmounts -a/mass1/hp_offline
NRPE: Unable to read output
[root@mon1 ~]#/usr/lib64/nagios/plugins/check_nrpe -H 10.39.21.211 -c check_nfsmounts -a '/mass1/hp_offline'
NRPE: Unable to read output
[root@mon1 ~]#/usr/lib64/nagios/plugins/check_nrpe -H 10.39.21.211 -c check_nfsmounts/mass1/hp_offline
NRPE: Unable to read output
[root@mon1 ~]#
Edycja nr 2: SSL jest wyłączony zarówno na serwerze Nagios, jak i na wszystkich klientach ...
[root@mon1 ~]#/usr/lib64/nagios/plugins/check_nrpe -H 10.39.21.211 -n -c check_nfsmounts '/mass1/hp_offline'
CHECK_NRPE: Error receiving data from daemon.
[root@mon1 ~]#/usr/lib64/nagios/plugins/check_nrpe -H 10.39.21.211 -n -c check_nfsmounts -a '/mass1/hp_offline'
CHECK_NRPE: Error receiving data from daemon.
z góry dziękuję
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
ale ten, który testujesz z wiersza poleceń, to
... Potwierdziłeś, że ta niespójność jest źródłem problemu - i nie martw się, może się to przytrafić każdemu z nas. Do złapania tych bardzo irytujących małych gremlinów zawsze przyda się druga para oczu!