J'ai essayé de résoudre un problème que j'ai trouvé en faisant utiliser à notre installation Nagios un plugin pour KVM, check_kvm, que j'ai trouvé. Je pense que mon problème se résume à un problème de permissions avec l'utilisateur nagios/nrpe. Après avoir installé nrpe et les plugins, je n'ai aucun problème avec les autres plugins standards comme check_disk ou check_load, etc. En gros, le plugin kvm utilise virsh pour vérifier l'état, j'ai donc activé le login pour nrpe (j'ai aussi essayé l'utilisateur nagios, mais il semble que le service tourne sous l'utilisateur nrpe) et j'ai essayé ce qui suit :
[root@vhost3 ~]# su nrpe
sh-4.2$ virsh list --all
error: failed to connect to the hypervisor
error: no valid connection
error: Cannot create user runtime directory '/run/user/0/libvirt': Permission denied
Mais aucun problème avec cette commande en tant que root bien sûr et le plugin s'exécute bien en local :
[root@vhost3 ~]# virsh list --all
Id Name State
----------------------------------------------------
2 www running
[root@vhost3 ~]# /usr/lib64/nagios/plugins/check_kvm
hosts:1 OK:1 WARN:0 CRIT:0 - www:running
J'ai essayé d'ajouter l'utilisateur nrpe, ainsi que nagios, aux groupes kvm et qemu, mais je ne trouve pas de groupe libvirtd. Une chose étrange est que j'obtiens une erreur différente sur une autre machine, peut-être ai-je fait quelque chose de différent sur ce serveur, mais j'obtiens ceci à la place :
[root@vhost1 ~]# su nrpe
sh-4.2$ virsh list --all
error: failed to connect to the hypervisor
error: no valid connection
error: Failed to connect socket to '/run/user/0/libvirt/libvirt-sock': Permission denied
Autre chose étrange dans l'erreur ci-dessus, le répertoire /run/user/0/libvirt n'existe pas. Sur cet hôte CentOS7, le répertoire correct est /var/run/libvirt où se trouve libvirt-sock. Quelqu'un peut-il me dire quel est mon problème ?