web-dev-qa-db-ja.com

FreeSWITCHを監視するためのNagiosプラグイン

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...

私がここで欠けているものは何ですか?誰かが正しい構成で私を助けてくれますか?

ありがとう、

ルツ

2
Rutu
  1. Nagios/nrpeユーザーとして、そのPerlスクリプトをローカルで実行できることを確認してください。
  2. PerlスクリプトがENV($ PATHなど)に依存していないことを確認してください。 env -i /usr/lib64/nagios/plugins/check_freeswitch_health.pl ...を実行して確認します
  3. 実行するさまざまなNRPEコマンドごとにcheck_ {whatever}を記述する代わりに、一般的なcheck_nrpeコマンド定義を使用します。
  4. -aを指定して引数を渡すには、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_commandcheck_nrpe!check_freeswitch_health!show-calls-countになります

1
Keith