Prometheus 通过consul动态加载配置文件

1)通常Prometheus 要增加一个target,需要在配置文件中已添加一个job,例如下:

- job_name: 'prometheus'
        static_configs:
            - targets: ['localhost:9090']

每次修改需要直接修改服务器上的配置文件,非常麻烦。Prometheus 提供了多种动态服务发现的功能,这里使用consul来做一个例子。

2) docker启动consul

    docker run --name consul -d -p 8500:8500 consul

进入consul的ui界面

3)修改prometheus配置文件, 向prometheus注册

    - job_name: 'consul'
        consul_sd_configs:
            - server: '192.168.1.51:8500'
                services: []
        relabel_configs:
            - source_labels: [__meta_consul_tags]
                regex: .*dev.*
                action: keep

    relabel_config表示向consul注册服务的时候, 只加载匹配regex表达式的标签的服务加载到自己的配置文件

3)向consul注册服务

curl -X PUT -d '{"id": "test1","name": "test1","address": "192.168.1.42","port": 9100,"tags": ["dev"],"checks": [{"http": "http://192.168.1.42:9100/","interval": "5s"}]}'     http://localhost:8500/v1/agent/service/register

4)在consul注册页面查看, test1服务已经注册上来了

5)验证prometheus界面, 配置文件已经加载进来

相应的数据prometheus通过exporter获取到了

6)consul接口

删除服务接口: curl -X PUT  http://localhost:8500/v1/agent/service/deregister/服务名
新增服务接口: http://localhost:8500/v1/agent/service/register

参考文档:
https://blog.csdn.net/poorcoder_/article/details/79120218
https://blog.csdn.net/weixin_38645718/article/details/84773305

转载于:https://blog.51cto.com/1000682/2363038

你可能感兴趣的:(Prometheus 通过consul动态加载配置文件)