prometheus基于文件的服务发现

ops/2024/9/24 6:29:04/

之间讲到,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'] # 另一组targetslabels: # 为这一组targets内的所有target增加labelenvironment: 'production' # labels也可写多个

node_exporter2.json:

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

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


http://www.ppmy.cn/ops/107013.html

相关文章

金融企业业务中台应用架构设计

金融企业的业务基于价值链分解为渠道需求、产品需求、营销需求,运营需求、风险需求五大方面。业务中台内部可以划分为产品中台、渠道中台、营销中台和运营中台。 产品中台 负责金融产品研发全生命周期的流程,关注于创意评估、需求分析、方案设计、产品运营等产品研发流程,产…

Python高效实现支持最小元素检索的栈

Python高效实现支持最小元素检索的栈 在Python面试中,考官通常会关注候选人的编程能力、问题解决能力以及对Python语言特性的理解。一个常见的面试题目是实现一个栈,支持 push、pop、top 操作,并能在常数时间内检索到最小元素。本文将详细介绍如何实现这个功能,确保代码实…

Python Opencv鼠标回调

使用 OpenCV 的 cv2.setMouseCallback() 方法来捕捉鼠标事件,并实现以下功能: 实时在鼠标指针附近显示其位置的像素坐标。通过左键双击,将像素坐标记录到数组中。通过右键点击,取消上一次添加的坐标。 下面是实现代码的示例&…

python3删除es 45天前索引,生产环境验证过

本人es版本 环境 pip install --upgrade elasticsearch==7.16.3代码 from datetime import datetime, timedelta from elasticsearch import Elasticsearch

走迷宫(BFS)

给定一个 nmnm 的二维整数数组,用来表示一个迷宫,数组中只包含 00 或 11,其中 00 表示可以走的路,11 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1)(1,1) 处,已知该人每次可以向上、下、左、右任意…

数据结构代码集训day13(适合考研、自学、期末和专升本)

题目来自:B站up白话拆解数据结构 今日题目如下: 设线性表 L ( a1,a2,a3…,an-2,an-1,an) 采用带头结点的单链表保存,链表中结点定义如下:typedef struct node {int data…

2024最新Redis面试题含答案

(3)、队列 Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操…

超市会员管理系统

1.会员实体类 import java.io.Serializable;//会员实体类 public class SuperPojo implements Serializable {private String name; //会员姓名private String pwd; //会员密码private int cardId; //会员卡号private int cardNum; //会员积分priva…