一、環境
操作系統版本:centos7.2
操作系統內核:4.8.4
系統工具:yum
數據分區(200G容量以上):/data
啓用端口:8300、8301、8302、8500、8600
二、下載安裝文件
下載安裝文件:wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_amd64.zip
三、解壓安裝文件
unzip consul_0.9.2_linux_amd64.zip -d /usr/bin
四、創建啓動文件
編輯文件: vim /lib/systemd/system/consul.service
#####以下爲文件內容######
[Unit]
Description=consul
[Service]
ExecStart=/usr/bin/consul agent -config-dir /etc/consul
KillSignal=SIGINT
五、創建配置文件
創建文件存放路徑: mkdir /etc/consul/
編輯文件: vim /etc/consul/server.json
#####以下爲server端文件內容,請注意中文說明部分需要修改######
{
"datacenter": "數據中心名稱",
"data_dir": "/tmp/consul",
"log_level": "INFO",
"node_name": "主機名",
"server": true,
"acl_enforce_version_8":false,
"bootstrap_expect": 3,
"client_addr": "0.0.0.0",
"advertise_addr": "主機IP地址",
"advertise_addr_wan": "主機外網IP地址",
"domain":"consul",
"ports":{
"dns": 53
},
"telemetry": {
"statsd_address": "127.0.0.1:8125"
},
"acl_datacenter": "數據中心名稱",
"acl_agent_token": "請自行創建訪問token(字符串即可)",
"acl_master_token": "請自行創建訪問token(字符串即可)",
"acl_default_policy": "deny"
}
#####以下爲clent端配置文件############
{
"datacenter": "數據中心名稱",
"data_dir": "/tmp/consul",
"log_level": "INFO",
"node_name": "主機名",
"acl_enforce_version_8":false,
"acl_datacenter": "數據中心名稱",
"bind_addr":"主機IP地址",
"domain":"consul",
"telemetry": {
"statsd_address": "127.0.0.1:8125"
},
"rejoin_after_leave":true,
"enable_script_checks":true,
"acl_agent_token": "server端配置的token",
"acl_master_token": "server端配置的token",
"acl_default_policy": "deny"
}
六、啓動服務
systemctl start consul
七、查看日誌
journalctl -fu consul
八、服務測試
curl -X PUT -d 'myvalue' localhost:8500/v1/kv/mykey
curl localhost:8500/v1/kv/mykey # will show you the key
curl localhost:8500/v1/kv/mykey # nothing is returned
curl localhost:8500/v1/kv/mykey?dc=[id_other_datacenter] # will again show you the key
九、集羣節點添加
consul join 集羣主機IP
十、多數據中心添加
consul join -wan [public_ip_address_other_server]
十一、使用技巧
日誌配置
rm -rf /etc/rsyslog.d/consul.conf
rm -rf /etc/logrotate.d/consul
echo ':programname, isequal, "consul" /var/log/consul.log' >> /etc/rsyslog.d/consul.conf
echo '& ~' >> /etc/rsyslog.d/consul.conf
echo '/var/log/consul.log' >> /etc/logrotate.d/consul
echo '{' >> /etc/logrotate.d/consul
echo ' daily' >> /etc/logrotate.d/consul
echo ' rotate 7' >> /etc/logrotate.d/consul
echo ' missingok' >> /etc/logrotate.d/consul
echo ' dateext' >> /etc/logrotate.d/consul
echo ' copytruncate' >> /etc/logrotate.d/consul
echo ' compress' >> /etc/logrotate.d/consul
echo '}' >> /etc/logrotate.d/consul
重啓服務
/bin/systemctl restart consul
配置開機啓動
echo "/bin/systemctl start consul" >> /etc/rc.local