
Temos vários servidores virtualizados Xen, todos rodando Debian 6 de 64 bits. Estamos tendo um problema intermitente onde ocasionalmente um servidor para de responder pela rede. Quando isso acontece, não conseguimos executar ping no servidor e os logs do nosso aplicativo indicam que ele não consegue se conectar a outros servidores na rede.
Isso já aconteceu com alguns servidores diferentes e não relacionados, e os únicos fatores comuns são o host VPS e a infraestrutura associada, o sistema operacional e as configurações do sistema operacional. Estou acompanhando isso com o anfitrião, mas realmente preciso ir ao fundo da questão.
Eu realmente não tenho muito o que fazer no momento. As únicas entradas de log do sistema operacional que posso encontrar que coincidem com o evento são uma linha no syslog:
Nov 21 19:36:10 xxxxxx ntpd[2460]: xxxx:4f8:xxx:xxx:1:2:3:4 interface xxxx:7e00::xxxx:91ff:xxxx:1bd4 -> (null)
No entanto, acho que isso é o resultado da morte da conexão de rede, e não uma pista de sua causa.
Os relatórios MTR de um servidor em funcionamento não mostram nada de útil.
Então,como devo tentar entender o que está acontecendo aqui? Há algum registro específico da rede que eu não conheço e que deveria ser verificado?
Obrigado!
Responder1
Presumo que você não tenha acesso ao seu host VPS e que só possa depurar de dentro da VM. Então é isso que eu faria.
Eu tentaria descobrir onde ocorre a quebra - entre a VM e o host, a VM e o gateway ou talvez em algum lugar dentro da rede do seu provedor.
Defina um script que fará ping no seu primeiro salto - ou seja, no seu gateway. Se você tiver outras VMs no mesmo domínio de transmissão, poderá executar ping nelas em vez de GW. Você poderia executar screen/tmux e deixar o ping dentro:
$ ping IP_OF_GW_OR_OTHER_VM | tee -a mytest.log
Quando a interrupção ocorre, se o gateway ainda estiver ativo e os pings passarem, você terá um problema que vai pelo ralo. Nesse caso, faça um traceroute e execute ping nos próximos 2-3 saltos, até descobrir onde ocorre a interrupção. Se o gateway estiver imediatamente indisponível, talvez configure um cron que tirará um instantâneo das informações da rede quando a interrupção ocorrer:
ping -c 3 gateway
if [ $? -ne 0 ]; then
ifconfig eth0 2>&1 >> /tmp/ifconfig-$(date +"%Y-%m-%d_%H:%M").log
ethtool eth0 >> /tmp/ethtool-$(date +"%Y-%m-%d_%H:%M").log
fi
Você pode estender o script com informações adicionais como tempo de atividade (para obter a carga atual) lsof ou netstat se achar que precisa dessas informações também.
às vezes, os convidados do dhclient interrompem a conexão ou não conseguem renovar o aluguel, portanto, qualquer informação coletada no momento da interrupção pode ajudar.