现在开始对时
NTP
NTP (Network Time Protocol),是一个用于同步各个节点上时间的协议。随着互联网的发展和数据量的增大,网络上节点越来越多,由于各种各样的原因,时间并不是一致的,有的时区不同,有的快,有的慢。这种不一致一方面给人分析日志带来了麻烦,另一方面,很多集群应用都依赖于节点间的时间同步,如Hadoop等等。这就要求采取一些措施来保持各个节点间的时间一致。
此外,调整时间幅度过大也会带来一些问题,如服务器认为收到了“未来”的包,处于安全等考虑会选择丢弃。NTP协议中时间的同步是平滑的,即慢慢微调直至时间的最终同步。
需要说明的是,网络环境很复杂,多么先进的时间同步协议也无法在理论上保证每个节点上的时间是严格一致的,只能说,差值越小越好。
调整时区
由于服务器系统安装时间不同,所在区域不同等各种因素,很多节点上时区设置不同,尽管在对于程序而来问题不大,但是对于人来说可读性不高,所以尽量是把集群内的所有节点设置成一样的时区。
1 | # 删除当前本地时区软链接 |
部署 ntp 服务端
首先同步一次 ntp 服务端节点的时间,避免跟真实时间相差太多
1 | date -s "$(curl -sD - google.com | grep '^Date:' | cut -d' ' -f3-6)Z" |
1 | # 安装 ntp 相关服务 |
因为 ntp 流量较大,目前国内的可靠 ntp 服务器较少,而且实际上我们并不是要将时间跟真实时间同步,最大的目的还是为了保持各个节点间时间的一致性,所以修改配置文件,优先取本地时间。
1 | # 删除原配置文件中 ntp 服务器(可选) |
1 | # 在末尾添加本地时间配置 |
1 | # 开启启动 ntp 服务 |
可以使用 ntpstat
命令来查看当前的同步状态。
部署 ntp 客户端
假设 ntp 服务端节点的 IP 是 192.168.1.1
1 | # 安装 ntp 相关服务 |
可以使用 ntpstat
命令来查看当前的同步状态。