zabbix server数据采集对时间同步的要求比较高,因为被监控的主机时间快了,会导致数据读取失败等问题,时间慢了,会有一堆的因为数据写入延时产生的误告警,会发生告警恢复时间比告警产生时间早的情况。本文以Centos8为例,系统默认使用chrony做为同步工具,类似国产的麒麟V10系统、华为Open Eular等基于同发行版linux内核为基础的系统也是默认使用chrony工具。本文主要以内网节点时间同步为例,如有时间同步服务器,可以按需配置。
集群场景:数据库集群可以使用主节点作为同步服务器;k8s-kubsphere集群使用master作为同步服务器。
以k8s集群为例:
先配置master的同步文件
命令:vim /etc/chrony.conf
也可以取消 #hwtimestep * 的注释,让系统和硬件时间同步
启动同步服务
systemctl enable chronyd && systemctl start chronyd
重启同步服务
systemctl restart chronyd
其他节点配置,每个节点的操作一样
命令:vim /etc/chrony.conf
然后systemctl enable chronyd && systemctl start chronyd
查看同步命令 timedatectl
timedatectl
Local time: 三 2022-09-14 15:13:07 CST
Universal time: 三 2022-09-14 07:13:07 UTC
RTC time: 三 2022-09-14 07:13:06
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
如果System clock synchronized: yes这里不是yes,则执行以下几个命令强制同步
同步在所有的节点执行,然后在其他节点执行chronyd重启
重启chronyd
systemctl restart chronyd
在节点执行:
强制同步
chronyc -a makestep
自动同步
timedatectl set-ntp true
查看同步源
chronyc sources -v
正常的情况下会显示如下:
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.110.51 10 10 77 871 -3481ns[-3755ns] +/- 79us
出现这个^*结尾的就说明集群时间已经同步了,可以继续下一步操作,如果后面是 ^?,开头的,则重复在节点执行同步步骤,直到后面如上面结果显示。
错误信息