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

[经验分享] zabbix上使用自定义监控项监控域名

[复制链接]

尚未签到

发表于 2019-1-19 06:29:45 | 显示全部楼层 |阅读模式
  公司买了域名,解析到公网Ip 域名为xxx.xxxx.work,公网地址xxxx.xxxx.xxxx.xxxx,我们需要需要使用zabbix来监控域名解析是否正常,即域名能否解析到正确的公网地址,一旦解析错误,则告警。

  思路:
  1、使用不同的DNS都能够正确解析ip地址,如114.114.114.114,202.103.24.68
  2、编写脚本,判断解析是否正确,正确则输出1,不正确输出0
  2、zabbix上创建监控项,能够传递不同参数作为键值
  3、生成图形,告警
  一、dig
  dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常,它可以通过指定不同的DNS服务器来解析域名
  
  dig命令 (选项) (参数)

  @:指定进行域名解析的域名服务器;
  -b:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
  -f:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
  -P:指定域名服务器所使用端口号;
  -t:指定要查询的DNS数据类型;
  -x:执行逆向域名查询;
  -4:使用IPv4;
  -6:使用IPv6;
  -h:显示指令帮助信息。
  +time= :指定超时时间(秒)
  +short :只显示解析ip地址,不显示其他信息
  为了测试,以下为通过114.114.114.114解析www.163.com的地址来说明:
dig www.163.com +time=3 +short @114.114.114.114

  使用其他的DNS,如223.5.5.5

  可见,使用不同的dns服务器解析域名很有可能会得到不同的公网地址
  二、脚本编写
  我们需要脚本能够传递参数,参数就是域名和DNS服务器地址,同时判断解析的公网地址是否正确
#!/bin/bash
#srcipt name= dns_xxxx.xxxx.xxxx.xxxx.sh
A=$(dig $1 +time=3 +short @$2)
if [ $"$A"x = 'xxxx.xxxx.xxxx.xxxx'x ]        #此处为正确的公网ip
then
  echo 1
else
  echo 0
fi  执行脚本进行测试
bash  dns_xxxx.xxxx.xxxx.xxxx.sh xxx.xxxx.work 202.103.24.68

  可以看到脚本能够正常接收参数,而且输出正确结果
  三、zabbix自定义监控
  zabbix自定义的监控,在官网上有详细说明。

  本次监控方法使用zabbix_agent方式,agent端和server端运行在一台服务器上,自己调用自己的监控项。
  首先将脚本保存在/etc/zabbix下。其实这个路径可以随意指定

  然后配置zabbix_agentd.conf
vim /etc/zabbix/zabbix_agentd.conf  在286行,将UnsafeUserParameters=0修改为UnsafeUserParameters=1,表示使用自定义监控项
  在297行(根据情况)添加
  UserParameter=dns_xxxx.xxxx.xxxx.xxxx
  • ,/etc/zabbix/dns_xxxx.xxxx.xxxx.xxxx.sh $1 $2
      如下所示:

      说明:

    •   dns_xxxx.xxxx.xxxx.xxxx就是监控项名称,根据实际情况自定义
    •   
    • 代表使用任何参数
    •   ,逗号后/etc/zabbix/dns_xxxx.xxxx.xxxxx.xxxxx.sh 代表脚本路径
      4.$1 $2代表输入的参数

      在完成配置后,重启zabbix-agent生效

    systemctl restart zabbix-agent  我们还需要使用zabbix-get方法来获取监控项的值,看是否能够正常
    zabbix_get -s 127.0.0.01 -p 10050 -k "dns_xxx.xxxx.xxxxx.xxxx[xxx.xxxx.work,202.103.24.68]" #在本机获取监控项,[ ]中的参数用,逗号隔开

      通过如上步骤,证明自定义监控项配置成功
      四、配置zabbix图形及告警
      在zabbix网页中,新建主机,地址选择127.0.0.1本机,如下所示:

      创建监控项,按照如下方式进行

      说明:
      1、监控项名称随意,我的方式是域名@DNS服务器,如www.163.com@202.103.24.68,表示通过DNS服务器解析域名
      2、监控项严格配置,不能出错 dns_xxx.xxxx.xxxxx.xxxx[xxx.xxxx.work,202.103.24.68] ,不同参数用,逗号分开。不要多写和少些参数,参数顺序也不能错
      3、信息类型选择数字,方便生成图形,只有1和0
      4、更新间隔,推荐修改5分钟即300s,减少影响
      完成监控项后,检查监控项无报错信息,同时在最新数据中,能够获取信息,则说明监控项配置完成

      配置图形,选择监控项

      完成图形配置后,隔一段时间则能获取正确的图形

      最后配置触发器,比较简单,就是当平均5分钟内获取的值为0时告警,合适调整警告级别

      最后完成效果如下:


      五、合理监控
      因为自定监控项可以传递参数,理论上,我可以使用同一个监控项的不同参数的键值来进行组合监控,省时省力。
      例如
      www.163.com@223.5.5.5
      www.badi.com@8.8.8.8
      根据自己条件,合理监控,保证监控效果最好,监控最准确
      六、脚本优化
      修改脚本,可以接受三个参数$1,$2,$3,分别代表域名,dns服务器,解析的ip地址
    #!/bin/bash
    A=$(dig $1 +time=3 +short @$2)
    if [ ${A} = $3 ]
    then
      echo 1
    else
      echo 0
    fi



  • 运维网声明 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-664929-1-1.html 上篇帖子: 优化zabbix表结构的一些思考 下篇帖子: zabbix报警流程
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

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

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

    扫描微信二维码查看详情

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


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


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


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



    合作伙伴: 青云cloud

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