前言
身为公司一名小IT,最近经常出现公司的app相关域名打不开的情况,链路正常,但是就是有一些资源加载不出来,所以在大群里面经常被吐槽。被吐槽完还说,公司网络有问题,用4G正常,这还了得,姑姑能忍,婶婶不能忍。经过排查,最终发现为dns解析的问题,有一些资源由于DNS不能正常打开,导致页面白屏。尝试切换链路,和切换DNS均无果。遂找运维大佬求助。大佬说“no data,no bb”,得了。我做监控吧,拿数据说话。
思路
- 拿到相关域名,找到几个公网的DNS,由于之前发现114等DNS会出现解析不出来的情况,不知道是否被劫持,通过不同的dns返回的数据来判断是否正常。
- 编写脚本,判断解析是否正确,正确输入1,不正确输入0,其实这个对我的情况并不友好,因为监控的为cdn域名,不会解析成固定的某一个IP地址,如果能做到值为空,则为0,则对我来说,会好很多,这样缺乏说服力;
- zabbix生成监控项,做事做全套,生成图形,告警就没必要了,我这目的是为了减少吐槽。
一、 dig
是常用的域名查询工具,可以用来测试域名系统工作是否正常。
1 | ➜ ~ dig www.baidu.com +time=3 +short @202.106.0.20|head -1 |
简单说一下上面的参数:
+time=:指定超时时间(秒)
+short:只显示ip地址,不显示其他信息
|head -1:只显示第一行
二、 脚本编写
1 | [root@localhost ~]#vim checkdns.sh |
三、 测试
1 | [root@localhost zabbix]# vim /etc/zabbix/zabbix_agentd.conf |
通过zabbix_get来验证脚本是否正常
1 | [root@localhost zabbix]# chmod 777 checkdns.sh |
解决方案
(1) 修改zabbix中的zabbix_server.conf:
1 | [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf |
(2)修改zabbix_agentd的zabbix_agentd.conf
1 | [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf |
(3) 重启zabbix服务端和脚本所在客户端
1 | [root@localhost ~]# service zabbix-server restart |
(4)测试
1 | [root@localhost ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "checkdns[www.baidu.com,114.114.114.115,baidu]" |
四、 配置zabbix图形及告警
- 新建主机,地址选择127.0.0.1本机,如图所示
- 创建监控项,按照如下方式进行
创建图形
看看成果
参考链接(如果看不懂的可以去看哈):
http://www.mamicode.com/info-detail-1928343.html
https://blog.51cto.com/11555417/2164073?utm_source=oschina-app