從 NRPE 呼叫 Nagios check_procs 時返回錯誤值
我在名為 myserver 的受監控伺服器的 nrpe.conf 中添加了以下行:
command[check_mysrv_process]=/usr/lib/nagios/plugins/check_procs -c 1: -C java -a mysrv
按預期在本地工作:
myserver> /usr/lib/nagios/plugins/check_procs -c 1: -C java -a mysrv PROCS OK: 1 process with command name 'java', args 'mysrv'
但是,當我從我的 nagios 伺服器通過 nrpe 執行檢查時,無論具有特定模式的程序數是多少(通常為 0 或 1),我都會得到零輸出:
mynagiosserver>/opt/nagios/libexec/check_nrpe -H myserver -u -c check_mysrv_process PROCS CRITICAL: 0 processes with command name 'java', args 'mysrv'
更多細節:
- NRPE 版本 = 2.12
- Nagios 外掛版本 = 1.4.16
- 作業系統類型:SLES 11.3
- 包含 mysrv 的具體程序名是長的。
編輯
這樣做時,
cat /proc/pid of nrpe/environ
我得到以下行:CONSOLE=/dev/consoleSELINUX_INIT=YESROOTFS_FSTYPE=ext3SHELL=/bin/shTERM=linuxROOTFS_FSCK=0crashkernel=256M-:128MLC_ALL=POSIXINIT_VERSION=sysvinit-2.86REDIRECT=/dev/tty1COLUMNS=96PATH=/bin:/sbin:/usr/bin: /usr/sbinvga=0x314DO_CONFIRM=RUNLEVEL=5PWD=/SPLASHCFG=/etc/bootsplash/themes/SLES/config/bootsplash-800x600.cfgPREVLEVEL=NLINES=33HOME=/SHLVL=2splash=silentSPLASH=yesROOTFS_BLKDEV=/dev/sda2_=/ sbin/startprocDAEMON=/usr/sbin/nrpe
這讓我想到了一個由
COLUMN
環境變數引起的報告的Bug。在這裡,你有
COLUMNS=96
.這意味著任何超過
COLUMN
值的程序命令行都將失去。正如您所說,您的程序名稱很長,您可能會遇到這個問題。
您可以嘗試
COLUMN
在命令定義中增加變數nrpe.cfg
:command[check_myprogram_proc]=COLUMN=256 /usr/lib/nagios/plugins/check_procs ...
參考:http ://christoph-probst.com/article.php/20110718143604605