https://github.com/kjhosein/nagios-freeswitch-plugin で説明されているように、FreeSWITCHを監視するようにNagiosを構成しようとしています。
Gitからスクリプトをダウンロードし、リストされた手順に従いました。
リモート(NRPE)サーバーで、nrpe.cfgファイルに以下の行を追加しました
command[check_freeswitch_health]=/usr/lib64/nagios/plugins/check_freeswitch_health.pl $ARG1$
Nagiosサーバーで、commands.cfgファイルに追加
define command {
command_name check_freeswitch_health
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_freeswitch_health $ARG1$
}
およびservices.cfgファイル内
define service {
Host_name freeswitch01
service_description FreeSWITCH - Calls Count
check_command check_freeswitch_health!-a '-q show-calls-count'!!!!!!!
}
しかし、NagiosのWebインターフェイスで私は得ています
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
リモートサーバーで、logs(/ var/log/syslog)に以下のエラーが表示されます
Request contained command arguments!
Client request was invalid, bailing out...
私がここで欠けているものは何ですか?誰かが正しい構成で私を助けてくれますか?
ありがとう、
ルツ
env -i /usr/lib64/nagios/plugins/check_freeswitch_health.pl ...
を実行して確認しますcheck_nrpe
コマンド定義を使用します。dont_blame_nrpe=1
を設定して、nrpe.cfgでコマンド引数を有効にする必要があります。たとえば、check_nrpe
コマンドが次のようになっている場合:
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
その場合、サービス定義は次のようになります。
define service {
Host_name freeswitch01
service_description FreeSWITCH - Calls Count
check_command check_nrpe!check_freeswitch_health!-q show-calls-count
}
(コマンドの最後に!!!!!!!があるのはなぜですか?)
または、そのPerlスクリプトに渡す唯一のオプションが-q
である場合は、NRPE構成のコマンド定義に含めることができます。
command[check_freeswitch_health]=/usr/lib64/nagios/plugins/check_freeswitch_health.pl -q $ARG1$
その場合、check_command
はcheck_nrpe!check_freeswitch_health!show-calls-count
になります