利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

2022-12-23 2212阅读

温馨提示:这篇文章已超过599天没有更新,请注意相关的内容是否还可用!

服务器时间校准非常重要,因为很多应用服务都需要基于时间,如果服务器系统时间不准确,就会出现很多问题。 虽然我们可以通过部署NTP时间服务器来进行校准,但是有时候会觉得不够安全,而这一点往往被很多运维人员所忽视。 还是会有很大的偏差。 因此,我们最好的办法就是监控服务器系统时间,当时间偏差超过我们设置的范围时,发出告警通知我们,以便我们及时发现问题并进行处理。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

我们使用Zabbix监控系统来监控Linux服务器的系统时间。

1、登录Zabbix web界面,点击配置->主机->创建监控项。 选择“system.localtime”作为键值获取系统时间,默认值为UTC时间1970年1月1日00:00:00到现在的秒数。 您可以设置单位“unixtime”并将其转换为“yyyy.mm.dd hh:mm:ss”格式。 然后可以根据实际情况设置自定义的监控时间间隔。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

2. 创建触发器。 选择功能为“fuzzytime”,当服务器时间与Zabbix Server的时间差超过10秒时触发告警。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

3、查看最新数据,可以得到这台Linux服务器的时间。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

4. 测试。 登录这台Linux服务器,使用“date”命令设置时间,使与Zabbix Server服务器时间的时间差大于10s。 此时成功收到触发告警的邮件,测试成功。

Zabbix自带的fuzzytime函数与Zabbix Server服务器时间进行对比。 我们最好的办法当然是将其与NTP时间服务器进行比较。 如果NTP服务器和Zabbix Server是同一个服务器,那么这个就解决了。 但是大多数情况下,NTP服务器是另外一台服务器,那么我们如何创建监控呢? 大致思路是被监控的Linux主机获取远程NTP服务器的时间,然后与自己本地的时间进行比较。 对于Linux服务器,可以通过编写shell脚本,然后通过Zabbix自定义参数进行监控来实现。

1、登录NTP服务器,安装xinetd服务,这样远程主机就可以通过rdate命令获取NTP服务器的时间。

yum 安装 -y xinetd

修改“/etc/xinetd.d/time-stream”配置。 “禁用=是”更改为“禁用=否”。

启动 xinetd。

systemctl 启动 xinetd

2. 登录被监控的Linux服务器,测试是否可以使用rdate命令获取到NTP服务器的时间值。 并使用以下命令将从NTP服务器获取的时间转换为UTC时间1970年1月1日00:00:00到现在的秒数。

date --date="`rdate 192.168.52.100|sed q|sed 's/^.*]\ *//g'`" '+%s'

获取本机时间值的命令也转换为上述格式。

日期“+%s”

这样我们就可以写一个shell脚本来比较两个时间值。

# vi /usr/share/shell/timediff.sh

#!/bin/sh

NTPTIME=$(date --date="$(rdate 192.168.52.100 | sed q | sed 's/^.*]\ *//g')" '+%s')

本地时间=$(日期 '+%s')

如果 [ $NTPTIME -ge $LOCALTIME ]

然后

TIMEDIFF=$(($NTPTIME-$LOCALTIME))

回声“$TIMEDIFF”

别的

TIMEDIFF=$(($LOCALTIME-$NTPTIME))

回声“$TIMEDIFF”

赋予脚本可执行权限。

chmod +x /usr/share/shell/timediff.sh

3、编辑zabbix agent配置文件,创建自定义键值,获取两者的时间差值。

vi /etc/zabbix/zabbix_agentd.conf

……

UserParameter=checktime,sh /usr/share/shell/timediff.sh

配置完成后,重启Zabbix Agent。

systemctl 重启zabbix-agent

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

4.登录Zabbix网页界面。 创建监控项,这里手动输入键值,创建自定义键值。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

5. 创建触发器。 比如当与NTP服务的时间差大于10s时时间服务器,就会触发告警通知我们。

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

利用Zabbix监控系统监测Linux服务器系统时间是否准确完美实现

6. 测试。 使用“date”命令修改时间,使时间与NTP服务器时间相差大于10s。 此时成功收到触发告警的邮件,测试成功。

这样,我们就可以使用Zabbix来监控Linux系统时间了。 下一期将为大家带来Windows系统时间的监控。 Widows系统可以使用Python编写可执行程序来实现。 欢迎大家关注! 另外,如果同学们需要全面学习Zabbix监控系统时间服务器,可以订阅我的专栏课程~

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]