Eu tenho 15 servidores idênticos de Linux RH 4.7 de 64 bits. Eles executam o banco de dados do cluster (o cluster está no nível do aplicativo). Ocasionalmente (quase todos os meses), uma caixa aleatória (embora nunca a mesma) congela.
Eu posso executar ping na caixa e executar ping. Se eu tentar ssh na caixa, recebo:
ssh_exchange_identification: Connection closed by remote host
O SSH está configurado corretamente.
Quando vou à sala do servidor e tento fazer login diretamente no console, posso alternar entre os consoles com Alt+ Fn, posso inserir um nome de usuário e os caracteres são exibidos, mas depois de pressionar Enter, nada acontece. Esperei 8 horas uma vez e não mudou.
Eu configurei o syslog para registrar tudo em um host remoto e não há nada nesses logs. Quando eu reinicio a máquina, ela funciona sem problemas. Eu executei testes de HW - está tudo bem e nada está nos logs. As máquinas também são monitoradas com NAGIOS, e não há carga ou atividade incomum antes do congelamento.
Eu fiquei sem idéias; o que mais posso fazer ou verificar?
Respostas:
Parece que seu kernel entrou em pânico de alguma forma, de forma que o sshd não pôde enviar as chaves do servidor. Possivelmente, o kernel foi instalado de tal forma que a pilha de rede ainda estava funcionando, mas a camada vfs não estava disponível.
Quando tive problemas semelhantes em um sistema RHEL4, configurei os serviços netdump e netconsole e um servidor netdump e syslog dedicado para capturar os despejos de memória e informações de pânico do kernel. Também defino o kernel.panic sysctl como 10. Dessa forma, quando um sistema entra em pânico, você obtém o rastreio do kernel e uma cópia da memória nesse sistema, para a qual você pode analisar com o utilitário 'crash'.
Você certamente também se beneficiaria da configuração de um console serial para os hosts, para poder ver o console pronto e, potencialmente, pressionar as teclas mágicas do sysrq. Além disso, se você estiver disposto a configurar a rede e tiver hardware compatível, poderá usar o IPMI para desligar, ligar, reiniciar e consultar remotamente o hardware.
(pelo que vale a pena, o RHEL5 tem uma funcionalidade semelhante ao kexec / kdump, apenas o despejo de memória é armazenado localmente)
fonte
Aposto dólares em rosquinhas que você está ficando sem memória. O sistema está parando enquanto tenta descobrir de onde obter algum. Pode estar acontecendo tão rapidamente que seu monitoramento não o captura. Eu aumentaria o monitoramento, incluindo o registro remoto do uso de memória. Verifique também nos logs mensagens OOM.
(Você pode até querer ter algumas janelas ssh abertas no topo da tela.)
fonte
Para mim, isso parece que o sistema está sem recursos, portanto, o processo necessário pelo lado do servidor do ssh não pode ser alocado.
O gargalo real pode variar - sem processos ou sem memória - e a única maneira de ter certeza é olhar os logs e o console para ver se há algo lá. Você pode configurar um cenário de ssh-jobs pré-iniciados - um para cada máquina - simplesmente para ser preparado na próxima vez que acontecer.
Se estiver realmente ruim, considere iniciar outro shell com mais comandos internos, para poder investigar mais sem precisar iniciar um processo extra, pois isso pode não ser possível. Também "tail -f / var / log / *" pode ser muito útil.
Boa sorte.
fonte
A única vez que vi algo semelhante foi quando um switch KVM foi usado e uma tecla de atalho do teclado (por exemplo, alt + n) foi usada para alternar entre servidores. Isso não acontecia todas as vezes e o servidor que estava sendo desligado era afetado - portanto, não era imediatamente perceptível. Nenhum bloqueio ocorreria se um botão físico no comutador KVM fosse usado para alternar entre servidores. Se a tecla de atalho fosse usada com frequência, ocasionalmente um servidor não permitiria novos logins. As sessões SSH existentes não foram afetadas.
fonte