Nagios コアから Nagios 終了ステータスを読み取れません。

Nagios コアから Nagios 終了ステータスを読み取れません。

私のログファイルの1つのエラー数が特定の制限を超えると、特定のシャットダウン状態を発生させるコマンドを使用しています。コマンドは次のとおりです。

cd /home/serveradmin/logs/ | ls -trc | grep gateway | tail -1 | xargs cat | grep error | wc -l | awk '{if($1 >= "35000"){print "Critical: ",$1;exit 2} else if ($1 >= "25000") {print "Warning: ",$1;exit 1} else {exit 0} }'

コマンドを実行した後、次のコマンドを使用して終了ステータスを確認しました(私のファイルのエラー数が25000を超えたため、私のコマンドは終了コード1を返しました)。

echo $?

上記のコマンドは出力として 1 を返します。

私のnrpe.cfgファイルで、次の同じコマンドを定義しました。

command[Error_Count]=cd /home/serveradmin/logs/ | ls -trc | grep gateway | tail -1 | xargs cat | grep error | wc -l | awk '{if($1 >= "35000"){exit 2} else if ($1 >= "25000") {exit 1} else {exit 0} }'

Nagios Coreでは、サービスを次のように定義しました。

define service {
        host_name               test_vm
        service_description     Error_Count
        check_command           check_nrpe!Error_Count
        use generic-service
        check_interval          1
}

サービスを定義した後、nagiosコアはクライアントのnrpe.cfgファイルで定義されているコマンドから終了ステータスを読み取ることができません。

私のNagiosダッシュボードのエラーが不明な状態を返します。ここに画像の説明を入力してください。

答え1

〜のようにNRPE » トラブルシューティング » FAQ - 出力を読み取れません説明する:

このエラーは、NRPE が文字出力を返さなかったことを意味します。

コマンドはさまざまなステータスコード(2、1、または0)で終了しますが、実際の出力はエクスポートされません。

~からhttps://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/pluginapi.html、「プラグイン出力仕様」は次のように言います。

プラグインは少なくとも1つ以上のテキスト出力を返す必要があります。

目的の「テキスト出力」を示す赤色のハイライトを確認してください。

awkさまざまな条件で一種の出力をエクスポートするようにコードを調整します。

awk '{
  if($1 >= "35000")
    { print "Greater than or equal to 35000"; exit 2} 
  else if ($1 >= "25000") 
    { print "Greater than or equal to 25000"; exit 1} 
  else 
    { print "Less than 25000"; exit 0} 
  }'

関連情報