设为首页 收藏本站
查看: 1167|回复: 0

[经验分享] zabbix监控服务器时间问题

[复制链接]

尚未签到

发表于 2017-12-31 17:54:29 | 显示全部楼层 |阅读模式
  zabbix中有自带对linux服务器时间进行监控的模板,用的key是system.localtime返回当前的系统时间,而配置tigger报警时是用的fuzzytime(N)方法,该方法是将返回的系统时间与监控服务器的时间进行对比,如果大于N,则报警。
  存在一下3个问题:
  1、监控服务器并不一定是ntp服务器:这种情况下也就说是系统时间是与非NTP服务器对比的时间。
  2、取到被监控系统的时间,然后再返回给监控服务器,当监控项数量大,或监控出现延时队列的时候。就会产生误报。
  3、对于windows server服务器没有相应的模版。
  正好业务上有一批搭载系统为windows server的服务器,而业务对时间要求比较高。
  下面是我的解决办法:
  第一,利用下面的bat脚本设置windos时间同步服务器
  @echo off
  @REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters /v NtpServer /t REG_SZ /d "10.13.255.1,0x9\0 10.13.255.2,0x9\0 0.cn.pool.ntp.org,0x9" /f
  @echo off
  @REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters /v Type /t REG_SZ /d NTP /f
  @echo off
  echo ------------------------------------
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t REG_DWORD /d 60 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxAllowPhaseOffset /t REG_DWORD /d 3600 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxNegPhaseCorrection /t REG_DWORD /d 3600 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxPosPhaseCorrection /t REG_DWORD /d 3600 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v PhaseCorrectRate /t REG_DWORD /d 7 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MinPollInterval /t REG_DWORD /d 3 /f
  @echo off
  REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config /v MaxPollInterval /t REG_DWORD /d 4 /f
  @echo off
  sc triggerinfo w32time start/networkon
  @echo off
  gpupdate /force
  @echo off
  w32tm /resync
  @echo off
  net stop w32time
  net start w32time
  说明:
  "10.13.255.1,0x9\0 10.13.255.2,0x9\0 0.cn.pool.ntp.org,0x9"
  以上地址只适用于本人的托管机房
  第二编写用于对比时间的python脚本
  

import time  import ntplib
  import sys
  import os
  def main():
  try:
  ntp_client = ntplib.NTPClient()
  response = ntp_client.request('s2g.time.edu.cn')
  ntp_timeStamp = response.tx_time
  ntp_date = time.strftime('%Y-%m-%d', time.localtime(ntp_timeStamp))
  ntp_time = time.strftime('%X', time.localtime(ntp_timeStamp))
  except:
  print u'无法获取到s2g.time.edu.cn上面的时间戳'
  sys.exit()
  '''获取本地服务器时间戳'''
  local_timeStamp = time.time()
  '''获取之间的差值'''
  diff = abs(ntp_timeStamp - local_timeStamp)
  print diff
  if __name__ == '__main__':
  main()
  

  windows下可以使用pyinstaller打包成exe可执行文件
  第三在zabbix_agentd.conf中添加自定义的key
  UserParameter=custom.timediff.count,"D:\bat\get_time.exe"
  重启zabbix服务
  第四添加监控和触发器,本人设置当时间不一致超过3秒就出发报警。
  这个,相信大家都会,就不多说了
  第五触发报警后,可在服务器上执行
  同步时间
  w32tm /resync

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430323-1-1.html 上篇帖子: zabbix 常用监控模板 下篇帖子: Zabbix部署-LNMP环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表