Nagios NRPE:命令“my_command”未定义

我在运行RHEL 6.3客户机上安装了Nagios® Core™ 3.5.1NRPE v2.14

我在我的Nagios上有这个错误信息

 NRPE: Command 'check_mysql_connections' not defined 

在我的nrpe.cfg我已经设置了allowed_host, include_dir

 allowed_hosts=xx.xx.xx.xx dont_blame_nrpe=1 include_dir=/etc/nagios/services 

我的命令在/etc/nagios/services/check_mysql_connections.cfg

 command[check_mysql_connections]=/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD 

在Nagios服务器上,我已经设置了nagios.cfg文件,并在/etc/nagios/objects添加了如下所示的commands-custom.cfg

 define command { command_name check_mysql_connections command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections } 

并在/etc/nagios/servers上添加mysql.cfg

 ## Define Host Group ## define hostgroup { hostgroup_name mysql-databases alias MySQL Databases } ####################### ## Define Hosts ## define host { use linux-server host_name bdgbnbpmydb02 alias MySQL Database address xx.xx.xx.xx hostgroups mysql-databases contact_groups admins check_command check-host-alive } ####################### ## Define Service ## define service { use generic-service hostgroup_name mysql-databases service_description MySQL Connections check_command check_mysql_connections } 

我已经杀死了NRPE进程,删除/var/run/nrpe.pid ,并再次启动NRPE进程。 而且我的NRPE不在xinet.d下运行

当我尝试在远程主机上本地执行命令时,会给出结果。 当我尝试使用此命令从nagios服务器执行时:

 /usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections 

它也给出了结果。 我不知道出了什么问题,因为我所有的其他命令正常运行。

按照以下步骤添加远程客户端磁盘检查。 也可以按照这些步骤进行mysql的设置。

客户


vi /etc/nagios/nrpe.cfg

 allowed_hosts=127.0.0.1,nagios_server_ip_here dont_blame_nrpe=1 #checking root partion command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 20% -p / 

服务器


从文件/usr/local/nagios/etc/resource.cfg$USER1$=/usr/local/nagios/libexec

所以,在terminal中运行命令:

 locate check_nrpe //find the location of check_nrpe cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/ cd /usr/local/nagios/libexec/ chown nagios:nagios check_nrpe 

编辑文件/usr/local/nagios/etc/objects/commands.cfg

 define command{ command_name check_disk command_line $USER1$/check_nrpe -H '$HOSTADDRESS$' -t 30 -c check_disk } 

编辑/usr/local/nagios/etc/servers/clients.cfg

 define service { use generic-service host_name BI Server service_description Disk check_command check_disk notifications_enabled 1 } 

重新启动服务

 /etc/init.d/nagios restart //server side /etc/init.d/nagios-nrpe-server restart //client side 

您也可以在terminal中检查命令为nagios用户,

 su - nagios cd /usr/local/nagios/libexec/ ./check_nrpe -H nagios_client_ip_here -t 30 -c check_mysql ./check_nrpe -H nagios_client_ip_here -t 30 -c check_disk 

从一头开始,回到你的路上。

  • 你说过:“/ usr / lib64 / nagios / plugins / check_mysql_all -K连接-H myHOST -u myUSERNAME -p myPASSWORD”在命令行中起作用。
  • 你说,NRPE和其他命令一起在该服务器上工作。
  • 你说这个命令在nagios服务器的命令行上失败了。

这表明问题出在NRPE服务器的定义上。 myHOST,myUSERNAME或myPASSWORD的混淆variables是否可能包含一个由NRPE非字面解释的字符? (我假设你已经检查了错别字和重复的定义!)

通常情况下,我会怀疑该插件的权限问题。 请确保以nagios(或nrpe)用户的身份运行手动testing。

但在这种情况下,它声称NRPE命令甚至没有定义,所以它甚至没有运行它…

把NRPE命令直接放到nrpe.cfg中,而不是放在一个包含的文件中。 (然后重新启动NRPE。)

我记得在几年前有一个类似的问题(但EPEL的NRPE),因为某些原因,它不会在nrpe.cfg中包含另一个文件。 但是我从来没有弄清楚为什么包含文件不起作用。

对于我实施的新检查之一,我也有同样的问题。 尝试从Nagios服务器手动运行检查

 [[email protected]]$ /usr/lib64/nagios/plugins/check_nrpe -H db1.example.com -c check_mysql NRPE: Command 'check_mysql' not defined 

原来Nagios客户端服务器上的Nagios NRPE Daemon需要重新启动,因为它从nrpe.d到源程序存储器

 [[email protected]]$ sudo /etc/init.d/nrpe restart Shutting down Nagios NRPE daemon (nrpe): [ OK ] Starting Nagios NRPE daemon (nrpe): [ OK ] 

再次检查并且成功了这次

 [[email protected]]$ /usr/lib64/nagios/plugins/check_nrpe -H db1.example.com -c check_mysql OK: MySQL is running fine. 

我有同样的症状。 所以也许这样可以节省别人一些时间。 我的问题是,我在include目录中的文件上缺less.cfg扩展名。

我的包括目录是include_dir=/etc/nagios/nrpe.d

该机器运行Ubuntu 14.04作为参考,使用NRPE v2.15

我前一个类似的问题,事实certificate,有人已经在服务器上安装NRPE(我不知道),当我试图访问它采取了旧的NRPE版本和configuration,解决scheme是寻找旧的NRPE并redirect访问…