prometheus consul 动态发现服务

安装cosnul

  1. wget https://releases.hashicorp.com/consul/0.8.1/consul_0.8.1_linux_amd64.zip
  2. unzip consul_0.8.1_linux_amd64.zip
  3. mv consul /usr/local/bin 
  4. consul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=consul1 -bind=consul服务器ip  
  -client=0.0.0.0(允许哪些客户端访问)  -dc=dc1 (-ui 有ui界面)

1. - server 表示是server模式
2. - bootstrap-expect=2 表示是集群中有2台服务器 bootstrap该模式node可以指定自己作为leader , 如果是非 leader可不加该参数
3. - data-dir=/tmp/consul 目录
4. - node=n2 该服务器节点名
5.- bind=192.168.56.101 节点绑定的ip
6 - ui 非必须 webui的路径 用web来管理consul
7. - dc=dc1 集群的名称
8 -config-dir /etc/consul.d 配置文件目录

consul 操作

查看节点 consul members
将节点加入集群 consul join 192.168.56.101
注册: 
首先写一个json文件
{
  "ID": "userServiceId", //服务id(相同服务内不要重复 会覆盖)
  "Name": "userService", //服务名
  "Tags": [              //服务的tag,自定义,可以根据这个tag来区分同一个服务名的服务
    "primary",
    "v1"
  ],
  "Address": "节点ip",//服务注册到consul的IP,服务发现,发现的就是这个IP
  "Port": 8000,          //服务注册consul的PORT,发现的就是这个PORT
  "EnableTagOverride": false,
  "Check": {
        "tcp": "节点ip:端口",  
        "interval": "3s",  
        "timeout": "3s"
  }
}

注册接口

注册
curl --request PUT --data @a.json http://consulip:8500/v1/agent/service/register
取消注册服务
curl --request PUT http://consulip:8500/v1/agent/service/deregister/xxxx
取消注册服务的某一id
curl --request PUT http://consulip:8500/v1/agent/service/deregister/服务id

我是通过ansible批量去处理json文件的
ansible-playbook node.yml

---
  - hosts: newnode
    remote_user: root
    any_errors_fatal: true
    max_fail_percentage: 0
    serial: 100%
    tasks:
     - name: “*********传输node.json********“
       template: src=./node.json  dest=/root/

     - shell: 'curl --request PUT --data @node.json http://:8500/v1/agent/service/register'
       args:
         chdir: /root/
       register: ll

     - debug: var=ll verbosity=0

你可能感兴趣的:(prometheus consul 动态发现服务)