我试图用命令行来testingNagios的check_mysql插件。 它工作得很好,当我只是检查本地主机,但是当我尝试指定一个不同的服务器(使用-H参数),我不断收到以下错误信息:
CRITICAL – 无法连接到mysql:// nagios_user @ {remoteServerHostname} / – 访问拒绝用户'nagios_user'@'{localServerHostName}'(使用密码:YES)
它看起来像试图使用本地主机服务器连接到数据库,即使我已经指定了不同的主机名。 我已经在远程数据库上设置了这个用户,他们有正确的权限。 我只是想弄清楚为什么脚本不断插入本地主机服务器名称,而不是远程的。
MySQL服务器的默认设置是拒绝来自IP地址不同于服务器地址的客户端的访问。 为了解决这个问题,请在服务器上运行以下命令:
# mysql -u root mysql> grant select on [DB name you're checking].* to 'nagios_user'@'[Nagios server IP address or hostname]' identified by '[password for nagios_user]'; mysql> flush privileges;
还要检查你的MySQL服务器的防火墙是否允许你的Nagios服务器在MySQL服务器端口上访问(默认是3306)。
我结束了与一个插件解决了我的连接问题使用NRPE。