执行 check_mysql 插件时出现问题

执行 check_mysql 插件时出现问题

我正在尝试使用命令行测试 Nagios 的 check_mysql 插件。当我仅检查 localhost 时,它工作得很好,但当我尝试指定其他服务器(使用 -H 参数)时,我不断收到以下错误消息:

严重 - 无法连接到 mysql://nagios_user@{remoteServerHostname}/ - 拒绝用户‘nagios_user’@‘{localServerHostName}’访问(使用密码:是)

尽管我指定了不同的主机名,但它似乎正在尝试使用本地主机服务器连接到数据库。我已经在远程数据库上设置了此用户,并且他们具有正确的权限。我只是想弄清楚为什么脚本一直插入本地主机服务器名称而不是远程服务器名称。

答案1

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)。

答案2

我最终使用带有插件的 NRPE 解决了我的连接问题。

相关内容