美文网首页
阿里云ECS集群服务器时间同步解决方案

阿里云ECS集群服务器时间同步解决方案

作者: henry技术探索记录员 | 来源:发表于2020-03-18 23:45 被阅读0次

    分布式集群服务器时间同步

    服务器端项目经常依赖服务器系统时间对api校验和业务操作,在分布式集群服务器的环境下,各个服务器的本地系统时间可能各不相同,这时系统时间就有差错,可能会导致网络请求校验失败或业务执行失败。因此服务器时间同步是非常重要的。

    阿里云ECS服务器实例提供了NTP服务器

    阿里云ECS实例已经提供了NTP服务器支持,直接启动已配置好的NTP服务即可。
    《阿里云NTP服务器》
    《配置Linux实例NTP服务》

    在开启服务前,先确保环境配置:

    • 服务器开启UDP 123端口,可通过设置ECS实例的安全组,由于本人用的是VPC同地域私有云服务器,在购买ECS实例时统一用同一个安全组配置实例,确保UDP 123端口开通。
    • 命令行输入sudo vi /etc/ntp.conf,查看NTP配置文件,发现ECS已配置好标准的NTP服务:
      image.png

    文档《配置Linux实例NTP服务》中介绍了CentOS环境下开启NTP服务。
    由于本人购买的Ubuntu服务器,下面总结Ubuntu环境下的配置。
    执行命令查询所有服务,看ntp服务是否已开启(+号:已开启;-号:未开启):

    service --status-all
    
    image.png

    发现香港地区的服务默认都没有开启ntp服务;但深圳地区的服务器默认已经开启了ntp服务。
    执行命令查询ntp进程,发现深圳服务器默认已经开启了ntp服务:

    ps -aux | grep ntp
    
    image.png

    如果未开启ntp服务,执行命令开启ntp服务:

    service ntp restart
    

    开启成功后,如图:


    image.png

    或者查询ntp相关的进程:


    image.png

    重启后通过如下命令观察NTP的运行状态:

    watch ntpq -p
    
    image.png

    这个命令可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:

    remote: 它指的就是本地机器所连接的远程NTP服务器;
    refid: 它指的是给远程服务器提供时间同步的服务器;
    st: 远程服务器的层级别(stratum). 由于NTP是层型结构,有顶端的服务器,多层的Relay Server再到客户端。所以服务器从高到低级别可以设定为1-16. 为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器的;
    when: 几秒钟前曾经做过时间同步化更新的动作;
    poll: 本地机和远程服务器多少时间进行一次同步(单位为秒).
    在一开始运行NTP的时候这个poll值会比较小,那样和服务器同步的频率也就增加了,可以尽快调整到正确的时间范围.之后poll值会逐渐增大,同步的频率也就会相应减小;
    reach: 已经向上层 NTP 服务器要求更新的次数;
    delay: 网络传输过程当中延迟的时间,单位为 10^(-6) 秒;
    offset: 时间补偿的结果,单位与 10^(-3) 秒;
    jitter: Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。简单地说这个数值的绝对值越小我们和服务器的时间就越精确;
    *: 它告诉我们远端的服务器已经被确认为我们的主NTP Server,我们系统的时间将由这台机器所提供;
    +: 它将作为辅助的NTP Server和带有号的服务器一起为我们提供同步服务. 当号服务器不可用时它就可以接管;
    -: 远程服务器被clustering algorithm认为是不合格的NTP Server;
    x: 远程服务器不可用;

    配置文件

    /etc/ntp.conf ntp配置文件
    /usr/share/zoneinfo 时区对应档案
    /etc/sysconfig/clock 设定时区
    /etc/localtime 开机后对应文件复制到此处
    /bin/date 时间修改与显示
    /sbin/hwclock 硬件时间
    /usr/sbin/ntpd ntpd服务
    /usr/sbin/ntpdate 客户端时间校证

    配置选项解释:
    1) 系统时间与BIOS事件的偏差记录

    driftfile /etc/ntp/drift

    2) restrict 控制相关权限。

    语法为: restrict IP地址 mask 子网掩码 参数
    其中IP地址也可以是default ,default 就是指所有的IP

    • 参数有以下几个:

    ignore :关闭所有的 NTP 联机服务
    nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
    notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
    noquery :不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询ntp服务器
    notrap :不提供trap远端登陆:拒绝为匹配的主机提供模式 6 控制消息陷阱服务。陷阱服务是 ntpdq 控制消息协议的子系统,用于远程事件日志记录程序。
    nopeer :用于阻止主机尝试与服务器对等,并允许欺诈性服务器控制时钟
    kod : 访问违规时发送 KoD 包。
    restrict -6 表示IPV6地址的权限设置。

    参考《ubuntu安装和使用NTP》

    相关文章

      网友评论

          本文标题:阿里云ECS集群服务器时间同步解决方案

          本文链接:https://www.haomeiwen.com/subject/onphyhtx.html