Impossible d'get vm-list pour KVM en utilisant nrpe check

J'ai créé une vérification dans l'hôte virtuel KVM pour get la list des VM disponibles dans l'hyperviseur KVM en utilisant la command ci-dessous.

$ cat /usr/local/nagios/libexec/check_kvm #!/bin/sh val=`virsh list --all | sed '1,2d' | sed '/^$/d'| awk '{print $2":"$3}'` echo "VM List is" - $val exit 0 

Exécuter le script localement chercher datatables comme ci-dessous.

 # sh /usr/local/nagios/libexec/check_kvm VM List is - oy06b:running ....... 

Tout en récupérant datatables à partir du server nagios en utilisant nrpe, je ne peux pas get de list VM. Je reçois comme ci-dessous "VM List is" et $ val ne s'affiche pas.

 /usr/local/nagios/libexec/check_nrpe -H <Host IP> -c check_kvm VM List is - 

S'il vous plaît conseil ….

L'exécution de l'outil virsh nécessite les privilèges de la racine et c'est ce que vous faites réellement lorsque vous l'exécutez directement à partir du shell.

Cependant, il est exécuté en tant qu'user nagios lorsqu'il est exécuté via le démon NRPE. Pour résoudre ce problème, vous devez append sudo à la définition de command dans nrpe.cfg :

 command[check_kvm]=sudo /usr/local/nagios/libexec/check_kvm 

Et ajoutez un user nagios au file sudoers pour permettre l'exécution de cette command / script sans requestr un mot de passe:

 nagios ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm