使用prometheus和blackbox_exporte进行业务服务监控
这里分享一个用于黑盒监控的blackbox_exporter, 可以用于对http,https,tcp,dns以及ICMP协议进行探测,从而抓取数据进行监控。但是,这些对于我们来说究竟能解决什么用处。
我们可以通过blackbox_exporter对服务进行状态码监测,我们可以在代码中查看返回成功的状态码是哪些,状态码监测规则可以通过下图看出。
这样的话,我们就可以判断服务是否还在正常的工作,网站有没有出现不可访问,站在用户的角度上进行对服务资源监控。当然这里还可以对支持https的证书的有效期进行监控,看下图,有两个域名的证书还有一年半的时间到期。只要数据采集到了,我们就可以通过数据进行有效的告警,不用专门的再去写拓展服务区监控证书到期时间了。
同样的Blackbox_exporter也可以为域名的DNS做解析的探测,尝试不同的DNS对域名服务解析是否出现问题,比如我这里做的效果图。
同样的,blackbox_exporter如Github中介绍所说的,可以做http,https,tcp,icmp,DNS等探测,所以你可以通过自己的需求进行数据的采集,让系统的数据说话。
下面我们讲讲如何实现这些数据采集以及监控:第一步还是安装,准备一个blackbox_exporter的Agent,让它作为代理去为我们采集数据。
首先我们应该准备一个探针模块作为blackbox_exporter的配置文件blackbox_exporter.yml,这里我们使用HTTP、DNS两个模块作为演示案例
配置文件准备好之后,我们就可以开始运行blackbox_exporter 容器了。
运行起来之后,查看一些容器的运行日志
假设我们这里有现成的Promtheus服务。我们现在就可以将blackbox_exporter写进promtheus服务
仔细看一下prometheus的配置文件,我们会发现检查项都是通过动态文件来发现的,其中blackbox_dns.json用于发现待需检查的域名,blackbox_http.json用于发现使用http模块嗅探服务正常的配置文件,下面我们需要在prometheus的配置文件的同级目录下加入这两个文件。
blackbox_dns.json
blackbox_http.json
这样我们实现了针对DNS,http两种探测指针的演示,我们看一下Prometheus中Http模块监测状态
同样的,我这里使用了Grafana用于对HTTP监测的数据进行图标的展示,这里分享Dashboard的ID为9965和7587
【7587】
【9965】
我们会不定期的分享一些技术文章,有需要的可以关注一下哦。