NRPE: Le script utilisateur ne peut pas lire l'entrée, mais le script fonctionne correctement, que peut-il être?

J'ai écrit un chèque de script Nagios, Qui obtient le chemin comme un argument et des vérifications:

Si le chemin est défini

S'il est disponible, appuyez sur le fichier sur le chemin.

Si le catalogue de points de montage est vide

[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 ~]$

Équipe B.

/etc/nagios/nrpe.cfg

Ressemble à ça:

command[check_nfsmounts]=/usr/lib64/nagios/plugins/check_nfsmounts.sh $ARG1$

Comme vous pouvez le constater, lors du démarrage de la commande à partir de la machine suivie à l'aide de l'utilisateur Nagios Le résultat est comme prévu, mais quand je gère l'équipe en utilisant

nrpe

avec serveur Nagios Il retourne «NRPE: Unable to read input».

Autres choses que j'ai essayées:

Fournir le chemin dans le script lui-même, il n'est donc pas nécessaire de transférer un argument à travers NRPE, Mais obtenez le même résultat.

Assurer le chemin à l'intérieur

nrpe.cfg

, Évitez également de transférer des arguments, mais en vain.

J'ai édité

nrpe.cfg

et a tourné le débogage, puis pendant l'opération

tail -f /var/log/messages |grep nrpe

et envoyer une commande distante du serveur Nagios, Je vois ces deux lignes dans le journal:

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...

Mais je n'ai pas la possibilité de savoir quels symboles illégaux c'était ...

Pour le paramètre Don't_blame_nrpe Valeur installée 1. Le script ressemble à ceci:

#!/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"
fi

if [[ "$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

Quelle pourrait être la raison de l'apparition d'une erreur «NRPE: Ne peut pas être lu entrée "?

Éditer # 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 ~]#

Éditer # 2: SSL Désactivé sur le serveur Nagios, Et sur tous les clients ...

[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.

Merci d'avance
Invité:

Giselle

Confirmation de:

La commande que vous rencontrez nrpe, Ressemble à ça:

/usr/lib64/nagios/plugins/check_nfsmounts.sh

, Mais celui que vous testez de la ligne de commande,

/usr/lib64/nagios/plugins/check_nfsmount.sh

. Vous avez confirmé que cette incohérence est une source de problème - Et ne vous inquiétez pas, cela peut arriver à tous d'entre nous. La deuxième paire des yeux est toujours utile pour attraper ces petits Gremlinovs très ennuyeux!

Pour répondre aux questions, connectez-vous ou registre