J'ai le service suivant mis en place pour Nagios:
define service {
hostgroup_name LNX
service_description /tmp Disk Usage
check_command check_nrpe!check_disk!-a '-w 20% -c 10% -p /tmp'
check_interval 1
max_check_attempts 3
retry_interval 1
check_period 24x7
notification_interval 2
notification_period 24x7
notification_options c,r,w
notifications_enabled 0
contact_groups devops
}
Qui lient à la commande suivante:
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -u -t 60 -c $ARG1$ $ARG2$
}
Donc, à la fin ce qui est exécuté (et sa sortie lors de la course à la ligne de commande) est:
$: /usr/local/nagios/libexec/check_nrpe -H <my Host> -u -t 60 -c check_disk -a '-w 20% -c 10% -p /tmp'
DISK OK - free space: /tmp 4785 MB (97% inode=99%);| /tmp=124MB;3928;4419;0;4910
Suivre cela avec echo $?
donne un 0, ce qui signifie ok/succès.
Cependant, Nagios signale cela comme "code d'erreur 255 hors limites" et je ne sais pas pourquoi.
Exécuter la commande check_disk sur le serveur fonctionne bien:
$: ./check_disk -w 20% -c 10% -p /tmp
DISK OK - free space: /tmp 4785 MB (97% inode=99%);| /tmp=124MB;3928;4419;0;4910
$: echo $?
0
Et comme indiqué ci-dessus, cela fonctionne lorsqu'il est fait à travers le check_nrpe
exécutable sur le serveur Nagios. Ça signifie:
check_disk
) est présent sur le système distant: command[check_disk]=/usr/local/nagios/libexec/check_disk $ARG1$
only_from
directive dans /etc/xinetd.d/nrpe
)En outre, cette vérification fonctionne bien sur d'autres machines, mais pas toutes les machines
Pourquoi Nagios pense-t-il que cela obtient un 255 quand tout ce que je peux voir signifie qu'il devrait être 0 et marquer ainsi le service comme ok?
Modifier: La version Nagios est Nagios Core 4 en cours d'exécution sur Centos 7, les hôtes en cours de vérification sont CENTOS 5-7, le problème apparaît sur plusieurs machines de variations variables.
Quand vous avez check_command comme suit:
check_command check_nrpe!check_disk
Le nom de commande attaché est en réalité check_disk au lieu de check_nrpe au client.
cause de problème
Le paramètre de service dans Nagios Server demande au client surveillé d'exécuter la commande check_disk avec un argument.
-w 20% -c 10% -p /tmp
Votre paramètre actuel pour check_disk Commande avec le client Nagios à NRPE.CFG est comme indiqué:
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
Donc, la commande que vous avez transmise au client surveillé via NRPE est en fait:
/usr/lib64/nagios/plugins/check_disk -w -w 20% -c 10% -p /tmp -c $ARG2$ -p $ARG3$
Par conséquent, le test est échoué car la commande ne peut pas être exécutée avec succès.
solution
Si vous souhaitez transmettre 3 arguments différents sur NAGIOS Client, essayez de modifier votre check_command comme suit:
check_command check_nrpe!check_disk -a '-w 20% -c 10% -p /tmp'
Assurez-vous que la commande correspondante configurée au client Nagios:
command[check_disk]=/usr/lib64/nagios/plugins/check_disk $ARG1$
ne autre option modifierait la configuration du serveur comme suit:
check_command check_nrpe!check_disk
Avec la configuration du client correspondant:
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /tmp