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: