我在运行RHEL 6.3客户机上安装了Nagios® Core™ 3.5.1和NRPE 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
从一头开始,回到你的路上。
这表明问题出在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访问…