mongoDB를 호스팅하는 내 서버 중 하나는 다음과 같습니다.때때로그리고"무작위로"연결할 수 없습니다.
조금 지나면 아무 일도 없었다는 듯이 돌아옵니다.
이 시간 동안 SSH 터널을 열 수 없으며(시간 초과, 비밀번호를 묻지도 않음) 호스팅된 MongoDB에 대한 모든 애플리케이션의 연결이 끊어집니다.
서버가 아직 실행 중인지 확실하지 않습니다. 이 문제는 실제로 하루에 2번 또는 일주일에 1번 발생합니다.
안타깝게도 부끄러운 종료/재시작의 흔적이나 이 시점에서 무슨 일이 일어나고 있는지에 대한 다른 단서를 찾을 수 없습니다.
지금까지 내가 수행한 조사:
foo@bar:/var/log$ who -b
system boot Jun 22 09:25
여기에는 의심스러운 것이 없습니다. 서버가 1개월 동안 시작되지 않았습니다.
이는 boot.log를 통해 확인할 수 있습니다:
foo@bar:/var/log# tail boot.log
2016/06/22 09:25:34 Processing completed for Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9001
2016/06/22 09:25:34 Finished processing ExtensionsConfig.xml
monit: /opt/foo/common/lib/libcrypto.so.1.0.0: no version information available (required by monit)
monit: /opt/foo/common/lib/libssl.so.1.0.0: no version information available (required by monit)
* Starting daemon monitor monit
...done.
* Stopping System V runlevel compatibility
마지막으로 로그인한 사용자를 다시 확인했는데 문제가 없는 것 같습니다.
foo@bar:/var/log# last -x
localadm pts/0 16.618.3.75 Tue Jul 19 14:37 still logged in
localadm pts/0 16.618.3.75 Tue Jul 19 13:59 - 14:36 (00:37)
localadm pts/0 16.618.3.75 Tue Jul 19 13:18 - 13:53 (00:35)
localadm pts/0 16.618.3.75 Tue Jul 19 07:45 - 09:15 (01:29)
localadm pts/3 16.618.3.75 Mon Jul 18 15:14 - 15:51 (00:37)
localadm pts/0 16.618.3.75 Mon Jul 18 14:57 - 15:22 (00:24)
localadm pts/0 16.618.3.75 Mon Jul 4 10:01 - 10:06 (00:05)
localadm pts/0 16.618.3.75 Mon Jul 4 09:03 - 09:19 (00:16)
localadm pts/0 16.618.3.75 Mon Jul 4 08:16 - 08:19 (00:03)
localadm pts/0 16.618.3.75 Mon Jul 4 08:07 - 08:14 (00:06)
localadm pts/0 16.618.3.75 Mon Jul 4 08:00 - 08:04 (00:04)
또한 크론 작업도 확인했는데 그 중 어느 것도 런레벨에 영향을 미치지 않는 것 같습니다.
foo@bar:/var/log$ cat syslog
Jul 20 07:02:01 bar CRON[28967]: (localadmin) CMD (cd /opt/foo/stats && ./agent.bin --run -D)
Jul 20 07:17:01 bar CRON[29489]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jul 20 08:02:01 bar CRON[30754]: (localadmin) CMD (cd /opt/foo/stats && ./agent.bin --run -D)
(또한 전역 수준과 사용자 수준에서 각 CRON 테이블을 수동으로 확인했습니다 less /etc/crontab
. :)
서버는 실제로 Azure Cloud의 일부입니다(이것이 질문과 관련이 있는지는 모르겠습니다).
이 문제를 일으키는 또 다른 원인이 무엇인지 알고 계십니까?
어떻게 더 자세히 조사할 수 있는지 아시나요?
답변1
서버는 실제로 Azure Cloud의 일부입니다.
이 오류는 SSH 클라이언트/Mongo 클라이언트와 서버 사이의 네트워크 경로 어디에서나 발생할 수 있습니다. 이는 귀하가 액세스할 수 없는 많은 수의 구성 요소를 나타낼 수 있습니다.
다음 전화 포트(재부팅 여부를 확인한 후)는 Microsoft 지원팀에 문의해야 합니다(행운을 빕니다).
동시에:
네트워크 장치와 관련된 메시지가 있는지 시스템 로그를 확인하세요.
문제가 나타나지 않으면 원격 모니터링을 설정하여 중단을 추적해야 합니다. 문제를 조사하는 데 유용한 정보를 지원하는 것 외에도 계약을 종료하고 다른 공급자로 전환할 수 있는 방법도 제공됩니다.
답변2
귀하의 질문에 따르면 성능이나 가용성 문제는 아닌 것으로 추측됩니다. 네트워크 연결 문제인 것 같습니다. 클라이언트나 대상 서버의 방화벽과 관련이 있을 수 있습니다.
조사 방법에는 여러 가지가 있습니다.
핑 응답 확인
클라이언트에서 서버로, 클라이언트에서 서버로의 traceroute and tracepath
Traceroute 명령
FQDN 및 IP 주소를 통해 연결을 시도하고 네임서버 항목을 확인하여 /etc/resolv.conf
ipv4 주소인지 확인하세요.
서버의 sshd 구성을 확인하십시오.
TCP 연결 시간 초과 설정 확인
방화벽과 se-linux를 잠시 비활성화하고 해당되는 경우 다시 시도하십시오.
/var/log/messages
및 /var/log/secure
등 의 단서를 확인하세요 /var/log/auth
./var/log/audit/audit.log
tcpdump를 사용하여 패킷을 확인하세요. 이는 tcp keepalive 문제로 인해 발생할 수 있습니다.