Nagios
NRPE 檢查參數失去
我正在執行 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應該是一樣的。