monit servidor mysql bloqueado devido a muitas conexões ruins

2

Existe algum ajuste para monit ou outra maneira de monitorar se um servidor pode acessar o mysql em outro servidor?

Eu tentei com o monit mas como você provavelmente sabe, após 10 tentativas, o mysql bloqueia o servidor.

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
    
por Christian 27.02.2014 / 11:37

1 resposta

1

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:

por 27.02.2014 / 20:31