# 1.普通配置job
通常Prometheus 要增加一个target,需要在配置文件中已添加一个job,例如下:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
1
2
3
2
3
每次修改需要直接修改服务器上的配置文件,非常麻烦。Prometheus 提供了多种动态服务发现的功能,这里使用consul来做一个例子。
# 2.安装consul
docker run --name consul -d -p 8500:8500 consul
1
进入consul的ui界面
# 3.修改配置文件
- job_name: 'rabbitmq'
consul_sd_configs:
- server: '10.7.3.40:8500'
services: []
relabel_configs:
- source_labels: [__meta_consul_tags]
regex: .*rabbitmq.*
action: keep
#relabel_config表示向consul注册服务的时候, 只加载匹配regex表达式的标签的服务加载到自己的配置文件
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 4.向consul注册服务
curl -X PUT -d '{"id": "rabbitmq","name": "rabbitmq","address": "10.7.3.40","port": 15692,"tags": ["rabbitmq"],"checks": [{"http": "http://10.7.3.40:15692/metrics","interval": "5s"}]}' http://localhost:8500/v1/agent/service/register
1
# 5.验证test1服务是否已注册
# 6.验证prometheus界面
# 7.consul接口
# 删除服务接口
curl -X PUT http://localhost:8500/v1/agent/service/deregister/服务名
# 新增服务接口
http://localhost:8500/v1/agent/service/register
1
2
3
4
2
3
4