注册服务脚本:

#!/bin/bash

export HOSTNAME=`hostname`
export IP=`ip address show dev eth0 | grep -v inet6 | grep inet | awk '{print $2}' | awk -F '/' '{print $1}'`

curl -X PUT -d "{
\"id\": \"${HOSTNAME}\",
\"name\": \"${HOSTNAME}\",
\"address\": \"${IP}\",
\"port\": 9100,
\"tags\": [\"prometheus-server\"],
\"checks\": [
{\"http\": \"http://${IP}:9100/metrics\", \"interval\": \"15s\"}
]}" http://10.32.215.16:8500/v1/agent/service/register

取消注册:$ID为注册时的id字段。

curl -X PUT http://172.30.12.167:8500/v1/agent/service/deregister/${ID}

启动命令:

nohup ./consul agent -dev -ui -data-dir=/usr/local/consul/data -config-dir=/usr/local/consul/config -client=0.0.0.0 &

prometheus.yml中添加的配置:

  - job_name: 'pve'
    scrape_interval: 30s
    scrape_timeout:  30s
    consul_sd_configs:
    - server: '10.32.215.105:8500'
      services: []

参考文章:

blog.csdn.net/aixiaoyang168/article/details/103022342