NTP Debian: 마지막 설문조사가 성공했는지 어떻게 알 수 있나요?

NTP Debian: 마지막 설문조사가 성공했는지 어떻게 알 수 있나요?

NTP 통신을 지원하는 애플리케이션을 작성하는 임무가 있습니다. 지금까지는 모든 것이 잘 작동하지만 마지막 ntp 폴링이 성공했는지 여부를 알아야 합니다.

네트워크 케이블을 뽑으면 ntpstat는 다음날 아침에도 모든 것이 괜찮다고 알려줍니다. 하지만 밤새도록 NTP 통신이 없었습니다 ...

어떤 아이디어가 있나요?

감사합니다!

Ping은 좋은 해결책이 아닙니다. 서버에서 bc 응답을 끌 수 있거나 서버에 연결할 수 있지만 ntp 데몬이 실행되고 있지 않습니다.

답변1

직접 찾았습니다.

ntpq -pn에는 폴링이 성공하지 못할 경우 감소하는 "reach" 열이 있습니다.

답변2

대부분의 응용 프로그램은 모든 NTP 패킷이 도착했는지 여부를 신경 쓰지 않습니다. IP를 통한 UDP는 때때로 손실이 발생할 수 있습니다. ntpd는 계속해서 마지막으로 알려진 오프셋 및 드리프트를 기반으로 조정을 계속합니다. 실제로 대부분의 애플리케이션은 시간 동기화에 전혀 관심이 없습니다. 일부는 부팅 시 ntpd(또는 chronyd)가 시작될 때까지 기다릴 수 있습니다.

도달 임계값이 있는 오픈 소스 모니터링 스크립트 중 하나는 다음과 같습니다.ntpmon. 참고로 모든 ntp 소스의 75%가 성공한 것으로 간주합니다. 따라서 주어진 도달 범위에서 마지막 8개 패킷 중 6개는 8비트 숫자입니다. 여기에 오프셋 임계값을 더하면 인프라 모니터링을 위한 호스트 지표가 됩니다.

ntpstat는 아마도 다음을 참조할 것입니다.쉘 스크립트 ntpstat(이전 프로그램을 대체). 소스와 예상 오류가 인쇄됩니다. 그리고 NTP 데몬이 실행되지 않는 등 특정 경우에만 0이 아닌 반환 코드로 종료됩니다. ntpstat는 연결이 끊어진 사용 사례를 지원하기 위해 의도적으로 도달했는지 또는 해당 기능이 구현되지 않았는지에 대해 경고하지 않습니다.

관련 정보