Skip to content

服务器要求

CentOS Stream 或者 Rocky Linux 服务器上搭建 Consul 单机服务,服务器的最低配置要求包括 CPU内存存储网络 资源。

服务器要求

  • 操作系统: CentOS StreamRocky Linux 服务器
  • 内存: 至少 2GB(推荐 4GB 或以上)
  • 存储: 至少 50GB,10 GB(用于Consul数据和日志) 20 GB(根据数据量调整)
  • 网络: 确保服务器可以访问外部网络(用于下载依赖)
  • 端口:8500(HTTP API/UI)、8300(RPC) 确保防火墙开放相关端口

安装 Consul 服务

  1. 下载文件

访问 Consul 官网 下载适用于 Linux 的二进制文件。

选择版本

选择适用于 Linux 的版本(通常是 64.zip 文件,如:consul_1.20.5_linux_amd64.zip 软件包)。

  1. 上传服务器

使用 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

  1. 解压压缩包
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
  1. Consul 移动到 /usr/local/bin
js
mv consul /usr/local/bin/
  1. 验证安装

执行命令 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 服务

  1. 创建配置目录:
js
mkdir /etc/consul.d
  1. 创建配置文件 /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
  1. 创建数据目录:
js
mkdir -p /opt/consul
chown -R $USER:$USER /opt/consul

启动 Consul 服务

  1. 启动 Consul 服务:
js
consul agent -config-dir=/etc/consul.d &
  1. 验证服务是否运行
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 为系统服务(可选)

  1. 创建 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在意外退出时自动重启。
  1. 创建 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
  1. 重新加载配置

重新加载 Systemd 配置以应用新服务文件:

js
systemctl daemon-reload
  1. 启用并启动服务
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 状态

  1. 查看服务状态:
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)

  1. 查看服务日志
js
journalctl -u consul

访问 Consul 控制台

  1. 打开浏览器,访问 http://<服务器IP>:8500

  1. 如果看到 ConsulWeb 界面,用于查看节点、服务和配置,说明安装成功。

  1. 确保防火墙允许 8500 端口:
js
firewall-cmd --permanent --add-port=8500/tcp
firewall-cmd --reload

总结

通过以上步骤,你可以在 CentOS Stream 上成功搭建 Consul 单机服务,并通过 Web UI 进行管理。确保服务器满足最低要求,并根据实际需求调整配置。

小蚂蚁云团队 · 提供技术支持

小蚂蚁云 新品首发
新品首发,限时特惠,抢购从速! 全场95折
赋能开发者,助理企业发展,提供全方位数据中台解决方案。
获取官方授权