以下のコマンドを使用して、チェックインKVM仮想化ホストを作成し、KVMハイパーバイザーで使用可能なVMのリストを取得しました。
$ 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リストを取得できません。以下のように「VMリストは」を取得していますが、$ valが表示されません。
/usr/local/nagios/libexec/check_nrpe -H <Host IP> -c check_kvm
VM List is -
アドバイスを下さい....
ツールvirsh
を実行するにはroot権限が必要であり、これはシェルから直接実行するときに実際に行っていることです。
ただし、NRPEデーモンを介して実行すると、nagios
ユーザーとして実行されます。これを修正するには、nrpe.cfg
のコマンド定義にSudo
を追加する必要があります。
command[check_kvm]=Sudo /usr/local/nagios/libexec/check_kvm
そして、nagios
userをsudoersファイルに追加して、パスワードを要求せずにこのコマンド/スクリプトを実行できるようにします。
nagios ALL = NOPASSWD: /usr/local/nagios/libexec/check_kvm