一、 exporter简介
- exporter诞生的原因:大多数监控无法直接提供监控接口(本身不支持HTTP接口、安全性、稳定性、代码耦合等)
- exporter是一个采集监控数据并通过prometheus监控规范对外提供数据的组件
- 官方实现的exporter:blackbox_exporter、consul_exporter、graphite_exporter、haproxy_exporter、memcached_exporter、mysqld_exporter、node_exporter、statsd_exporter
- 第三方实现的exporter:Redis exporter、RabbitMQ exporter等
- prometheus会周期性地调用exporter提供的metrics数据接口来获取数据
- exporter通过被监控对象提供的监控相关的接口获取监控数据(HTTP/HTTPS、TCP、本地文件(node)、标准协议方式)
- 官方主要依赖库:go、java、scala、python、ruby等
二、工作原理
- prometheus只会采集指定格式的监控信息
- exporter按照prometheus规定的格式采集各种软件的监控信息,并提供http接口(mysql、node、consul、rabbitMQ等)
- 部分exporter在采集监控信息时需要获取一定的权限用于采集指定信息(如:mysql)
- 类似于多功能充电线,什么品牌的手机选择对应型号的线即可;不同的软件选择对应exporter即可
上一章我们使用了node_exporter,接下来,我们将展开介绍更多exporter。
三、 blackbox-exporter
blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集。
blackbox-exporter的应用场景:
- HTTP 测试
定义 Request Header 信息
判断 Http status / Http Respones Header / Http Body 内容 - TCP 测试
业务组件端口状态监听
应用层协议定义与监听 - ICMP 测试
主机探活机制 - POST 测试
接口联通性 - SSL 证书过期时间
安装与配置
cd /packages
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.19.0/blackbox_exporter-0.19.0.linux-amd64.tar.gz
tar xvfz blackbox_exporter-0.19.0.linux-amd64.tar.gz
mv blackbox_exporter-0.19.0.linux-amd64 blackbox_exporter
添加到开机自启
// 创建文件 /etc/systemd/system/blackbox_exporter.service
[Unit]
Description=blackbox_exporter
Documentation=https://github.com/prometheus/blackbox_exporter
[Service]
ExecStart=/packages/blackbox_exporter/blackbox_exporter \
--config.file=/packages/blackbox_exporter/blackbox.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload // 加载新的systemd配置
systemctl enable blackbox_exporter.service // 设置开机自启
systemctl start blackbox_exporter.service // 启动blackbox_exporter
systemctl status blackbox_exporter.service // 查看启动状态
默认占用9115端口,记得防火墙开放该端口