是否有任何调整监控是否有一台服务器可以访问另一台服务器上的MySQL?
我尝试了monit,但是正如你可能知道的那样,10次尝试之后,mysql会阻塞服务器。
check host db1.server with address db1.server if failed port 3306 protocol mysql then alert
。
mysqli: host <host> is blocked because of many connection errors; unblock with mysqladmin flush-hosts
编辑 (全新的答案)
我已经Google了一下这个问题,发现一些线索:
似乎在以下情况下MySql不太喜欢:
所以,一个解决方法可能是执行一个真正的MySql连接并运行一个查询。
这是一个办法。 您将需要在监视服务器上安装mysql-client ,并在MySql服务器上授予正确的访问权限。
Monit检查设置:
check program mysql with path "/root/mysql_check.sh" if status != 0 then alert
脚本mysql_check.sh :
#!/bin/sh mysql -u<user> -p<password> --host=xx.xx.xx.xx <<END SHOW VARIABLES LIKE "%version%"; END
脚本mysql_check.sh也应该对自定义Nagios检查有效。
我已经testing成功(手段可以远程运行查询),但只要我不能重现我的MySql 5.5服务器上的blocked host问题,我不知道这是否真的解决了这个问题。
试试看,告诉我结果是什么。
我的参考: