consul server端的启动命令:
nohup ./consul agent -server -dev -ui -node=consul-dev -client=0.0.0.0 -data-dir=/data/consul/consul.d -config-dir=/usr/local/bin/acl.json &
-config-dir :就是指定加载置文件的目录,我们只需要填写配置文件的目录就可以帮助我们把该目录下所有的以.json结尾配置文件加载进去,它的加载顺序是根据26个字母的顺序加进行加载配置文件的。文件内容都是json格式的数据。默认后面文件定义配置会覆盖前面文件定义的配置
假设此时我们需要修改server端的配置信息/etc/consul.d/basic.json内容(默认端口分别是: 8500 8600 8400 8301 8302 8300)
{
"ports": {
"http": 8501 ,
"dns": 8601,
"grpc": 8401,
"serf_lan": 8311,
"serf_wan": 8312,
"server": 8310
}
}
启动consul server端后,会发现我们的端口全部变成上面描述的端口,consul web UI的端口不在是默认的8500 而变成了 8501 ,另外当我们启动其他consul时,通过-retry-join 加入server端时会报错,拒绝连接,原因就是因为server端的端口发生了改动,它默认去连接8301端口,此时-retry-join不能直接写ip地址,需要写对应的修改后的serf_lan端口 例如:
consul agent -data-dir /consul/data2 -advertise 127.0.0.1 -client 0.0.0.0 -join 127.0.0.1:8311
配置导入(默认导入端口为8500的服务,设置 --http-addr导入相应的consul服务)
导入:
./consul kv import --http-addr=http://192.168.168.142:9501 @wlkj_consul_0616.json
导出:
./consul kv export --http-addr=http://192.168.168.142:9501 > wlkj_consul_0616.json
consul为我们提供其他的配置文件属性:
acl_token:agent会使用这个token和consul server进行请求
acl_ttl:控制TTL的cache,默认是30s
addresses:一个嵌套对象,可以设置以下key:dns、http、rpc
advertise_addr:等同于-advertise
bootstrap:等同于-bootstrap
bootstrap_expect:等同于-bootstrap-expect
bind_addr:等同于-bind
ca_file:提供CA文件路径,用来检查客户端或者服务端的链接
cert_file:必须和key_file一起
check_update_interval:
client_addr:等同于-client
datacenter:等同于-dc
data_dir:等同于-data-dir
disable_anonymous_signature:在进行更新检查时禁止匿名签名
enable_debug:开启debug模式
enable_syslog:等同于-syslog
encrypt:等同于-encrypt
key_file:提供私钥的路径
leave_on_terminate:默认是false,如果为true,当agent收到一个TERM信号的时候,它会发送leave信息到集群中的其他节点上。
log_level:等同于-log-level node_name:等同于-node
ports:这是一个嵌套对象,可以设置以下key:dns(dns地址:8600)、http(http api地址:8500)、rpc(grpc:8400)、serf_lan(lan port:8301)、serf_wan(wan port:8302)、server(server rpc:8300)
protocol:等同于-protocol
rejoin_after_leave:等同于-rejoin
retry_join:等同于-retry-join
retry_interval:等同于-retry-interval
server:等同于-server
syslog_facility:当enable_syslog被提供后,该参数控制哪个级别的信息被发送,默认Local0
ui_dir:等同于-ui-dir
更多命令及参数请参考:Consul参数大全