NRPE检查参数丢失

我正在运行Shinken,并有一个包,其中包含几个命令,通过NRPE在受监视的主机上运行bash脚本。 我有一个运行一个bash脚本,需要4个参数的主机检查。 当它只运行我在命令中传递的4个参数中的一个时..cfg将其传递给主机供脚本使用。

我在这个问题上search了很多,一直没有find解决办法。 从我读过的大多数问题中,人们用传递参数向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$' } 

我也试着用双引号围绕整个参数和双引号围绕每个单独的参数。 不pipe怎样,我都会得到相同的结果。

服务定义:

 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

不要把所有的ARG分离成Nagios conf中的单独的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 

至less,这就是你如何在Nagios / Icinga中做到的。 Shinken应该是一样的。