私のログファイルの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ファイルで定義されているコマンドから終了ステータスを読み取ることができません。
答え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}
}'