Eu tenho uma máquina CentOS 7 que copia dados continuamente para AWS/S3.
No entanto, ele tem um problema, que eu ficaria grato por sugestões sobre como depurar.
A cópia para o S3 continuaria por horas/dias e, em seguida, a rede pararia de funcionar (tenho um cron
trabalho que grava um ping na rede a cada minuto, assim como o comando S3 aws s3 cp
, então sei o minuto exato em que aconteceu ).
Nesse estágio, o NetworkManager
daemon parece bem, syslog
e journalctl -xe
não mostra nada fora do comum, mas a única maneira de fazer a rede funcionar novamente é uma reinicialização.
Nenhum usuário nessa máquina tem tarefas agendadas (crontab) para o momento em que a rede parou de funcionar normalmente, a máquina tem um IP estático e até o momento do problema, a máquina e a rede funcionam sem problemas.
Alguma ideia de como depurar esse problema?
Editar 1:
Por sugestão de Artem Tashkinov, adicionei ao crontab uma chamada, a cada minuto, a um script que faz o seguinte:
#!/bin/bash -xv
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
then
echo Successful
else
echo Fail
systemctl stop NetworkManager
rmmod r8169
modprobe r8169
systemctl start NetworkManager
fi
E vou ver se é capaz de reviver a rede quando morrer.
Edição 2:
Mesmo com o script, a rede não foi reativada quando falhou.
No entanto, aprimorei o script, pois adicionei uma NIC externa, para ver se isso resolveria o problema.
#!/bin/bash -xv
#
#kernel_module="r8169" # on-board NIC
#kernel_module="e1000e" # add-on NIC
nic=$( ifconfig | grep -B1 10.60.100 | head -1 | awk -F: '{ print $1 }' )
kernel_module=$( ethtool -i $nic | grep driver | awk '{ print $NF }' )
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
#if [ $? -ne 0 ];
then
echo Successful
else
echo Fail
systemctl stop NetworkManager
rmmod $kernel_module
modprobe $kernel_module
systemctl start NetworkManager
fi
Já tive servidores assim.
O que eu fiz foi adicionar uma tarefa no crontab pingando um endereço IP conhecido. Se estiver inacessível, a rede foi encerrada, o módulo do kernel responsável pela NIC foi removido (
rmmod module_name
) e inserido novamente (modprobe module_name
) e por último a rede foi reiniciada. Por favor tente.Se funcionar para você, você definitivamente deve relatar um bug .