从 NRPE 调用时,Nagios check_procs 返回错误值

从 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

答案1

这让我想起一个已报告的由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

相关内容