Consul入门(以Centos为例)
安装Consul(方式一:YUM安装)
sh
# 安装yum-utils
sudo yum install -y yum-utils
# 添加源
sudo yum-config-manager --add-repohttps://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
# 安装 consul
sudo yum -y install consul
# 验证
consul -v
安装Consul(方式二:下载安装)
Linux下载地址址:https://releases.hashicorp.com/consul/1.8.0/consul_1.8.0_linux_amd64.zi
sh
# 下载 (以放在在/server/为例)
wget https://releases.hashicorp.com/consul/1.8.0/consul_1.8.0_linux_amd64.zip
# 解压
unzip consul_1.8.0_linux_amd64.zip
# 复制到目录中
cd consul_1.8.0_linux_amd64
ln -s /server/consul_1.8.4_linux_amd64/bin/consul /usr/bin/consul
cp consul /usr/bin/
# 赋权
chmod uog+x /usr/bin/consul
# 创建相关目录并赋权
mkdir /server/consul_1.8.0_linux_amd64/data
mkdir /server/consul_1.8.0_linux_amd64/conf
mkdir /server/consul_1.8.0_linux_amd64/logs
chmod uog+rw /server/consul_1.8.0_linux_amd64/data
chmod uog+rwx /server/consul_1.8.0_linux_amd64/logs
vi /etc/default/consul
# 写入
CONSUL_FLAGS="-ui -disable-host-node-id -config-file /server/consul_1.8.0_linux_amd64/conf/server.json"
# 简易配置
consul agent -server -ui -bootstrap-expect=1 -data-dir=/usr/local/consul/data/ -node=qolome-node -bind=0.0.0.0 -config-dir=/usr/local/consul/consul.d/
配置 /server/consul_1.8.0_linux_amd64/conf/server.json(单节点)
yml
{
"datacenter": "qolome-consul",
// 数据目录
"data_dir": "/server/consul_1.8.0_linux_amd64/data",
// 日志级别
"log_level": "INFO",
// 该服务器节点名
"node_name": "consul-node1",
// 表示是server模式
"server": true,
// 表示是集群中有3台服务器 bootstrap该模式node可以指定自己作为leader ,如果是非leader可不加该参数
"bootstrap_expect": 1,
// 绑定的节点IP
"bind_addr": "192.168.1.10",
"client_addr": "192.168.1.10",
"retry_join": ["192.168.1.10"],
"retry_interval": "30s",
"enable_debug": false,
"rejoin_after_leave": true,
"start_join": ["192.168.1.10"],
"enable_syslog": true,
"syslog_facility": "local0"
}
配置 /server/consul_1.8.0_linux_amd64/conf/server.json(多节点)
json
{
"datacenter": "qolome-consul",
"data_dir": "/server/consul_1.8.0_linux_amd64/data",
"log_level": "INFO",
"node_name": "consul-node1",
"server": true,
"bootstrap_expect": 1,
"bind_addr": "192.168.1.9",
"client_addr": "192.168.1.9",
"retry_join": ["192.168.1.9","192.168.1.10"],
"retry_interval": "30s",
"enable_debug": false,
"rejoin_after_leave": true,
"start_join": ["192.168.1.9","192.168.1.10"],
"enable_syslog": true,
"syslog_facility": "local0"
}
配置Syslog日志
sh
# 修改rsyslog默认配置文件
vim /etc/rsyslog.d/50-default.conf
# /etc/rsyslog.d/50-default.conf添加内容
consul.* server/consul_1.8.0_linux_amd64/logs/consul.log
# 创建日志规则
vim /etc/logrotate.d/consul
/var/log/consul/*log {
missingok
compress
notifempty
daily
rotate 5
create 0600 root root
}
注册consul服务
sh
vi /usr/lib/systemd/system/consul.service
ini
[Unit]
Description=Consul service discovery agent
Requires=network-online.target
After=network-online.target
[Service]
User=root
Type=notify
Environment=GOMAXPROCS=2
EnvironmentFile=-/etc/default/consul
ExecStart=/usr/bin/consul agent $CONSUL_FLAGS
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
Restart=on-failure
TimeoutStopSec=5
[Install]
WantedBy=multi-user.target
启动/停止/查看consul
sh
sudo systemctl start consul
sudo systemctl stop consul
sudo systemctl status consul
# 开机启动
sudo systemctl enable consul