Zabbix使用自定义监控项监控域名

前言

身为公司一名小IT,最近经常出现公司的app相关域名打不开的情况,链路正常,但是就是有一些资源加载不出来,所以在大群里面经常被吐槽。被吐槽完还说,公司网络有问题,用4G正常,这还了得,姑姑能忍,婶婶不能忍。经过排查,最终发现为dns解析的问题,有一些资源由于DNS不能正常打开,导致页面白屏。尝试切换链路,和切换DNS均无果。遂找运维大佬求助。大佬说“no data,no bb”,得了。我做监控吧,拿数据说话。


思路

  1. 拿到相关域名,找到几个公网的DNS,由于之前发现114等DNS会出现解析不出来的情况,不知道是否被劫持,通过不同的dns返回的数据来判断是否正常。
  2. 编写脚本,判断解析是否正确,正确输入1,不正确输入0,其实这个对我的情况并不友好,因为监控的为cdn域名,不会解析成固定的某一个IP地址,如果能做到值为空,则为0,则对我来说,会好很多,这样缺乏说服力;
  3. zabbix生成监控项,做事做全套,生成图形,告警就没必要了,我这目的是为了减少吐槽。

一、 dig

是常用的域名查询工具,可以用来测试域名系统工作是否正常。

1
➜  ~ dig www.baidu.com +time=3 +short @202.106.0.20|head -1

简单说一下上面的参数:
+time=:指定超时时间(秒)
+short:只显示ip地址,不显示其他信息
|head -1:只显示第一行
image

二、 脚本编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost ~]#vim checkdns.sh

#!/bin/bash
URL=`dig $1 +time=3 +short @$2|head -1`

#echo $"$URL"

#if [ ${URL}x = $3x ]
if [ $"$URL"x = $3x ]
then
echo 1
else
echo 0
fi

三、 测试

1
[root@localhost zabbix]# vim /etc/zabbix/zabbix_agentd.conf

image

通过zabbix_get来验证脚本是否正常

1
2
3
4
5
6
[root@localhost zabbix]# chmod 777 checkdns.sh
[root@localhost zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k "checkdns[www.baidu.com,114.114.114.114,baidu]"
www.a.shifen.com.
0
[root@localhost ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "checkdns[www.baidu.com,114.114.114.115,baidu]"
ZBX_NOTSUPPORTED: Timeout while executing a shell script.

image

解决方案
(1) 修改zabbix中的zabbix_server.conf:

1
2
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
Timeout=30

image

(2)修改zabbix_agentd的zabbix_agentd.conf

1
2
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
Timeout=30

image

(3) 重启zabbix服务端和脚本所在客户端

1
2
3
4
[root@localhost ~]# service zabbix-server restart
Redirecting to /bin/systemctl restart zabbix-server.service
[root@localhost ~]# service zabbix-agent restart
Redirecting to /bin/systemctl restart zabbix-agent.service

(4)测试

1
2
3
[root@localhost ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "checkdns[www.baidu.com,114.114.114.115,baidu]"

0

四、 配置zabbix图形及告警

  1. 新建主机,地址选择127.0.0.1本机,如图所示
    image
  2. 创建监控项,按照如下方式进行
    image
  3. 创建图形
    image

  4. 看看成果
    image

参考链接(如果看不懂的可以去看哈):

http://www.mamicode.com/info-detail-1928343.html
https://blog.51cto.com/11555417/2164073?utm_source=oschina-app