NRPE はコマンドラインから動作します。Nagios からの「コマンドライン引数が正しくありません」

NRPE はコマンドラインから動作します。Nagios からの「コマンドライン引数が正しくありません」

導入に向けた最初のステップとして、基本的な例を使用して NRPE を設定しようとしています。簡単にするために、NRPE と Nagios の両方をローカルで実行しています。NRPE と Nagios はどちらも動作しているように見えますが、Nagios から check_nrpe を使用すると、なぜか失敗します。編集: Nagios のバージョン 4.1.1 と NRPE のバージョン 2.15 を使用しています。

check_nrpe を手動で実行できるので、NRPE は動作していると思います。

/s/l/n/nagios_instance ❯❯❯ libexec/check_nrpe -H 127.0.0.1 -p 5667 -c check_total_procs      ⏎ 
PROCS CRITICAL: 536 processes | procs=536;150;200;0;

私は、Python でこの簡単なチェックを記述しました。このファイルは check_hello_world.py という名前で、libexec ディレクトリにあります。そのため、Nagios は動作している (そして正しい引数を提供している) と思います。

#!/usr/bin/env python

import sys
print str(sys.argv)
raise SystemExit, 2

私の nagios 設定の関連行は次のようになります。

define host {
    use                             linux-server
    host_name                       yourhost
    alias                           My first Apache server
    address                         127.0.0.1
}

define command {
    command_name check_procs_nrpe
    command_line $USER1$/check_hello_world.py –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
    #command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -p 5667 -c "check_total_procs"
}


define service {
    use                             generic-service
    host_name                       yourhost
    service_description             Check using the hello world plugin
    check_command                   check_procs_nrpe
    }

ご覧のとおり、私は check_procs_nrpe コマンドを、単純な Python スクリプトか、コマンド ラインから機能する proc をチェックする nrpe コマンドのいずれかのコマンドで定義しています。Python スクリプトを使用すると、数分以内に次のテキストを含む電子メールが届きます。

Additional Info:

[/spare/local/nagios/nagios_instance/libexec/check_hello_world.py, –H, 127.0.0.1, -p, 5667, -c, check_total_procs]

これは、Nagios が正しく動作し、アラートをトリガーし、電子メールを送信し、引数を正しく解決していることを示しているようです。コマンドを check_nrpe を使用するように変更して Nagios を再実行すると、次のテキストを含む電子メールが届きます。

Additional Info:

Incorrect command line arguments supplied

次に何をすればいいのか本当にわかりません。このボックスのルート権限がないので、ログ情報を取得するために rsyslog を簡単に再構成することができません。リクエストに応じて追加情報を提供します。何かアイデアはありますか?

答え1

結論として、問題は '-H' のダッシュが実際にはダッシュではなかったことであることが判明しました。これは en ダッシュでした。上のテキストで探せば、実際にかなりはっきりと確認できます。残念ながら、Source Code Pro (ターミナル、つまり vim で使用しているフォント) は、ダッシュと en ダッシュを区別しません。これに関する問題を再度オープンし、その間、新しいフォントを探しています (そして、ダッシュの区別を基準リストに追加します)。

関連情報