web-dev-qa-db-ja.com

NagiosプラグインCHECK_NRPE受信ヘッダーアンダーフロー

LAN上でNagiosCoreサーバーを実行しています。ネットワークの外に5台のWindowsマシンがあり、5つのカスタムNSClient ++アプリをリッスンしている5つの異なるポートの5つのsshトンネルを介して通信しています。すべてがこの構成でうまく機能していますが、実際に必要なのは実際の物理メモリだけであるにもかかわらず、check_ntMEMUSEが奇数を示していることに気づいています。

掘り下げて調べたところ、check_nrpeが見つかりました。これにより、探しているデータが得られます。

Commands.cfgに以下を追加しました:

_define command {
       command_name    CheckWindowsPhysicalMem
       command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c CheckMEM -a MaxWarn=$ARG1$% MaxCrit=$ARG2$% ShowAll=long type=physical
}
_

そして、私は自分のwindows.cfgに以下を入れます

_define service{
        use                     generic-service
        Host_name               HOSTNAME
        service_description     Physical Memory
        check_command           CheckWindowsPhysicalMem!80!90
}
_

Nagiosとnagios-nrpe-serverの両方を再起動すると、次のエラーが発生します。

CHECK_NRPE: Receive header underflow - only 0 bytes received (4 expected)

ここで何を見逃したのかはわかりませんが、依存関係またはパッケージのように思われる場合。 Google-fuはこれで負けました。

1
RE_Woods

1。NRPE接続のテスト

次のように、NRPEを介してWindowsとNagiosの間の接続をテストできます。

./check_nrpe -H Server
I (0.4.3.143 2015-04-29) seem to be doing fine...

Check_nrpeに引数を渡さない場合、サーバー(Windowsクライアント)は彼のバージョン番号で応答します。

2。コマンドのテスト

Windowsクライアントでは、nscp testを使用してコンソールでローカルにコマンドをテストできます。

コマンドが良い結果を返す場合、引数なしでnagiosサーバーからテストできます:

# ./check_nrpe -H Server -c alias_cpu
OK: CPU load is ok.|'total 5m'=1%;80;90 'total 1m'=1%;80;90 'total 5s'=2%;80;90

。NRPE引数

デフォルトでは、NRPEはセキュリティ上の理由からNagiosからリモートクライアントへの引数の送信を許可していません。したがって、各Windowsステーションのnsclient.iniで有効にする必要があります。

1
Sorcha