
우리는 모두 Debian 6 64비트를 실행하는 여러 Xen 가상화 서버를 보유하고 있습니다. 때때로 서버가 네트워크를 통해 응답을 중지하는 간헐적인 문제가 있습니다. 이런 일이 발생하면 서버를 ping할 수 없으며 앱 로그에 네트워크의 다른 서버에 연결할 수 없다고 표시됩니다.
이는 현재 관련되지 않은 몇 가지 다른 서버에서 발생했으며 유일한 공통 요소는 VPS 호스트 및 관련 인프라, OS 및 OS 설정입니다. 호스트와 함께 이 문제를 추적하고 있지만 실제로는 문제의 원인을 파악해야 합니다.
지금은 별로 할 일이 없어요. 이벤트와 함께 발생하는 유일한 os 로그 항목은 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)
그러나 나는 그것이 원인에 대한 단서가 아니라 네트워크 연결이 끊어진 결과라고 생각합니다.
작업 서버의 MTR 보고서에는 유용한 정보가 표시되지 않습니다.
그래서,여기서 무슨 일이 일어나고 있는지 이해하려면 어떻게 해야 합니까? 확인해야 할 항목에 대해 내가 모르는 네트워크 관련 로그가 있습니까?
감사합니다!
답변1
귀하는 VPS 호스트에 액세스할 수 없으며 VM 내부에서만 디버깅할 수 있다고 가정합니다. 그래서 이것이 제가 할 일입니다.
VM과 호스트 사이인지, VM과 게이트웨이 사이인지, 아니면 공급자 네트워크 내의 어딘가에서 손상이 발생하는지 알아내려고 합니다.
첫 번째 홉(예: 게이트웨이)을 핑하는 스크립트를 설정하십시오. 동일한 브로드캐스트 도메인 내에 다른 VM이 있는 경우 GW 대신 해당 VM을 ping할 수 있습니다. screen/tmux를 실행하고 내부에 ping을 남겨둘 수 있습니다.
$ ping IP_OF_GW_OR_OTHER_VM | tee -a mytest.log
가동 중단이 발생했을 때 게이트웨이가 아직 살아 있고 핑이 통과한다면 문제가 있는 것입니다. 이 경우 중단이 발생한 위치를 파악할 때까지 추적 경로를 수행하고 다음 2~3개 홉을 핑합니다. 게이트웨이를 즉시 사용할 수 없는 경우 중단이 발생할 때 네트워크 정보의 스냅샷을 찍을 크론을 설정할 수 있습니다.
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
해당 정보가 필요하다고 생각되면 가동 시간(현재 로드를 가져오기 위해) lsof 또는 netstat와 같은 추가 정보로 스크립트를 확장할 수 있습니다.
때로는 게스트 dhclient가 연결을 끊거나 임대 갱신에 실패하므로 중단 시 수집된 모든 정보가 도움이 될 수 있습니다.