Usando Perl e o netcat (comando nc no Linux), escrevi um pequeno script para monitorar as conexões do servidor de aplicações.
#!/usr/bin/perl
$|=1;
my $dump;
my %hosts=(srv1=>1521,srv2=>389);
my $out;
for my $host (keys %hosts) {
my $port=$hosts{$host};
$out=`nc -z $host $port`;
if($out!~/succeeded/) {
open($dump,'>>', '/tmp/monitor.txt');
print $dump `date`;
print $dump "$host $port Failed\n";
close($dump);
}
}
O hash %hosts associa cada servidor a uma porta e o comando "nc -z" realiza o trabalho de testar a conexão. Se o resultado não contiver a palavra "succeeded", imprime-se a data e a combinação de servidor e porta que falhou.
Ele registra apenas as tentativas mal-sucedidas para evitar que o arquivo monitor.txt cresça muito.
Adicionei uma linha à cron, para executar o script uma vez por minuto:
* * * * * /home/forinti/monitor.pl
E assim constatei que meus problemas nada tinham a ver com a rede.
Para um olho mais critico na infra, NewRelic neles ...
ResponderExcluirMesmo no plano basico (free) te fornece insight suficiente sobre a saude dos teus servidores.