Linux

從 NRPE 呼叫 Nagios check_procs 時返回錯誤值

  • October 30, 2018

我在名為 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

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