我在 Ubuntu 上使用来自 nagios exchange check_mysql_slavestatus 的 Nrpe 插件。
手动操作如下:
root@Bastion-01:/usr/local/nagios/libexec# ./check_mysql_slavestatus -H Slave-ip -P 3306 -u root -p xxxxx -w 10 -c 20
OK: Slave SQL running: Yes Slave IO running: Yes / master: 172.31.20.9 / slave is 0 seconds behind master | delay=0s
类似地,它从 Master DB 工作
root@DB-01:/usr/lib/nagios/plugins# ./check_mysql_slavestatus -H Slave-ip -P 3306 -u root -p xxxxx -w 10 -c 20
OK: Slave SQL running: Yes Slave IO running: Yes / master: 172.31.20.9 / slave is 0 seconds behind master | delay=0s
获取错误
root@Bastion-01:/usr/local/nagios/libexec# ./check_nrpe -H Master-ip -c check_mysql_slavestatus
NRPE: Unable to read output
在 Nagios 服务器上
在 Command.cfg 中
define command{
command_name check_mysql_slavestatus
command_line $USER1$/check_mysql_slavestatus -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$ -w $ARG4$ -c $ARG5$
}
vim /usr/local/nagios/etc/objects/nagios_DB1.cfg
define service{
use generic-service
host_name DB-01
service_description check_mysql_slavestatus
check_command check_nrpe!check_mysql_slavestatus!hostname!portnumber!username!passwd!15!50
}
Nagios 上的输出
check_mysql_slavestatus
CRITICAL 06-09-2015 13:51:51 0d 2h 45m 12s 3/3 (No output on stdout) stderr: execvp(/check_nrpe, ...) failed. errno is 2: No such file or directory
请告诉我我错在哪里
按照故障排除文档https://assets.nagios.com/downloads/nagiosxi/docs/NRPE-Troubleshooting-and-Common-Solutions.pdf
vim /etc/sudoers
nagios ALL= NOPASSWD: sudo /usr/lib/nagios/plugins/check_mysql_slavestatus
答案1
看起来您并不完全了解 NRPE 的工作原理。您没有check_nrpe
在 Nagios 服务器上安装该插件,或者插件路径错误。如果没有看到您的 check_nrpe 命令定义,很难确定。
此外,您似乎对如何将宏传递给 check_nrpe 感到有些困惑......
check_nrpe!check_mysql_slavestatus!hostname!portnumber!username!passwd!15!50
方法:
ARG1 = check_mysql_slavestatus
ARG2 = hostname
ARG3 = port
ARG4 = user
ARG5 = pass
ARG6 = 15
ARG7 = 50.
这几乎肯定不是您想要的,除非您的 check_nrpe 命令需要 7 个参数(不太可能)。
将其更改为类似内容check_nrpe!check_mysql_slavestatus hostname portnumber username passwd 15 50
会更正确,但这仅在您已配置 NRPE 以匹配时才有效。它必须接受命令参数,并且您的 check_nrpe 命令定义必须-a $ARG1
在末尾使用。
此外,您需要check_mysql_slavestatus
在远程端的 NRPE 配置中(而不是在 Nagios 服务器上)定义一个使用所有这些参数的命令。
阅读以下文章可能会有所帮助NRPE 文档再次。