consul和consul-template

consul可以搭建集群,选取leader,监控不同机器上的服务。
这些服务可以通过配置json文件去添加,如
{
    "services": [{
        "id": "front1",   #自定义
        "name": "service-java",  #自定义
        "tags": ["local-java"],   #自定义
        "address": "1.8.8.9",  #本机ip
        "port": 8001, #服务端口
        "checks": [{
            "Tcp": "1.8.8.9:8001", #tcp端口
            "interval": "5s"
        }]
}
配置文件放在/etc/consul.d/目录下
启动命令:nohup  /root/consul/consul agent -server -bootstrap-ecpect 1 -ui -data-dir=/tmp/consul-data -bind=1.8.8.9 -client=0.0.0.0 -node=consul1 -config-file=/etc/consul.d -enable-script-checks=true -datacenter=dc1 &

-bootstrap:用来控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为raft
Leader (不推荐)

-bootstrap-expect:在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap一起用(推荐)

-dc:该标记控制agent运行的datacenter的名称,默认是dc1

-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名

-enable-script-checks=true:设置检查服务为可用

加入集群:
nohup  /root/consul/consul agent  -ui -data-dir=/tmp/consul-data -bind=1.8.5.4 -client=0.0.0.0 -node=consul2 -config-file=/etc/consul.d -enable-script-checks=true -datacenter=dc1 -join 1.8.8.9 &

check的五种检测方式:
1、脚本检测
可以配置脚本去执行相关的功能
{
    "check": {
        "id": "mem",   #自定义
        "args":[
        "/etc/consul.d/mem.sh",  #指定脚本位置
        "-limit",
        "256MB"
        ],
        "interval": "10s",
        "timeout":"1s"
        }
}
2、http检测
3、tcp检测
{
    "check": {
        "id": "fs",   #自定义
        "name":"FreeSwitch",   #自定义
        "tcp":"1.8.5.4:8021",
        "interval": "10s",
        "timeout":"1s"
        }
}
4、ttl检测
5、docker检测

consul-template需要一个模板文件,*.ctmpl
vim  hi-linux.ctmpl
{{ range services }}
{{ .Name }}
{{ range .Tags }}
{{ . }}{{ end }}
{{ end }}

Consul-template -consul-addr=http://1.8.8.9:8500 -template="/root/consul/hi-linux:/root/consul/hi-linux.conf" -once
posted @ 2023-10-11 15:15  菜菜陈  阅读(88)  评论(0)    收藏  举报