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

prometheus基于文件的服务发现

之间讲到,prometheus监控的对象就来自于他的配置文件里面的targets,如果要新增被监控对象,就继续往targets里面加。

但这个缺点是,每次修改完后都得重启prometheus。有没有什么办法,能在不重启的情况下增加target呢?有,那就是prometheus的服务自动发现

今天咱们讲一个最常用的方式,基于文件的服务发现(File-Based-Service-Discovery)

1 将默认配置文件做如下修改:

# ...
scrape_configs:
  - job_name: "prometheus"

# 注释掉之前静态配置的内容
#    static_configs:
#      - targets: ["localhost:9090"]

# 修改服务发现为 File-Based-Service-Discovery:
    file_sd_configs:
    - files:
      - '/prometheus/targets/*.yml'  # 读取此目录下的所有 .yml 和 .json 文件
      - '/prometheus/targets/*.json'
      refresh_interval: 10s  # 每10秒钟读取一次,支持 s/m/h

2 启动promethus容器

docker run -d -p 9090:9090 \
-v $(pwd)/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml \ # 使用上面修改的配置文件,替换容器内的配置文件
-v /prometheus/targets:/prometheus/targets \
--name prometheus --rm bitnami/prometheus

3 在上面指定的目录下增加以下配置文件:
node_exporter1.yml:

- targets: ['ip1:9200'] # 一组targets内可写多个target

- targets: ['ip2:9200'] # 另一组targets
  labels: # 为这一组targets内的所有target增加label
    environment: 'production' # labels也可写多个

node_exporter2.json:

[
  {
    "targets": ["ip3:9200"]
  },
  {
    "targets": ["ip4:9200"],
    "labels": {"environment": "develop"}
  }
]

新增target时,可以增加文件,也可以直接修改文件内容,prometheus都能识别到
进入prometheus网页,点击Status>Targets
在这里插入图片描述


http://www.kler.cn/a/287082.html

相关文章:

  • 基于python+Django+mysql鲜花水果销售商城网站系统设计与实现
  • 学习ASP.NET Core的身份认证(基于JwtBearer的身份认证6)
  • 前端常见标签
  • Docker 学习总结(85)—— docker cp 使用总结
  • 5、docker-compose和docker-harbor
  • Ubuntu 24.04 LTS 安装 Docker Desktop
  • 百日草花语探秘:天长地久的情感寄托与丰富内涵解析
  • 基于Virtex UltraScale+ VU13P FPGA的4路FMC接口基带信号处理平台
  • Python测试之测试覆盖率统计
  • Linux:SQLite 数据库
  • 安卓13 鼠标右键作返回键,鼠标事件修改
  • Vidda电视X Ultra等加入能效补贴,京东天猫可买量大管饱
  • 【验证码逆向专栏】某某滑块逆向分析
  • Java常见设计模式
  • 第二证券:三大因素将共同推动悲观情绪修复 风格阶段性趋于平衡
  • 【算法】二分查找
  • ARM32开发——(二十一)ADC系统工作原理
  • MobaXterm 终端工具使用
  • 【JVM】执行引擎、JIT、逃逸分析(二)
  • SQLite3 数据库
  • 【Python机器学习】NLP分词——词的“情感”
  • 力扣1353.最多可以参加的会议数目
  • 集成电路学习:什么是FPGA现场可编程门阵列
  • 官方宣布Navicat免费使用!
  • docker快速安装node
  • 反爬虫策略收录集