问题:
在时间强相关的服务中,时间不同步导致监控失效
在测试中,我遇到了强时间相关的测试统计。需要同步不同服务器之间的时间。
之前看ntp时,发现ntp有如果时间差太大,则不同步的问题。并且,在实际使用中,也遇到使用了ntp时间同步差异大的问题。
再之后,我发现aws官方推荐使用chrony来进行数据同步。之后,采用chrony进行时间同步后,各服务器之间时间稳定,未再出现时间差不稳定的情况。
在查阅相关文档后,我们发现chrony在时间同步精确度上,优于ntp。 且chrony不存在时间差大时,不同步的问题。
在aws上安装配置chrony
chrony和安装使用
1、安装:
sudo apt install chrony
2、配置服务器地址:
以下是aws上的时间同步服务器
使用任何文本编辑器(如 vim 或 nano)打开 /etc/chrony/chrony.conf 文件。在该文件中已包含的任何其他 server 或 pool 语句前面添加以下行,然后保存您的更改:
这里的优先也很重要,让大家都同步同一台机器。
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
3、重启chrony
sudo /etc/init.d/chrony restart
4、确认 chrony 使用 169.254.169.123 IP 地址同步时间。
在返回的输出中,^* 指示首选的时间源。
chronyc sources -v
5、验证 chrony 报告的时间同步指标。
chronyc tracking
配置自己的chrony时间同步ntp服务器?
参考:
https://www.cnblogs.com/yinzhengjie/p/12292549.html
在server端配置文件中加allow
加上allow后,这个chrony就可以作为ntp服务器节点了。其他服务器可以来这里同步时间。
以下配置在/etc/chrony/chrony.conf 文件中即可。
all默认是让所服务器都可以来同步。 也可以加上一些子网限制
allow [all] [subnet]
allow 1.2.3.4
allow 1.2
allow 3.4.5
allow 6.7.8/22
allow 6.7.8.9/22
allow 2001:db8::/32
allow 0/0 allow ::/0
allow
客户端中自己配置的ntp服务
然后在客户端的服务器中/etc/chrony/chrony.conf中配置:即可。
其中的prefer很重要,不然在多个同步服务时,可能自己本地的ntp服务不被选中,会使用其他的源作为同步的时间选项。
server ip prefer iburst minpoll 4 maxpoll 4
参考文档:
建议使用chrony
https://www.hi-linux.com/posts/44857.html
aws上使用chrony:
使用chrony配置是几台服务器的时间同步。可以轻松的配置一个server, 其他的作为client到这个服务上同步时间。
https://www.cnblogs.com/yinzhengjie/p/12292549.html