使用Uptime Kuma自建网站状态监控面板

2025.6.23 杂七杂八 1247
33BLOG智能摘要
作者用Uptime Kuma搭建了个人网站监控面板,其部署方式简单、界面友好、功能丰富。该项目支持Docker一键安装,适合开箱即用。部署中遇到防火墙未放行端口的问题,建议改成非标准端口并通过Nginx反代以增强安全性。作者配置了HTTP、TCP、Ping和SSL证书监控,并通过Telegram和企业微信设置了双重告警,采用渐进提醒策略避免消息轰炸。使用一个月发现3次潜在问题,虽然移动App略显简陋,但项目活跃度高,更新频繁。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

从零开始:我用Uptime Kuma搭建了一个高颜值监控面板

使用Uptime Kuma自建网站状态监控面板

上周我的个人博客突然挂了36小时才发现,这种后知后觉的感觉实在太糟糕了。作为运维老司机,我决定给自己搭建一个状态监控系统。经过对比,最终选择了开源的Uptime Kuma——这个支持Docker部署、界面清爽的监控工具。今天就把我的实战过程分享给大家。

为什么选择Uptime Kuma?

在选型阶段我对比了几个方案:Uptime Robot免费版有监控数量限制,Prometheus+Grafana又太重。直到发现这个GitHub上18k+星的Uptime Kuma项目:

  • 完全开源且支持自托管
  • 漂亮的响应式仪表盘
  • 支持HTTP/TCP/Ping/DNS等多种监控
  • 微信/Telegram/Webhook等告警通知

最打动我的是它的Docker一键部署——对于我这种喜欢”开箱即用”的懒人来说太友好了。

Docker部署踩坑实录

官方推荐使用Docker Compose部署,我的服务器环境是Ubuntu 20.04。先创建docker-compose.yml:

version: '3'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    volumes:
      - ./uptime-kuma-data:/app/data
    ports:
      - "3001:3001"  # 默认端口
    restart: always

执行docker-compose up -d后访问服务器IP:3001,居然报错连接被拒绝!排查发现是ufw防火墙没放行端口。解决方法:

sudo ufw allow 3001/tcp
sudo ufw reload

这里有个小技巧:建议把3001改成非标准端口(比如13001)并通过Nginx反代,既安全又方便记忆域名。

配置监控项的实战技巧

初始化完成后,我添加了几个关键监控:

  1. 博客首页HTTP监控(间隔1分钟)
  2. MySQL端口TCP检查
  3. 服务器Ping检测
  4. SSL证书过期监控

Uptime Kuma仪表盘截图

重点说下HTTP监控的高级配置:

  • 开启”解析DNS”选项防止DNS污染导致误报
  • 设置HTTP状态码200-399为正常范围
  • 关键词检查可以验证页面完整性

告警通知的智能配置

光有监控不够,及时告警才是关键。我配置了微信和Telegram双重通知:

1. Telegram Bot通知:
   - 通过@BotFather创建机器人
   - 获取chat_id(通过/userinfo插件)
   - 在Uptime Kuma添加Webhook:
     https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}&text=__message__

2. 企业微信通知:
   - 需要先创建自建应用
   - 使用企业微信的Webhook API

建议设置”渐进式通知”:第一次宕机发通知,如果持续宕机则每2小时提醒一次,避免消息轰炸。

使用一个月后的真实体验

这个工具已经帮我发现了3次潜在问题:

  • 某次CDN节点异常(HTTP监控报错)
  • 数据库连接数耗尽(TCP监控异常)
  • SSL证书临近过期(提前15天提醒)

要说不足,就是移动端App还比较简陋。不过开发者很活跃,GitHub上几乎每周都有更新。

如果你也需要轻量级的监控方案,不妨试试这个工具。部署过程有问题欢迎在评论区交流~

评论

  • 这个工具看起来不错,正好最近也在找监控方案,准备试试看

  • 博主写得真详细,连防火墙问题都考虑到了,收藏了👍

  • 想问下这个和Nagios比哪个更轻量?最近服务器配置不高

  • 哈哈哈我也是服务器挂了才发现,现在天天盯着监控看,强迫症都要犯了😂