web-dev-qa-db-ja.com

nrpeチェックを使用してKVM)のvm-listを取得できません

以下のコマンドを使用して、チェックイン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 -

アドバイスを下さい....

1

ツール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
1
Khaled