prometheus下载慢_使用Grafana和Prometheus监控网站访问情况

公司使用Dnsmasq作为内部DNS resolver,选择Dnsmasq主要是因为安装方便且配置简单,整个服务比较轻量级,还有就是我们的DNS服务器不是任何域的“Authoritative DNS server”,只起一个请求转发的作用。

写在前面

前一阵配置了两个上游DNS,一个是服务提供商的DNS,一个是阿里的公共DNS,但使用中有不少问题(这里不细说了),还有延时偶尔比较大。因为这个原因,将服务提供商的DNS换成了谷歌的公共DNS。这样配置后,消停了一段时间,昨天有同事反馈访问百度特别慢,赶紧排查下,发现Dnsmasq返回的IP地址是香港的:

c6f8526a15459ae3397ae3e27d27d291.png

返回香港的IP

Dnsmasq上游配置了阿里和谷歌的公共DNS,大概率是谷歌公共DNS返回了香港的IP,测试后,真是这样:

......;; ANSWER SECTION:www.baidu.com.638INCNAMEwww.a.shifen.com.www.a.shifen.com.91INCNAMEwww.wshifen.com.www.wshifen.com.91INA103.235.46.39;; Query time: 24 msec;; SERVER: 8.8.8.8#53(8.8.8.8)......

要保证国外网站不被解析错误,还要保证国内网站不能解析出国外IP,这让我很犯难。为了早发现这个问题,先将几个重要网站监控起来。

监控方法

监控主要依赖“script_exporter”(github有源码),它的实现原理比较简单:自定义监控脚本,脚本返回非0或超时,监控结果就是失败,反之,就是成功。

为了方便在OpenShift 4集群上部署,将服务放在容器中运行,下面是Dockerfile文件:

FROM debian:busterCOPY ./script-exporter /bin       //源码从github下载后,自行编译COPY ./dns-monitor/ /tmp        //配置文件和检测脚本都放到/tmp目录下COPY ./sources.list /etc/apt/sources.list  //用了清华的源,默认的太慢了RUN apt-get update     && apt-get install -y curl     && rm -rf /var/lib/apt/lists/*EXPOSE 9172ENTRYPOINT  [ "/bin/script-exporter" ]CMD ["-config.file=/tmp/script-exporter.yml", "-config.shell=/bin/bash"]

容器“/tmp”目录下主要是两个文件,“script-exporter”的配置文件和监控脚本。

“script-exporter”配置文件:

scripts:  - name: check-lagou    script: /tmp/check-lagou.sh     timeout: 3    //超过3秒,认为检测失败

监控脚本“check-lagou.sh”

#!/bin/bashfunction curl_check() {curl -I -L -s "$1" | egrep 'HTTP.*200' > /dev/null //加上“-L”选项,因为可能会发生重定向[ $? -eq 0 ] && return 0 || return 1}if curl_check "https://www.lagou.com"; then  //访问lagou的首页    exit 0else    exit 1fi

Prometheus配置

“script_exporter”访问链接“http://IP/probe?pattern=.*”得到全部metrics,因此配置Prometheus如下:

......  - job_name: 'zhaopin-website'    scrape_interval: 2m   //2分钟采集一次就够了,不用太频繁    metrics_path: '/probe'    params:        pattern: ['.*']    static_configs:      - targets:         - script-exporter.apps.okd-infra.example.com

Metrics显示如下:

58fb4ee1621f2e5c40f725c9350c2d0f.png

Metrics展示

监控脚本的执行结果和执行时间都有了,配置Grafana,效果如下:

e621ca6ffe24bedbf249b2156ea6beca.png

Grafana展示

配置了告警,如果出现问题会发通知出来,给我排查DNS问题留出时间。

希望这篇文章能帮到正在努力的你,欢迎点赞评论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值