c# 差值 获取时间_利用Zabbix监控系统监测Linux服务器系统时间是否准
服务器时间校准是非常重要的,因为很多应用服务都是需要基于时间的,服务器系统时间如果不准确的话就会产生很多问题。虽然我们可以通过部署NTP时间服务器来进行校准,但是有时候感觉还不够保险,而这往往也是很多运维人员忽视的一个地方,认为有NTP校准就万事大吉了,殊不知某种原因会导致服务器的时间仍旧会偏差很大。因此我们最好的办法还是应该把服务器系统时间监测一下,当时间偏差超过我们设置的范围时发送告警通知我们,这样我们才能及时发现问题并进行处理。 我们利用Zabbix监控系统对一台Linux服务器系统时间进行监测。 1.登录Zabbix Web界面,点击配置->主机->创建监控项。键值选择“system.localtime”获取系统时间,默认获取到的值为从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数。可设置单位“unixtime”服务器监控系统, 转换为 “yyyy.mm.dd hh:mm:ss”格式。然后可根据实际情况设置自定义监测时间间隔。 2.创建触发器。选择函数为“fuzzytime”,当服务器时间与Zabbix Server之间的时间相差10秒以上时触发告警。 3.查看最新数据,可以获取到这台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 install -y xinetd 修改“/etc/xinetd.d/time-stream”配置。“disable = yes”改为“disable = no”。 启动xinetd。 systemctl start xinetd 2.登录到被监控Linux服务器上,测试使用rdate命令可以获取到NTP服务器的时间值。并使用如下命令将从NTP服务器获取到的时间转换成从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数。 date --date="`rdate 192.168.52.100|sed q|sed 's/^.*] *//g'`" '+%s' 本机获取时间值的命令,也转换为以上格式。 date '+%s' 这样我们就可以编写一个shell脚本来比较这两个时间值了。 # vi /usr/share/shell/timediff.sh #!/bin/sh NTPTIME=$(date --date="$(rdate 192.168.52.100 | sed q | sed 's/^.*] *//g')" '+%s') LOCALTIME=$(date '+%s') if [ $NTPTIME -ge $LOCALTIME ] then TIMEDIFF=$(($NTPTIME-$LOCALTIME)) echo "$TIMEDIFF" else TIMEDIFF=$(($LOCALTIME-$NTPTIME)) echo "$TIMEDIFF" fi 赋予脚本可执行权限。 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 restart zabbix-agent 4.登录到Zabbix Web界面。创建监控项,键值这里手工输入创建的自定义键值。 5.创建触发器。比如当与NTP服务的时间差值大于10s时,触发告警通知我们。 6. 测试。使用“date”命令改变时间,使之与NTP服务器时间相差大于10s,此时成功收到触发告警的邮件,测试成功。 这样我们利用Zabbix监测Linux系统时间就完成了,下期为大家带来监测Windows系统时间,Widows系统可以使用Python编写一个可执行程序去实现,欢迎大家关注!另外如果有同学需要全面地学习Zabbix监控系统可以订阅我的专栏课程咯~ (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |