无法使用nrpe检查获取KVM的虚拟机列表

我使用下面的命令在KVM虚拟化主机中创build了检查,以获得KVMpipe理程序中可用虚拟机的列表。

$ 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 

在本地执行脚本如下获取数据。

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

当使用nrpe从nagios服务器获取数据时,我无法获得VM列表。 我得到如下“虚拟机列表是”和$ val不显示。

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

请指教….

执行工具virsh需要root权限,这就是你直接从shell执行的实际操作。

但是,它通过NRPE守护程序运行时作为nagios用户执行。 要解决这个问题,你需要添加sudonrpe.cfg命令定义:

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

并将nagios用户添加到sudoers文件,以允许执行此命令/脚本而不要求input密码:

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