服务器要求
在 CentOS Stream
或者 Rocky Linux
服务器上搭建 Consul
单机服务,服务器的最低配置要求包括 CPU
、内存
、存储
和 网络
资源。
服务器要求
- 操作系统:
CentOS Stream
或Rocky Linux
服务器 - 内存: 至少
2GB
(推荐4GB
或以上) - 存储: 至少
50GB
,10 GB(用于Consul数据和日志) 20 GB(根据数据量调整) - 网络: 确保服务器可以访问外部网络(用于下载依赖)
- 端口:8500(HTTP API/UI)、8300(RPC) 确保防火墙开放相关端口
安装 Consul 服务
- 下载文件
访问 Consul 官网 下载适用于 Linux
的二进制文件。
选择版本
选择适用于 Linux
的版本(通常是 64
位 .zip
文件,如:consul_1.20.5_linux_amd64.zip
软件包)。
- 上传服务器
使用 XShell
客户端工具远程登录服务器,并上传软件包 consul_1.20.5_linux_amd64.zip
至目录 /usr/local/src
。
上传成功后查看软件包信息:
js
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# ll
总用量 393720
-rw-r--r--. 1 root root 66534209 3月 20 02:16 consul_1.20.5_linux_amd64.zip
[root@localhost src]# du -sh *
64M consul_1.20.5_linux_amd64.zip
温馨提示
客户端工具除了 XShell
也可以使用其他工具,安装包存放目录可自定义,如 /usr/local/src
。
- 解压压缩包
js
[root@localhost src]# unzip consul_1.20.5_linux_amd64.zip
Archive: consul_1.20.5_linux_amd64.zip
inflating: LICENSE.txt
inflating: consul
- 将
Consul
移动到/usr/local/bin
:
js
mv consul /usr/local/bin/
- 验证安装
执行命令 consul --version
查看版本信息:
js
[root@localhost src]# consul --version
Consul v1.20.5
Revision 74efe419
Build Date 2025-03-11T10:16:18Z
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
配置 Consul 服务
- 创建配置目录:
js
mkdir /etc/consul.d
- 创建配置文件
/etc/consul.d/consul.hcl
并输入以下内容:
js
datacenter = "dc1"
data_dir = "/opt/consul"
client_addr = "127.0.0.1"
bind_addr = "127.0.0.1"
server = true
bootstrap_expect = 1
ui = true
- 创建数据目录:
js
mkdir -p /opt/consul
chown -R $USER:$USER /opt/consul
启动 Consul 服务
- 启动
Consul
服务:
js
consul agent -config-dir=/etc/consul.d &
- 验证服务是否运行
js
[root@localhost src]# consul members
Node Address Status Type Build Protocol DC Partition Segment
localhost.localdomain 127.0.0.1:8301 alive server 1.20.5 2 dc1 default <all>
设置 Consul 为系统服务(可选)
- 创建
Systemd
服务文件/usr/lib/systemd/system/consul.service
:
js
[Unit]
Description=Consul Service
Documentation=https://www.consul.io/
After=network.target
[Service]
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
Restart=on-failure
User=consul
Group=consul
[Install]
WantedBy=multi-user.target
参数说明:
- ExecStart:指定Consul启动命令。
- User 和 Group:建议创建一个专用的用户和组来运行Consul(见下一步)。
- Restart=on-failure:确保Consul在意外退出时自动重启。
- 创建
Consul
专用用户和组
- 创建用户和组:
js
groupadd --system consul
useradd --system --home /etc/consul.d --shell /bin/false -g consul consul
- 设置目录权限:
js
chown -R consul:consul /etc/consul.d
chown -R consul:consul /opt/consul
- 重新加载配置
重新加载 Systemd
配置以应用新服务文件:
js
systemctl daemon-reload
- 启用并启动服务
js
# 启动Consul服务
systemctl enable consul
# 设置Consul开机自启动
systemctl start consul
通过以上步骤,Consul
已成功配置为 Systemd
服务,并可以通过以下命令管理:
1. 启动服务:systemctl start consul
2. 停止服务:systemctl stop consul
3. 重启服务:systemctl restart consul
4. 查看状态:systemctl status consul
5. 查看日志:journalctl -u consul
检查 Consul 状态
- 查看服务状态:
js
[root@localhost src]# systemctl status consul
● consul.service - Consul Service
Loaded: loaded (/usr/lib/systemd/system/consul.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2025-03-20 02:50:56 EDT; 4min 26s ago
Docs: https://www.consul.io/
Main PID: 272128 (consul)
Tasks: 9 (limit: 24632)
Memory: 24.6M
CGroup: /system.slice/consul.service
└─272128 /usr/local/bin/consul agent -config-dir=/etc/consul.d
3月 20 02:51:04 localhost.localdomain consul[272128]: 2025-03-20T02:51:04.773-0400 [INFO] agent.leader: started routine: routine="config entry controllers"
3月 20 02:51:04 localhost.localdomain consul[272128]: 2025-03-20T02:51:04.773-0400 [INFO] agent.leader: started routine: routine="raft log verifier"
3月 20 02:51:04 localhost.localdomain consul[272128]: 2025-03-20T02:51:04.773-0400 [INFO] agent.leader: stopping routine: routine="virtual IP version check"
3月 20 02:51:04 localhost.localdomain consul[272128]: 2025-03-20T02:51:04.773-0400 [INFO] agent.leader: stopped routine: routine="virtual IP version check"
3月 20 02:51:06 localhost.localdomain consul[272128]: 2025-03-20T02:51:06.188-0400 [ERROR] agent.server.autopilot: Failed to reconcile current state with the desired state
3月 20 02:51:13 localhost.localdomain consul[272128]: 2025-03-20T02:51:13.788-0400 [INFO] agent: Synced node info
3月 20 02:52:04 localhost.localdomain consul[272128]: 2025-03-20T02:52:04.773-0400 [INFO] agent.server.raft.logstore.verifier: verification checksum OK: elapsed="87.077µs" leaderChecksum=d4414cb7fa1d371e rangeEnd=88 rangeStart=80 readC>
3月 20 02:53:04 localhost.localdomain consul[272128]: 2025-03-20T02:53:04.774-0400 [INFO] agent.server.raft.logstore.verifier: verification checksum OK: elapsed="60.61µs" leaderChecksum=7be63708ba9d1014 rangeEnd=93 rangeStart=88 readCh>
3月 20 02:54:04 localhost.localdomain consul[272128]: 2025-03-20T02:54:04.774-0400 [INFO] agent.server.raft.logstore.verifier: verification checksum OK: elapsed="73.026µs" leaderChecksum=e798f10bd4c4bd7c rangeEnd=98 rangeStart=93 readC>
3月 20 02:55:04 localhost.localdomain consul[272128]: 2025-03-20T02:55:04.774-0400 [INFO] agent.server.raft.logstore.verifier: verification checksum OK: elapsed="53.862µs" leaderChecksum=3acbe54ef497f9ce rangeEnd=102 rangeStart=98 read>
lines 1-20/20 (END)
温馨提示
如果服务正常运行,输出应显示 active (running)
。
- 查看服务日志
js
journalctl -u consul
访问 Consul 控制台
- 打开浏览器,访问
http://<服务器IP>:8500
。
- 如果看到
Consul
的Web
界面,用于查看节点、服务和配置,说明安装成功。
- 确保防火墙允许
8500
端口:
js
firewall-cmd --permanent --add-port=8500/tcp
firewall-cmd --reload
总结
通过以上步骤,你可以在 CentOS Stream
上成功搭建 Consul
单机服务,并通过 Web UI
进行管理。确保服务器满足最低要求,并根据实际需求调整配置。