Editar (total de nova resposta)
Eu pesquisei um pouco sobre esse problema e encontrei uma pista:
Parece que MySql
não gosta quando:
- uma conexão é feita na porta 3306 sem autenticação
- um soquete é aberto e, em seguida, descartado sem nenhum handshaking SQL
Assim, uma solução alternativa seria executar uma conexão MySql
real e executar uma consulta.
Aqui está uma maneira de fazer isso. Você precisará instalar mysql-client
no servidor de monitoramento e conceder acesso correto no servidor MySql.
Monit
check setup:
check program mysql with path "/root/mysql_check.sh"
if status != 0 then alert
Script mysql_check.sh
:
#!/bin/sh
mysql -u<user> -p<password> --host=xx.xx.xx.xx <<END
SHOW VARIABLES LIKE "%version%";
END
O script mysql_check.sh
também deve ser válido para uma verificação Nagios
personalizada.
Eu testei isso com sucesso (significa que posso executar a consulta remotamente), mas na medida em que não posso reproduzir o problema blocked host
no meu servidor MySql 5.5
, não posso dizer se isso realmente resolve o problema.
Tente e me diga qual é o resultado.
Minhas referências: