$ cd
$ vi prometheus_config.yaml
...
...
- job_name: 'consul'
consul_sd_configs:
- server: 'prometheus-consul-ui'
...
...

说明:因为consul-ui服务地址如果重启会发生变化,所以这里选择服务名
2、重新导入配置
$ kubectl delete -f prometheus_config.yaml
$ kubectl apply -f prometheus_config.yaml
3、重启Prometheus服务
$ kubectl get po |grep prometheus-server |awk '{print $1}' |xargs -i kubectl delete po {}
4、通过consul接口注册数据
$ curl -X PUT -d '{"id": "k8s-master01","name": "k8s-master01","address": "192.168.1.31","port": 9100,"tags": ["service"],"checks": [{"http": "http://192.168.1.31:9100/","interval": "5s"}]}' http://10.0.195.154/v1/agent/service/register
上面参数说明:
-X PUT: 指定 HTTP 请求方法为 PUT,这表示要创建或更新资源-d '{"id": "k8s-master01", "name": "k8s-master01", "address": "192.168.1.31", "port": 9100, "tags": ["service"], "checks": [{"http": "http://192.168.1.31:9100/", "interval": "5s"}]}': 这是 HTTP 请求的请求体,包含一个 JSON 格式的数据。JSON 数据描述了要注册的服务的各种属性,包括服务的唯一标识 ID (id)、名称 (name)、地址 (address)、端口 (port),以及健康检查信息 (checks)。这些属性是 Consul 用于识别和管理服务的重要信息http://10.0.195.154/v1/agent/service/register: 这是目标 Consul Agent 的 API 地址。在这个地址上,Consul Agent 暴露了一组 REST API 用于管理服务和健康检查等。v1/agent/service/register是用于注册服务的特定 API 路径。10.0.195.154(prometheus-consul-ui服务地址)
5、打开浏览器输入http://192.168.1.31:31093访问Prometheus,观察到已自动发现192.168.1.31主机
