新加坡Flexus L(2核1G)实战:用Docker部署Uptime Kuma,低成本监控网站与服务

举报
yd_297054306 发表于 2026/11/11 08:41:50 2026/11/11
【摘要】 在新加坡2核1G的Flexus L上,用一条Docker命令部署Uptime Kuma:含内存限制、安全组放行、邮件告警与公开状态页,低成本监控网站与服务的可用性。

我的服务器是一台位于新加坡的华为云 Flexus L 实例,2 核 1G 内存,跑的是自己的小网站和几个小服务。机器本身很稳,但有个老问题:网站挂了、服务崩了,我往往是最后一个知道的人——要么是朋友告诉我打不开,要么是自己要用的时候才发现。

于是我给它装了一个 Uptime Kuma:一个开源、自托管的服务监控工具,界面清爽,还能做状态页和告警。整套东西用 Docker 跑,一个容器就够,对 2 核 1G 的小机器非常友好。下面是完整实操。

一、为什么选 Uptime Kuma

  • 轻量:官方镜像不大,实测常驻内存大约 100MB 上下,1G 内存的 Flexus L 完全扛得住。
  • 开箱即用:支持 HTTP、端口、Ping、DNS 等几十种监控类型,不用写脚本。
  • 看得见:自带仪表盘和公开状态页,哪个服务挂了、挂了多久,一目了然。
  • 能告警:支持邮件、Telegram、钉钉等几十种通知方式,宕机第一时间就能收到提醒。
  • 数据在自己手里:监控数据存在服务器本地的 Docker 卷里,不依赖第三方平台。

二、准备工作:先确认这三点

  1. 服务器已能正常 SSH 登录,系统为常见的 Ubuntu/Debian 系。
  2. 磁盘至少留出 2GB 空闲,监控数据本身很小,但 Docker 镜像和日志要占地方。
  3. 在华为云控制台的安全组里放行 3001 端口(Uptime Kuma 默认端口),来源先限制为自己的 IP,配好反代或确认无误后再按需放开。

先看一眼内存和磁盘,心里有个数:

free -h
df -h /
docker --version

如果还没有 Docker,先装好再继续。

三、安装 Docker(已有可跳过)

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo docker --version

把当前用户加进 docker 组,避免每次都 sudo(重新登录后生效):

sudo usermod -aG docker $USER

四、一条命令跑起 Uptime Kuma

先建一个数据目录,监控数据就存在这里,重建容器也不会丢:

mkdir -p ~/uptime-kuma/data

然后启动容器。注意给容器加内存限制,这是 1G 小内存机器的关键一步:

docker run -d --name uptime-kuma \
  --restart=always \
  --memory=512m --memory-swap=512m \
  -p 127.0.0.1:3001:3001 \
  -v ~/uptime-kuma/data:/app/data \
  louislam/uptime-kuma:1

参数说明:

  • --restart=always:服务器重启后自动恢复监控,不用人守着。
  • --memory=512m:把容器内存上限锁在 512MB,防止它吃掉整台机器的内存。
  • 只绑 127.0.0.1:3001:先不直接对外暴露,后面通过反代或按需放行访问,更安全。
  • -v 挂载数据卷:监控记录、配置和账号都存在 ~/uptime-kuma/data。

查看容器是否正常运行:

docker ps
docker logs -f uptime-kuma

看到日志里出现监听 3001 端口的信息,就可以打开浏览器访问了。如果是本机端口转发或已放行端口,直接访问服务器 IP 的 3001 端口。

五、第一次配置:三分钟完成

  1. 打开页面,创建管理员账号和密码,密码尽量长一点,因为它管着所有监控配置。
  2. 语言选中文,时区选 Asia/Singapore,和服务器所在地保持一致。
  3. 点“添加监控项”,先加最重要的三个:
    • 自己的网站首页:类型选 HTTP,填网址,间隔 60 秒。
    • 博客或 API 接口:同样用 HTTP,顺带把关键字监控打开,例如页面应包含自己的站点名。
    • SSH 端口:类型选 TCP 端口,填 22 端口,确认服务器本身还活着。

建议把监控间隔设为 60 秒而不是 20 秒:对个人小站来说完全够用,还能给 1G 内存的机器省点 CPU。

六、告警:挂了要第一时间知道

只看仪表盘还不够,监控的意义在于“出问题立刻通知你”。我用的是邮件通知,配置路径是:设置 → 通知 → 新建通知。

  • 类型:邮件(SMTP)。
  • 发件服务器:用自己的邮箱 SMTP,例如 QQ 邮箱或 Gmail 的 SMTP 服务,端口 465(SSL)或 587。
  • 收件人:填自己常用的邮箱。
  • 保存后点“测试”,收到测试邮件就说明通了。

然后回到每个监控项,把这个通知勾上。也可以建一个 Telegram Bot 通知,手机上收消息更快。

七、给 1G 小内存机器的三个调优建议

  1. 限制容器内存:上面 --memory=512m 就是干这个的,别省。
  2. 定期清理 Docker:镜像、日志和无用卷会慢慢吃掉磁盘,每月跑一次:
docker system prune -f
docker logs --tail=200 uptime-kuma
  1. 监控项别贪多:个人用 10 个以内监控项足够,太多只会增加无意义的请求和写盘。

另外建议把 Uptime Kuma 的数据目录纳入已有的备份计划里。我的做法是和之前写过的 systemd 定时任务加 rsync 那套备份思路一样,定期把 ~/uptime-kuma/data 同步到备份位置,换机器时恢复起来很快。

八、做一个公开状态页

Uptime Kuma 自带状态页:状态页 → 新建状态页,把重要的服务加进去,起个名字比如“我的服务状态”。

这个页面可以分享给朋友或用户,服务正常还是维护中一目了然;也可以把链接放在自己的网站页脚。

九、常见问题

页面打不开?

先看容器在不在:docker ps,再看日志:docker logs uptime-kuma。如果是端口问题,检查安全组是否放行 3001,以及是不是只绑了 127.0.0.1。

内存报警?

先看 docker stats,如果 Uptime Kuma 内存持续上涨,检查监控项数量和间隔,必要时重启容器释放内存。

升级怎么做?

数据在卷里,升级就是拉新镜像、停旧容器、用同一条命令重新创建:

docker pull louislam/uptime-kuma:1
docker stop uptime-kuma && docker rm uptime-kuma
# 再用第四节那条 docker run 命令重新启动即可,数据不会丢

十、总结

一台 2 核 1G 的新加坡 Flexus L,跑一个 Uptime Kuma 绰绰有余:一条 Docker 命令部署,几分钟配好监控和邮件告警,再加一个公开状态页,网站和服务的可用性就有了最基本的保障。

对我来说,它的价值不是“多了一个仪表盘”,而是“出问题时我能第一时间知道”,而不是等别人来告诉我。小机器也能把运维做得体面,关键是选对工具、把资源限制好。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。