Nagios NRPE:未定義命令“my_command”
我已經安裝
Nagios® Core™ 3.5.1
並NRPE v2.14
在我的客戶端上執行RHEL 6.3
我的 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
文件,並添加了commands-custom.cfg
包含/etc/nagios/objects
如下內容的文件: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
它也給出了結果。我不知道出了什麼問題,因為我的所有其他命令都正常執行。
更新和解決
這麼多年後,我想起瞭如何解決這個問題。
我需要在 上編輯自定義命令(在 Nagios 伺服器
commands-custom.cfg
上)/etc/nagios/objects
,所以它會是這樣的:define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
在“定義服務”下是這樣的:
## Define Service ## define service { use generic-service hostgroup_name mysql-databases service_description MySQL Connections check_command check_nrpe!check_mysql_connections }
總之,我需要將命令分開來檢查服務
check_nrpe
並使用呼叫自定義命令check_nrpe!check_mysql_connections
參考: https ://support.nagios.com/forum/viewtopic.php?f=7&t=33448
從一端開始,然後返回。
- 您說“/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD”在命令行上有效。
- 您說 NRPE 使用其他命令在該伺服器上工作。
- 您說命令在 nagios 伺服器的命令行上失敗。
這表明問題出在 NRPE 伺服器上的定義中。您的 myHOST、myUSERNAME 或 myPASSWORD 的混淆變數是否可能包含由 NRPE 非字面解釋的字元?(我假設您已經檢查了拼寫錯誤和重複定義!)