一、起源
项目现场的同事说发现CDH很不稳定,CM没有挂,但是CM管理的Zookeeper、Kafka和Agent都全部挂掉,而且很准时,基本上是每天都在晚上一点钟挂掉。
二、问题查找
2.1 定时任务查找
第一反应,这么有规律是不是系统定时重启或者crontab执行的结果那,用uptime和crontab -l并没有查到相关命令。
Agent exiting; caught signal 15
2.2 日志查看
查看了下agent的日志,发现里面有收到停止信号所以停止,但是谁发送给agent这个停止命令那,非常奇怪,晚上一点钟是不会有人操作的,所以排除了人为可能。
三、问题根源
后来有同事说,他是做了时钟同步 ,是通过ntptime做的,是直接编辑/etc/crontab文件在这里面加的内容。
00 1 * * * root ntpdate -u xxx.xx.xx.xx
又找了下大神,大神说ntptime在集群环境是不建议用的,因为同步时间比较暴力(不是了解),建议改成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 去掉发布机的时钟同步服务
在CDH的发布机上去掉/etc/chrony.conf除了加上时钟服务器的ip地址外,还需要屏蔽
#CDH的发布服务器去掉:
#log measurements statistics tracking
#Serve time even if not synchronized to any NTP server.
#原理是发布机器其实也提供了时钟同步,这个是去掉发布机本身的时钟同步。
#local stratum 10
#allow all
3.3 重启时钟同步服务
service chronyd restart
3.3 验证时间同步服务器是否设置生效

image.png
ReferencdID为时间同步服务器的IP地址。
最后状态为Normal表示正常。
至于为什么要选择chrony作为时钟同步服务器,在网上找个理由:

image.png
