Nagiosの作業インスタンスがあり、他のマシンでIcinga2を実行したいと思います。 NagiosはNRPEを使用しているので、私も使用したいと思います。
私はファイルに次の構成を持っています:
object Service "NRPE check load" {
import "generic-service"
Host_name = "agrippina"
check_command = "nrpe-check-2arg"
vars.Host = "agrippina.domain.net"
vars.check = "check_load"
vars.loads = "'10' '20'"
}
そして
object CheckCommand "nrpe-check-2arg" {
import "plugin-check-command"
command = [PluginDir + "/check_nrpe" ]
arguments = {
"-H" = "$Host$"
"-c" = "$check$"
"-a" = "$loads$"
}
}
手動でコマンドを発行する場合:
/usr/lib/nagios/plugins/check_nrpe -H agrippina.domain.net -c 'check_load' -a '10' '20'
私は受け取ります
OK-負荷平均:0.98、1.39、3.79 | load1 = 0.980; 10.000; 20.000; 0; load5 = 1.390; 10.000; 20.000; 0; load15 = 3.790; 10.000; 20.000; 0;
Icinga2ログ:
CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
そのメッセージはどこで探すべきですか?
このチェックを手動で実行して機能するので、Icinga2で修正するにはどうすればよいですか?
変化する vars.loads = "'10' '20'"
からvars.loads = "10!20"
NRPEは、オブジェクトServiceで宣言した方法で引数を読み取ることができないためです。
複数のユースケースのカスタムCheckCommand定義を作成しません。開発サイクル中にCheckCommandオブジェクトをより再利用できるようにすることに頭を悩ませました。そして、オプションの引数と条件付きの引数が得られます。
http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#command-arguments
さらに、icinga2にはすでに「nrpe」プラグインチェックコマンド定義が付属しており、配列として渡される複数の引数-a)を追加することもできます。
あなたの例:
vars.nrpe_arguments = [10、20]
共有するCheckCommand定義がさらにある場合は、アップストリームに送信してください。CheckCommand定義は気にせず、コマンドパラメータとして使用されるホスト/サービスとそのカスタム属性のみを気にする必要があります:)
https://wiki.icinga.org/display/community/Contribute+Icinga+2+ITL+Plugin+Check+Command+Definitions