【华为云 ECS 实战】2核2G云服务器搭建 Komari 监控平台,实现多台 Linux 主机统一管理
【华为云 ECS 实战】2核2G云服务器搭建 Komari 监控平台,实现多台 Linux 主机统一管理
一、项目背景
随着云计算技术的发展,越来越多的个人开发者开始使用云服务器搭建网站、部署应用以及运行自动化任务。
但是,当我们同时管理多台服务器时,经常会遇到以下问题:
-
不知道服务器当前的 CPU 和内存使用情况。
-
无法直观查看服务器的网络流量。
-
服务器异常离线后,不能及时发现。
-
需要反复登录不同服务器查看运行状态。
-
希望使用一台低配置云服务器统一管理多个节点。
针对这些需求,本文介绍一种轻量级解决方案:利用华为云弹性云服务器 ECS 部署 Komari 服务器监控平台。
通过 Docker 容器化部署,可以将华为云 ECS 作为监控中心,统一展示多台 Linux 服务器的运行状态。
二、项目技术架构
本项目主要使用以下技术:
| 技术 | 主要用途 |
|---|---|
| 华为云 ECS | 提供监控平台运行环境 |
| Ubuntu Linux | 服务器操作系统 |
| Docker | 容器化部署应用 |
| Komari | 服务器监控平台 |
| Komari Agent | 采集各节点运行信息 |
| 华为云安全组 | 控制服务器网络访问权限 |
参考服务器配置:
-
CPU:2 vCPU
-
内存:2GB
-
公网带宽:3Mbps
-
月流量配额:100GB
-
操作系统:Ubuntu 22.04 / 24.04 LTS
以上配置用于演示轻量级部署,不代表经过压力测试的最低硬件要求。实际可管理节点数量取决于数据上报频率、访问量、存储和网络条件。
整体架构如下:
管理员浏览器
|
v
华为云 ECS 云服务器
Docker 容器
Komari Server
^
|
网络连接与监控数据上报
|
+---------+---------+
| | |
Linux A Linux B Linux C
Agent Agent Agent
每台需要监控的服务器安装 Komari Agent,采集监控数据并上报给中心服务器。
三、准备华为云 ECS 环境
首先登录华为云控制台,进入弹性云服务器 ECS 管理页面。
确认服务器已经正常运行,并且具有可用的公网访问方式。
通过 SSH 登录服务器:
ssh ubuntu@服务器公网IP
这里的 ubuntu 仅为 Ubuntu 镜像常见用户名,实际应以服务器创建时配置的用户为准。
连接成功后,可以使用以下命令查看服务器资源:
# 查看系统信息
uname -a
# 查看内存
free -h
# 查看磁盘
df -h
# 查看CPU信息
lscpu
这些基础信息可以帮助我们确认当前服务器是否具备部署条件。
四、安装 Docker
Komari 支持多种安装方式。这里选择 Docker,便于后续管理和升级。
对于 Ubuntu 系统,可以先更新软件包索引:
sudo apt update
随后安装发行版提供的 Docker:
sudo apt install -y docker.io
启动 Docker 服务:
sudo systemctl enable --now docker
确认安装结果:
sudo docker --version
sudo docker ps
如果能够正常显示 Docker 版本和容器列表,说明基本安装成功。
对于正式生产环境,也可以参考华为云官方 ECS Docker 部署文档,安装 Docker 官方软件包。
五、部署 Komari 监控平台
Komari 是一个开源、自托管的服务器监控工具,可以通过 Web 页面集中展示不同节点的系统运行状态。
1. 创建项目目录
首先创建独立的数据目录:
sudo mkdir -p /opt/komari/data
Komari 默认可以使用 SQLite 存储数据。通过 Docker 数据卷映射,可以将监控配置和数据保存在容器外部。
2. 启动 Docker 容器
执行以下命令:
sudo docker run -d \
--name komari \
--restart unless-stopped \
-p 25774:25774 \
-v /opt/komari/data:/app/data \
ghcr.io/komari-monitor/komari:latest
主要参数说明:
-
-d:后台运行容器。 -
--name komari:设置容器名称。 -
--restart unless-stopped:设置自动重启策略。 -
-p 25774:25774:映射监控服务端口。 -
-v:持久化保存应用数据。
需要注意,国内部分网络环境可能无法稳定访问 GHCR 镜像仓库。如果镜像下载失败,应先排查网络连接,避免使用来源不明的第三方镜像。
3. 查看运行状态
sudo docker ps
查看服务日志:
sudo docker logs --tail 50 komari
如果容器正常运行,并且日志中没有明显启动错误,就可以继续配置访问方式。
六、配置华为云安全组
部署 Web 服务后,需要检查 ECS 所绑定的安全组。
在华为云控制台中找到对应 ECS 的安全组,添加必要的入方向规则。
测试阶段可以使用以下配置:
| 配置项目 | 建议值 |
|---|---|
| 方向 | 入方向 |
| 协议 | TCP |
| 端口 | 25774 |
| 源地址 | 自己的公网 IP/32 |
| 策略 | 允许 |
为了保证安全,建议仅允许可信来源访问管理端口。
需要特别注意:不要为了省事,将 SSH 和各类后台管理端口长期开放给所有公网 IP。
安全组配置完成后,还需要确认服务器内部防火墙没有阻止对应端口。
在获得访问权限的设备上,通过浏览器访问:
http://服务器公网IP:25774
首次访问时,按照 Komari 的安装向导创建管理员账号并完成初始化。
以上 HTTP 访问方式仅适合受限网络下的初始测试。正式使用时,建议通过 HTTPS 反向代理或安全隧道访问,避免在明文连接中传输管理凭据。
七、添加服务器监控节点
当 Komari 服务端部署完成后,下一步就是接入需要监控的 Linux 主机。
基本操作流程:
-
登录 Komari 管理后台。
-
进入节点管理相关页面。
-
创建新的监控节点。
-
获取系统生成的 Agent 安装命令。
-
在需要监控的服务器上执行对应命令。
-
返回监控面板,确认节点是否正常上线。
安装 Agent 时,需要注意服务器的 CPU 架构。例如,常见的 Linux 主机可能使用 AMD64 或 ARM64 架构,必须选择适配版本。
Agent 通过网络向监控中心上报系统信息。
接入完成后,可以集中查看:
-
CPU 使用率
-
内存使用情况
-
磁盘空间
-
网络上传和下载速度
-
累计网络流量
-
服务器在线状态
-
系统运行时间
如果只需要状态监控,应尽量关闭不必要的远程命令执行和 Web 终端能力,降低安全风险。
八、部署中容易遇到的问题
问题一:容器正常运行,但浏览器无法访问
可以依次检查:
-
Docker 是否正常运行。
-
25774 端口是否正在监听。
-
华为云安全组是否允许访问。
-
Linux 本机防火墙是否拦截请求。
-
访问地址是否填写正确。
通过以下命令检查端口:
sudo ss -lntp | grep 25774
通过以下命令检查容器状态:
sudo docker ps -a
问题二:Docker 镜像下载失败
如果出现连接超时或镜像拉取失败,可能与镜像仓库网络连通性有关。
建议优先检查 DNS、HTTPS 网络连接以及镜像仓库是否可访问,再根据实际网络环境选择可靠的镜像获取方式。
不建议随意执行网络上来源不明的一键安装脚本。
问题三:监控节点显示离线
常见原因包括:
-
Agent 进程没有正常运行。
-
服务端域名或者 IP 地址发生变化。
-
网络连接被防火墙拦截。
-
客户端 Token 配置错误。
-
反向代理未正确处理 WebSocket 连接。
排查时应先确认 Agent 所在服务器能够连接监控中心,再检查客户端运行日志。
九、后续优化方向
完成基础部署之后,还可以继续扩展监控平台。
1. 接入 HTTPS
使用 Nginx 等反向代理服务,为监控面板配置域名和 HTTPS,提高远程访问安全性。
2. 优化流量消耗
对于公网带宽和月流量有限的 ECS,需要合理控制监控节点数量、数据上报频率以及后台访问量。
其中,监控面板的网络统计功能不等同于云服务商的计费统计,流量配额仍然应以华为云控制台数据为准。
3. 配置异常通知
在条件允许时,可以根据 Komari 实际支持的通知渠道设置节点离线等告警,以便更及时地发现问题。
4. 定期备份
对于 Docker 部署,应定期备份持久化数据目录:
/opt/komari/data
备份前应考虑数据库文件写入一致性,优先使用应用支持的备份方式,而不是在持续写入时随意复制数据库文件。
十、总结
对于个人开发者来说,一台低配置云服务器不仅可以用于部署网站,还可以承担轻量级的基础设施管理任务。
本文介绍了利用华为云 ECS、Docker 和 Komari 搭建多节点服务器监控平台的基本思路与部署方法。
这套方案的主要优点在于:
-
资源需求相对较低。
-
支持 Docker 容器化部署。
-
方便统一管理多个服务器节点。
-
支持通过浏览器查看系统运行状态。
-
适合作为 Linux、Docker 和云服务器运维的入门实践。
当然,监控系统本身也需要做好安全防护、数据备份和运行状态检查。
对于正在学习云计算的开发者来说,这类小型项目很适合用于理解服务器部署、容器化运行、网络安全组及系统监控之间的关系。
- 点赞
- 收藏
- 关注作者
评论(0)