一、起源
項目現場的同事說發(fā)現CDH很不穩(wěn)定,CM沒有掛,但是CM管理的Zookeeper、Kafka和Agent都全部掛掉,而且很準時,基本上是每天都在晚上一點鐘掛掉。
二、問題查找
2.1 定時任務查找
第一反應,這么有規(guī)律是不是系統(tǒng)定時重啟或者crontab執(zhí)行的結果那,用uptime和crontab -l并沒有查到相關命令。
Agent exiting; caught signal 15
2.2 日志查看
查看了下agent的日志,發(fā)現里面有收到停止信號所以停止,但是誰發(fā)送給agent這個停止命令那,非常奇怪,晚上一點鐘是不會有人操作的,所以排除了人為可能。
三、問題根源
后來有同事說,他是做了時鐘同步 ,是通過ntptime做的,是直接編輯/etc/crontab文件在這里面加的內容。
00 1 * * * root ntpdate -u xxx.xx.xx.xx
又找了下大神,大神說ntptime在集群環(huán)境是不建議用的,因為同步時間比較暴力(不是了解),建議改成chronyc 進行時鐘同步。
3.1 配置agent機器chrony時鐘同步
vim /etc/chrony.conf
#最后一行:
server DIST iburst
#改成如下內容: xx.xx.xx.xx 為時鐘服務器的ip地址
server xx.xx.xx.xx iburst
3.2 去掉發(fā)布機的時鐘同步服務
在CDH的發(fā)布機上去掉/etc/chrony.conf除了加上時鐘服務器的ip地址外,還需要屏蔽
#CDH的發(fā)布服務器去掉:
#log measurements statistics tracking
#Serve time even if not synchronized to any NTP server.
#原理是發(fā)布機器其實也提供了時鐘同步,這個是去掉發(fā)布機本身的時鐘同步。
#local stratum 10
#allow all
3.3 重啟時鐘同步服務
service chronyd restart
3.3 驗證時間同步服務器是否設置生效

image.png
ReferencdID為時間同步服務器的IP地址。
最后狀態(tài)為Normal表示正常。
至于為什么要選擇chrony作為時鐘同步服務器,在網上找個理由:

image.png