专栏首页张戈的专栏Linux操作系统DNS解析(nameserver)监控脚本

Linux操作系统DNS解析(nameserver)监控脚本

一、起因

昨天,开发组兄弟发现 resin 日志出现不少支付宝业务报错信息,用户用支付宝购买了产品,钱到账后公司系统却未返回支付成功状态!

这还得了?用户明明支付成功了,结果却显示未到账!!!必须赶紧解决,用户投诉是小,用户流失就大了!仔细分析日志后,发现是解析支付宝接口域名(mapi.alipay.com)时出现延时,导致获取不到支付成功的返回信息!

检查发现 OpenSUSE 的 nameserver 居然是谷歌的公用 DNS:8.8.8.8!!!尼玛,不出问题才怪呢!

二、解决

虽然阿里新推出了公用 DNS:223.5.5.5,223.6.6.6,但这是内部解析外部域名,所以就近的 nameserver 是最快的,于是赶紧给换成了公司专用的 nameserver,问题立马解决了!

然后批量替换了 200 多台服务器中的 nameserver 为 8.8.8.8 的问题系统,以绝后患。

三、绸缪

仔细考虑后,决定加上 nameserver 的相关监控:

①、编写脚本:

vim mon_nameserver

#!/bin/bash
#Author: ZhangGe
#Date & Time: 2014-06-24 12:22:40
#Description: Name server monitoring.
#目标域名
site=$1
site=${site:-www.baidu.com}
#解析延时阈值
expect=$2
expect=${expect:-0.05}
#获取内网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
#获取域名解析时间
delay=`curl -o /dev/null -s -w %{time_namelookup} $site`
#比较与报警(sendmesg是公用消息发送脚本)
if [ $? -eq 0 ];then
        if [ `expr $delay \> $expect` == 1 ];
        then
           /usr/local/t_mon/sendmesg.sh zhangge "$ifconfigIP NS Delay $delay s"
        fi
else
           /usr/local/t_mon/sendmesg.sh zhagnge "$ifconfigIP Name Server Error"
fi
exit 0

②、加入任务计划

crontab -e

#NameServer Check
*/5 * * * * /usr/local/t_mon/mon_nameserver.sh mapi.alipay.com 0.3

每五分钟执行一次,检查 mapi.alipay.com 的解析时长,若解析失败或时间大于 0.3s 则发送报警信息到监控 APP 上。 下面是将延时阈值设置为 0.001s 的测试报警截图:

四、附加

这个脚本只是用于特定情况,并非常用功能,仅供参考!脚本核心功能使用的是 curl 获取域名解析时长,下面简单的补充一下 curl 部分参数:

  • time_namelookup:DNS 解析域名的时间
  • time_commect:client 和 server 端建立 TCP 连接的时间
  • time_starttransfer:从 client 发出请求;到 web 的 server 响应第一个字节的时间
  • time_total:client 发出请求;到 web 的 server 发送会所有的相应数据的时间
  • speed_download:下周速度  单位 byte/s

更多 curl 详细说明请 man 或自行搜索。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 禁止百度转码和百度快照缓存的META声明

    今天手机 site 中国博客联盟时,发现网被转码了,虽然这个网站没做移动站,但是我也不希望被百度转码,因为这相当于拦截了所有来自手机的流量。下面说一下禁止百度转...

    张戈
  • 企业互联网+转型实战:如何进行PB级别数据的架构变迁

    随着 DT 时代的来临,数据对于企业经营决策的价值日益凸显,而企业在进行互联网+转型的过程中,如何让数据架构平滑迁移到大数据平台,对于传统业务的转型升级至关重要...

    张戈
  • Linux+Nginx/Apache/Tomcat新增SSL证书,开启https访问教程

    上上篇文章《nginx 平滑升级&新增模块》提到了公司的 https 访问需求。当我新增了 SSL 模块之后,却发现以前还真没部署过 https 访问。 下面整...

    张戈
  • electron实现类似QQ来新消息时的闪烁与任务栏窗口提醒

    公司项目有一款带即时聊天、群组功能的APP,因为要给客服人员使用,需要开发PC版本。之前使用C#开发过一个PC版本,但是C#的UI这一块支持的不太好,而且升级比...

    meteoric
  • MVC和Webapi的区别

    Mvc主要用于构建网站,在后端实现了一套完整的MVC开发框架,默认使用Razor视图引擎。

    小蜜蜂
  • AutoKeras---自动机器学习

    Auto-Keras是用于自动机器学习的开源软件库。目的是让仅拥有一定数据科学知识或机器学习背景的行业专家可以轻松地应用深度学习模型。

    我被狗咬了
  • 【JS】218-JavaScript简史:从网景到前端框架三巨头

    从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了。尽管 JavaScript 最初只是一个浏览器脚本语言,但是...

    pingan8787
  • 币读说人话之科普系列一:到底什么是分片技术?

    前段时间参与的区块链峰会,以太坊社区的爱好者给币读菌科普了什么是分片技术,听得币读菌是一愣一愣的,专业术语太多了,完全听不懂哇。 今日币读菌联系到一位技术大咖,...

    企鹅号小编
  • Windows定时关机

    Windows 系统设置定时关机的小窍门你知道吗?电脑还有未下载完的小姐姐?可惜又太想睡觉,你可能需要设置个定时关机。

    神无月
  • 盗版网络小说对行业的危害性

    随着互联网的迅猛发展,无论是数字音乐、电影、网络小说都随着互联网的进步而发光发热。很多热门的网络小说改编影视作品的热映,网络小说的影响力也与日俱增,成为了互联网...

    墨者安全科技

扫码关注云+社区

领取腾讯云代金券