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

[经验分享] zabbix监控DNS服务

[复制链接]

尚未签到

发表于 2017-12-31 21:31:10 | 显示全部楼层 |阅读模式
  为了方便公司内部访问jira、wiki等内网应用服务,我们搭建了DNS服务,为全公司提供域名解析服务,重要性可想而知,因此,有了监控的需求,这里记录下使用zabbix来监控dns的过程。

监控DNS分为三部分


    • 端口监控(53)


    • 日志监控(/var/log/messages中出现named.*fatal)


    • 解析域名监控(脚本定时dig www.baidu.com)

监控实施:


  为了方便迁移,结构清晰,使用创建模板,在模板中定义监控项(Items)、触发器(trigger),然后在主机中链接模板。这样以后再增加或者迁移dns服务,直接套用模板就行了。

端口监控
  配置—模板–创建模板—-输入模板名称,然后点保存。
  
模板创建成功后,开始创建监控项:
  
配置—模板—DNS模板—-监控项—-创建监控项
  
DSC0000.png
  
填写名称、类型、键值,其他默认即可。创建完成后,点保存。
  创建监控项,监控项可以去获取数据了。但是想要报警还需要添加触发器(trigger)来触发报警。
  
配置—-模板—DNS模板—触发器—创建触发器
  
DSC0001.png

日志监控
  同样在DNS模板中创建日志的监控项。
  
DSC0002.png
  这里需要重点说一下监控项中的:键值(key)
  
log[/var/log/messages,named.*fatal,,skip,]
  zabbix的日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。
  
在配置Item的时候,类型选择Zabbix agent (active),这里主要需要配置的是键值(Key)。下面是监控日志的两种key——log和logtr。
  
log[/path/to/some/file,,,,,]
  
logtr[/path/to/some/filename_format,,,,,]
  
regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录
  
◆ encoding:编码相关,留空即可
  
◆ maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的’MaxLinesPerSecond’,我们也可以留空
  
◆ mode:默认是all,也可以是skip,skip会跳过老数据
  
◆ output:输出给zabbix server的数据。可以是\1、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。
  
logtr和log唯一的区别是:logtr支持文件名的正则表达式,如日志名位www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,log监控不了,这时候就需要用logtr了。

监控原理及注意事项
  

  

1、Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,并且分别记录在字节计数器和最新的时间计数器中。  
2、Agent会从上次读取日志的地方开始读取日志。
  
3、字节计数器和最新时间计数器的数据会被记录在Zabbix数据库,并且发送给Agent,这样能够保证Agent从上次停止的地方开始读取日志。
  
4、当日志文件大小小于字节计数器中的数字时,字节计数器会变为0,从头开始读取文件。
  
5、所有符合配置的文件,都会被监控。
  
6、一个目录下的多个文件如果修改时间相同,会按照字母顺序来读取。
  
7、到每个Update interval的时间时,Agent会检查一次目录下的文件。
  
8、Zabbix Agent每秒发送日志量,有一个日志行数上限,防止网络和CPU负载过高,这个数字在zabbix_agentd.conf中的MaxLinePerSecond。
  
9、在logtr中,正则表达式只对文件名有效,对文件目录无效。
  

  

  

  好,配置好监控项后,我们来配置触发器:
  
DSC0003.png
  表达式内容说明:如果监控项获取的数据中出现了fatal则为1(真),如果60s之内没数据,则为0(假),也就是说只有60s内出现了新数据,并且出现了fatal,这个时候触发器表达式成立,才会触发报警。

域名解析监控(dig)
  测试DNS解析域名功能,这个zabbix自带的监控项已经无法实现了。这时需要我们来自定义监控项。
  
自定义监控的配置过程如下:


  • 编写监控脚本,获取监控项的具体值
  • 在zabbix_agentd.conf文件中定义UserParameter
  • 在界面配置item  
    4.添加触发器(Trigger)

编写监控脚本
  

  


  • #!/bin/bash
  • URL=`dig www.baidu.com +time=3 +short @10.0.254.113|head -1`
  • # 以10.0.254.113为dns服务器,解析www.baidu.com 超时3s。
  • if [ $"$URL"x = 'www.a.shifen.com.'x ]
  • then
  •   echo 1
  • else
  •   echo 0
  • fi
  

  

  判断得到的域名是不是百度的cname,这里要注意后边都有个x,这个是重点,如果dig命令得到的结果为空的话,就是x = 'www.a.shifen.com.x',但如果没有这个x,那么' ' = 'www.a.shifen.com.x' 这样会报错的。

在zabbix_agent.conf.d目录下创建一个zabbix_checkdns.conf的文件
  

  


  • cat /home/ddd/zabbix_agent/etc/zabbix_agentd.conf.d/zabbix_dns.conf
  • UserParameter=chk.dns
  • ,/bin/bash /home/ddd/zabbix_agent/etc/scripts/zabbix_checkdns.sh
  

  

  chk.dns就是在添加监控项(items)时的键值(key),当zabbix配置chk.dns这个key的时候,就会执行后边配置的命令:/bin/bash /home/ddd/zabbix_agent/etc/scripts/zabbix_checkdns.sh,
  
而chk.dns[]表示[]可以接受参数,比如chk.dns[www.baidu.com,192.168.30.1],这时候执行脚本的时候就变成了 /bin/bash /home/ddd/zabbix_agent/etc/scripts/zabbix_checkdns.sh  www.baidu.com   192.168.30.1,chk.dns[]中的值对应执行脚本的时候就会变成1," role="presentation">,1,2.。。,
  
这个大家可以根据需求在自定义脚本的时候使用。

在界面配置items:
DSC0004.png

  
这个就非常简单了。

添加触发器
DSC0005.png

  
最近三次的值都为0,则触发器成立,触发报警。

运维网声明 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-430368-1-1.html 上篇帖子: Tomcat java zabbix 监控 下篇帖子: zabbix 配置SNMP监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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