prometheus服务发现,文件发现

发布时间 2023-04-14 11:41:48作者: 郭大侠1

【1】静态服务发现

- job_name: "nodes"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
    static_configs:
     - targets:  
        - 10.99.31.206:9100
        - 10.99.31.201:9100
        - 10.99.31.202:9100

【2】基于文件的服务发现 file_sd_configs

(2.1)yaml 和 json 格式

在Prometheus支持的众多服务发现的实现方式中,基于文件的服务发现是最通用的方式。这种方式不需要依赖于任何的平台或者第三方服务。对于Prometheus而言也不可能支持所有的平台或者环境。

  通过基于文件的服务发现方式下,Prometheus会定时从文件中读取最新的Target信息,因此,你可以通过任意的方式将监控Target的信息写入即可。

  用户可以通过JSON或者YAML格式的文件,定义所有的监控目标。

例如,在下面的yaml文件中分别定义了2个采集任务,以及每个任务对应的Target列表:

yaml格式

- targets: ['192.168.1.220:9100']
  labels:
    app:    'app1'
    env:   'game1'
    region: 'us-west-2'
- targets: ['192.168.1.221:9100']
  labels:
    app:    'app2'
    env:   'game2'
    region: 'ap-southeast-1'
json格式

[
  {
    "targets": [ "192.168.1.221:29090"],
    "labels": {
      "app": "app1",
      "env": "game1",
      "region": "us-west-2"
    }
  },
  {
    "targets": [ "192.168.1.222:29090" ],
    "labels": {
      "app": "app2",
      "env": "game2",
      "region": "ap-southeast-1"
    }
  }
]

(2.2)加额外的标签 labels

$ cat file_sd/test.yml
- targets:
   - "10.20.33.21:9100"
   - "10.20.33.90:9100"
  labels:
    hello: kitty
- targets:
   - "10.20.33.249:9100"
   - "10.20.33.105:9100"
  labels:
    hello: world

(2.3)prometheus 配置

  - job_name: 'file_sd_test'
    scrape_interval: 10s
    file_sd_configs:
    - files:
       - /data/prometheus/static_conf/*.yml
       - /data/prometheus/static_conf/*.json

这里要注意,静态文件 *.yml 的 job_name 会被 prometheus.yml 中的 job_name 覆盖。

  

 

(2.4)修改文件刷新频率

prometheus默认5m刷新一次文件内容,我们可以修改为30秒

  - job_name: 'file_sd_test'
    scrape_interval: 10s
    file_sd_configs:
    - refresh_interval: 30s # 30s重载配置文件
      files:
      - /data/prometheus/static_conf/*.yml
      - /data/prometheus/static_conf/*.json

通过这种方式,Prometheus会自动的周期性读取文件中的内容。当文件中定义的内容发生变化时,不需要对Prometheus进行任何的重启操作。

至此,完成。 curl -X POST localhost:9090/-/reload 即可

 

【参考文档】

转自:https://blog.csdn.net/w2009211777/article/details/123950688

参考:https://blog.csdn.net/lovely_nn/article/details/122209262