一、 概述
前言
在建设接口管理平台,需要对所有接口的连通性进行检测,监测平台接口情况,进行统计和预警,因接口数量众多,且后续可能也会进行可视化展示和分析,决定使用prometheus监控体系进行监测。前后调研和实验最终决定方案如下,进行记录和分享
架构示意图
blackbox_exporter模块
blackbox_exporter是Prometheus 官方提供的 exporter 之一,可以提供 http、dns、tcp、icmp 的监控数据采集,可用于检测接口连通性
Consul 实现target动态化
因 Prometheus添加 target默认使用文件方式进行配置,只适用于固定target方式,针对需要动态新增检测目标的情况,官方提供了多种目标发现的支持,考虑到可以使用API进行灵活添加数据,选用Consul作为服务发现中间件。
二、安装和配置
安装Consul
下载地址:https://www.consul.io/downloads
下载后进行解压 启动
./consul agent -dev -ui -node=consul-dev -client=192.168.119.128 -advertise 192.168.119.128
随后访问 http://ip:8500/ 可以进入web管理界面
通过API方式管理服务
我新增一个 http://10.10.3.27:81服务用于测试
curl -X PUT -d
'{
"id":"testnode",
"name":"test",
"address":"10.10.3.27",
"port":81,"tags":["prometheus-target"],
"checks":[{"http":"10.10.3.27:81","interval":"15s"}]
}'
http://192.168.119.128:8500/v1/agent/service/register
删除服务的请求为
curl -X PUT http://192.168.119.128:8500/v1/agent/service/deregister/{id}
也可在Consul web看到服务情况
安装blackbox_exporter
下载地址: https://prometheus.io/download/ 下载后解压,进入文件夹后 直接运行 ./blackbox_exporter 默认监听端口为9115
编辑prometheus.yml 加入blackbox_exporter配置
- job_name: 'blackbox_http_2xx' # 配置get请求检测
scrape_interval: 30s
metrics_path: /probe
params:
module: [http_2xx]
consul_sd_configs:
#consul 地址
- server: '192.168.119.128:8500'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 192.168.119.128:9115
注意:172.19.155.133:9115 为blackbox_exporter的服务地址
重启prometheus
访问http://ip:9990/api/v1/query?query=probe_success 返回如下:
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"__name__": "probe_success",
"instance": "10.10.3.27:81",
"job": "blackbox_http_2xx"
},
"value": [
1650266997.219,
"1"
]
},
{
"metric": {
"__name__": "probe_success",
"instance": "192.168.119.128:8300",
"job": "blackbox_http_2xx"
},
"value": [
1650266997.219,
"0"
]
}
]
}
}
得到 instance 10.10.3.27:81的连接状态 为 “1”,处于活动状态
可以安装grafana后进行数据可视化监控
相关链接
发表评论