当前位置: 首页 > news >正文

24.3 基于文件的服务发现模式

本节重点介绍 :

  • 基于文件的服务发现提供了一种配置静态目标的更通用的方法
  • 可以摆脱对特定服务发现源的依赖
  • 通常的做法是调用内部CMDB的接口获取target数据,打上标签,生成json文件发给prometheus采集

基于文件的服务发现模式

解决的问题

  • 之前手动配置了很多个traget
    • redis
    • mysql
    • blackbox
    • pushgateway
  • 手动配置维护成本高,还容易出错

基于文件的服务发现配置

  • 文档地址

特点

  • 基于文件的服务发现提供了一种配置静态目标的更通用的方法
  • 并充当了插入自定义服务发现机制的接口。
  • 摆脱对特定服务发现源的依赖
  • 只要能正确给出 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-1"

json文件类型

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_exporter'scrape_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-http'metrics_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结果页面
  • image.png
  • 修改文件 blackbox_http.json 新增 https://github.com/ 的探测
  • image.png
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采集
http://www.lryc.cn/news/456832.html

相关文章:

  • 【Java】面向UDP接口的网络编程
  • SRS服务器搭建
  • iMazing只能苹果电脑吗 Win和Mac上的iMazing功能有区别吗
  • ChatGPT可以分析股票吗?
  • Dockerfile搭建镜像
  • Kubernetes-Kind篇-01-kind搭建测试集群
  • 在UniApp中高效处理大量文件请求的策略
  • docker compose入门4—常用命令
  • wps文本框文字居中对齐
  • 注册信息页面
  • 详解Java中的BIO、NIO、AIO
  • CAN和CANFD如何转换和通信
  • QDateTimeEdit Class
  • Windows环境安装CentOS7
  • 用docker启动mysql步骤
  • [Linux] Linux 初识进程地址空间 (进程地址空间第一弹)
  • 力扣21~25题
  • 04. prometheus 监控 Windows 服务器
  • 【机器学习】——决策树以及随机森林
  • 怎么选择合适的数据恢复软件?适用于 Windows 的数据恢复软件对比
  • CI/CD 和 DevOps 工具概述:Jenkins 、Docker 的概述、工作流程、对比
  • 基于SpringBoot+Vue+uniapp的高校教务管理小程序系统设计和实现
  • 如何在 Ubuntu VPS 上从 Apache Web 服务器迁移到 Nginx
  • pikachu靶场总结(一)
  • No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析
  • QD1-P8 HTML格式化标签
  • WordPress修改固定链接后301的重定向方法
  • 关于Allegro导出Gerber时的槽孔问题
  • 平时使用的正则总结
  • [万字解析]从零开始使用transformers微调huggingface格式的中文Bert模型的过程以及可能出现的问题