欢迎光临
我们一直在努力

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

②、加入任务计划

crontab -e

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

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

四、附加

这个脚本只是用于特定情况,并非常用功能,仅供参考!脚本核心功能使用的是 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) 打赏
未经允许不得转载:jobman » Linux操作系统DNS解析(nameserver)监控脚本
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

联系我们