重庆今天最新新闻,短视频seo公司,生猪期货交易平台 app,法治与安全做讲座网站本节重点介绍 :
基于文件的服务发现提供了一种配置静态目标的更通用的方法可以摆脱对特定服务发现源的依赖通常的做法是调用内部CMDB的接口获取target数据#xff0c;打上标签#xff0c;生成json文件发给prometheus采集
基于文件的服务发现模式
解决的问题
之前手动配置…本节重点介绍 :
基于文件的服务发现提供了一种配置静态目标的更通用的方法可以摆脱对特定服务发现源的依赖通常的做法是调用内部CMDB的接口获取target数据打上标签生成json文件发给prometheus采集
基于文件的服务发现模式
解决的问题
之前手动配置了很多个traget redismysqlblackboxpushgateway 手动配置维护成本高还容易出错
基于文件的服务发现配置
文档地址
特点
基于文件的服务发现提供了一种配置静态目标的更通用的方法并充当了插入自定义服务发现机制的接口。摆脱对特定服务发现源的依赖只要能正确给出 json/yaml文件即可和服务树的最好匹配方案
yaml文件类型
yaml
YAML yaml - targets: [ - host ] labels: [ labelname: labelvalue ... ]
举例
- targets: - 172.20.70.205:9100- 172.20.70.215:9100labels:account: aliyun-01 region: ap-south-1json文件类型
json [ { targets: [ host, ... ], labels: { labelname: labelvalue, ... } }, ... ]举例
[{targets: [172.20.70.205:9100],labels: {account: aliyun-01,region: ap-south-1,env: prod,group: inf,project: monitor,stree_gpa: inf.monitor.prometheus}},{targets: [172.20.70.215:9100],labels: {account: aliyun-02,region: ap-south-2,env: prod,group: inf,project: middleware,stree_gpa: inf.middleware.kafka}}
]下面来解读一下
targets 是一组实例地址的列表labels 是这组实例的标签应用到列表中所有实例如果想每个实例不同的标签可以将targets列表保留一个实例即可标签可以自定义下面举几个例子 account 代表公有云账户多账户情况region 代表区域env 代表所属环境 prod代表生产pre代表预发test代表测试group代表业务大组project 代表项目stree_gpa 代表服务树三级标签 那么prometheus在采集对应target时就会将对应标签打入其metrics中为后续我们按照标签过滤提供方便
配置举例
files 代表 文件路径 支持通配符refresh_interval 代表 文件刷新间隔 - job_name: node_exporterscrape_interval: 30sscrape_timeout: 10smetrics_path: /metricsscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/node_exporter.jsonrefresh_interval: 5m改造为服务发现类型
将 blackbox-http 和 node_exporter 改为文件发现prometheus 配置
- job_name: blackbox-httpmetrics_path: /probe# 传入的参数params:module: [http_2xx] # Look for a HTTP 200 response.scrape_interval: 15sscrape_timeout: 10sscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/blackbox_http.jsonrefresh_interval: 2mrelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: 172.20.70.205:9115 - job_name: node_exporter# metrics的path 注意不都是/metrics# 传入的参数scrape_interval: 30sscrape_timeout: 10sscheme: httphonor_timestamps: falsefile_sd_configs:- files:- /opt/app/prometheus/sd/node_exporter.jsonrefresh_interval: 2m
创建sd目录
mkdir -pv /opt/app/prometheus/sd/写入json文件 cat EOF /opt/app/prometheus/sd/node_exporter.json
[{targets: [172.20.70.205:9100],labels: {name: prome-master01,account: aliyun-01,region: ap-south-1,env: prod,group: inf,project: monitor,stree_gpa: inf.monitor.prometheus}},{targets: [172.20.70.215:9100],labels: {name: prome-node01,account: aliyun-02,region: ap-south-2,env: prod,group: inf,project: middleware,stree_gpa: inf.middleware.kafka}}
]
EOFcat EOF /opt/app/prometheus/sd/blackbox_http.json
[{targets: [172.20.70.205:9115,http://prometheus.io,http://www.baidu.com,https://www.baidu.com]}
]
EOF
reload prometheus观察target页面 和 sd结果页面修改文件 blackbox_http.json 新增 https://github.com/ 的探测
cat EOF /opt/app/prometheus/sd/blackbox_http.json
[{targets: [172.20.70.205:9115,http://prometheus.io,http://www.baidu.com,https://www.baidu.com,https://github.com/]}
]
EOFcurl -X POST http://localhost:9090/-/reload
本节重点总结 :
基于文件的服务发现提供了一种配置静态目标的更通用的方法可以摆脱对特定服务发现源的依赖通常的做法是调用内部CMDB的接口获取target数据打上标签生成json文件发给prometheus采集