我使用下面的命令在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用户执行。 要解决这个问题,你需要添加sudo到nrpe.cfg命令定义:
command[check_kvm]=sudo /usr/local/nagios/libexec/check_kvm
并将nagios用户添加到sudoers文件,以允许执行此命令/脚本而不要求input密码:
nagios ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm