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
这些服务可以通过配置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
浙公网安备 33010602011771号