將 NRPE 與 Icinga2 一起使用時出錯
我有 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; 負載5=1.390;10.000;20.000;0; 負載15=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 無法按照您在對象服務中聲明的方式讀取參數。
我不會為多個案例創建自定義 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