Não é possível obter a lista de vm para o KVM usando o nrpe check

1

Eu criei o check-in do host virtualizado KVM para obter uma lista de VMs disponíveis no hipervisor KVM usando o comando abaixo.

$ 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

Executar o script localmente buscar os dados conforme abaixo.

# sh /usr/local/nagios/libexec/check_kvm

VM List is - oy06b:running .......

Enquanto, buscando os dados do servidor nagios usando nrpe, não consigo obter a lista de VMs. Estou recebendo como abaixo "VM List is" e $ val não está aparecendo.

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

VM List is -

Por favor, conselhos ...

    
por Jeff Jose 08.04.2017 / 12:13

1 resposta

1

Executar a ferramenta virsh requer privilégios de root e é isso que você está fazendo ao executá-la diretamente do shell.

No entanto, ele é executado como nagios user quando executado via daemon NRPE. Para corrigir isso, você precisa adicionar sudo à definição de comando em nrpe.cfg :

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

E adicione o usuário nagios ao arquivo sudoers para permitir a execução deste comando / script sem pedir uma senha:

nagios  ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm
    
por 08.04.2017 / 12:23