Cloudera Manager 가 호스트에 The host's NTP service is not synchronized to any remote server 를 띄웠다. CM Agent 는 chronyd 가 떠 있으면 chronyc -c tracking / chronyc -c sources 결과를 파싱해 Host Clock Offset 을 판정한다. 이 경고는 chronyd 가 실제로 동기화되지 않았거나, Agent 가 chronyc 를 부르지 못하거나(cmdport 변경·패키지 없음), ntpd 와 충돌하는 경우에 난다. 이번 사례는 /etc/chrony.conf 의 상위 서버가 해외 ISP 의 NTP 라 방화벽에 막혀 소스가 0 개인 상태였다.
systemctl status chronyd
chronyc tracking # Reference ID 00000000 또는 Leap status : Not synchronised 면 실패
chronyc sources -v # ^* 마크가 없으면 도달 가능한 소스 없음, Reach 0 이면 차단
chronyc activity # 0 sources online 이면 확정
rpm -qa | grep -E 'chrony|ntp'; systemctl status ntpd 2>/dev/null
timedatectl status
chronyd -Q -p 0 'server <ntp-ip> iburst' # 특정 서버 도달 여부 즉석 확인
폐쇄망이면 CM 서버 노드 하나를 NTP 서버로 두고 나머지 노드가 그것을 보게 한다. 상위 서버가 없으면 local stratum 10 으로 자기 시계를 기준으로 삼는다.
# NTP 서버 노드 /etc/chrony.conf
server <upstream-ntp> iburst # 상위가 없으면 이 줄 제거
local stratum 10
allow <cluster-cidr>
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
firewall-cmd --permanent --add-service=ntp && firewall-cmd --reload
systemctl restart chronyd
# 나머지 노드 /etc/chrony.conf
server <ntp-server-node> iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
cmdport 323
systemctl restart chronyd
sleep 20
chronyc -n sources -v # ^* 마크, Reach 377
chronyc tracking | grep -E 'Reference ID|Ref time|Leap'
systemctl restart cloudera-scm-agent # CM UI 반영까지 수 분
외부 NTP 를 계속 쓰려면 네트워크팀에 클러스터 대역 → NTP 서버 UDP 123 을 요청하되, 해외 ISP NTP 는 지연과 불안정 때문에 사내 NTP 가 낫다.
bindcmdaddress 127.0.0.1 과 cmdport 323 을 지우면 CM Agent 가 chronyc 를 부르지 못해 동기화가 정상이어도 경고가 남는다.chronyd -Q <ip> 처럼 IP 만 주면 invalid directive 가 난다. -p 0 'server <ip> iburst' 형식으로 지시어 전체를 준다.