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.youkuaiyun.com/poorcoder_/article/details/79120218
https://blog.youkuaiyun.com/weixin_38645718/article/details/84773305
转载于:https://blog.51cto.com/1000682/2363038