Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87390
  • 博文数量: 12
  • 博客积分: 155
  • 博客等级: 入伍新兵
  • 技术积分: 113
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-19 10:40
文章分类

全部博文(12)

文章存档

2017年(7)

2013年(1)

2012年(4)

分类: 系统运维

2017-06-28 17:51:29

应用场景:1.公司的dns不太稳定,好几次因为解析问题导致的业务故障,我想将每个dns服务器的解析时间记录下来,结合监控系统发报警;
    2.我们公司有自己的监控系统支持服务器post数据(json格式)到特定端口
   
现在如果不能解析,设置的解析时间为1000ms
cat dns_delay.sh 
#!/bin/bash
#Author: ying
#Date & Time: 2017-06-06 13:13:00
#Description: Name server monitoring.

#userage: sh dns_delay.sh [xxx.xxx.com] 

#目标域名
site=$1
site=${site:-}
#解析延时阈值
#expect=$2
#expect=${expect:-0.05}
#dns服务器地址
dnsnames=`cat /etc/resolv.conf|grep ^nameserver|awk -F ' ' '{print$2}'`


#查询本机所在节点
ns=`curl -s |awk -F '"' '{print$2}'`
#获取内网IP作为标示
InterIp()
{
        ifconfigIP=`/sbin/ifconfig -a|awk '/10\./||/10\./||/11\./'|head -n 1|awk '{print $2}'|awk -F: '{print $2}'`
        ifconfigIP=`echo $ifconfigIP|grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`
}
InterIp


for dnsname in `echo $dnsnames`
do
        #获取域名解析时间
#       delay=`curl -o /dev/null -s -w %{time_namelookup} $site`
                delay=`dig $site @$dnsname| grep Query |tail -1|cut -d ' ' -f 4`


        if [ $? -eq 0 ]
        then
                msg=`echo [{ \
                           "\"name\"":"\"dns.delay\"",\
                           "\"tags\"":{\
                           "\"domain\"":"\"$site\"",\
                           "\"dnsserver\"":"\"$dnsname\"" \
                                        },\
                           "\"value\"":"$delay " \
                        }]`


        else
                 msg=`echo [{ \
                           "\"name\"":"\"dns.delay\"",\
                           "\"tags\"":{\
                           "\"domain\"":"\"$site\"",\
                           "\"dnsserver\"":"\"$dnsname\"" \
                                        },\
                           "\"value\"":"1000" \
                        }]`
        fi
                curl -i -X POST -s -d "$msg"
done

exit 0

效果:

阅读(2371) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~