Nagios

NRPE 檢查參數失去

  • October 20, 2016

我正在執行 Shinken 並且有一個包,其中包含幾個通過 NRPE 在受監控主機上執行 bash 腳本的命令。我檢查了執行帶有 4 個參數的 bash 腳本的主機。當它只執行 4 個參數中的 1 個時,我傳入 commands.cfg 將其發送到主機以供腳本使用。

我已經在這個問題上進行了很多搜尋,但無法找到解決方案。根據我所讀到的大多數問題,人們報告的將參數傳遞給 NRPE 的原因是沒有正確設置“dont_blame_nrpe”或沒有編譯 nrpe 並支持參數。這不是我的情況。dont_blame_nrpe 設置為 1,並且該模組是使用參數支持編譯的。更重要的是,我檢查了同一台主機(在同一個包中設置),它採用單個參數並且工作正常。

這是我在包中的 commands.cfg:

define command {
   command_name   check_nrpe
   command_line   $PLUGINSDIR$/check_nrpe -u -H $HOSTADDRESS$ -c $ARG1$ -a '$ARG2$ $ARG3$ $ARG4$ $ARG5$'
}

我也試過上面的整個參數集的雙引號和每個單獨的參數的雙引號。無論如何,我都會得到相同的結果。

以及服務定義:

define service{
   service_description check-worker-count
   use            generic-service
   register       0
   host_name      nrpe-pack
   check_command  check_nrpe!check-worker-count!worker-name!12!90!80
}

以及主機上的 /etc/nrpe.d/check-worker-count.cfg:

command[check-worker-count]=/usr/lib64/nagios/plugins/check_worker_count.sh -n $ARG1$ -p $ARG2$ -w $ARG3$ -c $ARG4$

我在主機上的腳本在一開始就輸出 $* ,這就是它得到的:

-n 工人名稱 -p -w -c

將在本地執行腳本與在命令行傳遞的參數進行比較:

-n 工人名稱 -p 12 -w 90 -c 80

不要費心在 Nagios conf 中將所有 -a ARG 分成單獨的 ARG。你會被這些報價逼瘋的。為簡單起見,讓你的command_line東西像:

$PLUGINSDIR$/check_nrpe -u -t 30 -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$

然後像這樣使用它:

check_command  check_nrpe!check-worker-count!worker-name 12 90 80

至少,在 Nagios/Icinga 中你會這樣做。Shinken應該是一樣的。

引用自:https://serverfault.com/questions/713143