Uptime Kuma 可用性监控工具

2025-06-26 17:54:00
丁国栋
原创 23
摘要:本文介绍Uptime Kuma 可用性监控工具的功能、安装和使用等。

Uptime Kuma 可用性监控工具详解

一、Uptime Kuma 简介

Uptime Kuma 是一个开源的、自托管的网站和服务器监控工具。它提供了简单易用的界面来监控各种网络服务的可用性,并在服务不可用时发送通知。

主要特点

  • 开源免费:完全免费且代码在 GitHub 上开源
  • 自托管:可以部署在自己的服务器上,保护隐私
  • 轻量级:基于 Node.js 开发,资源占用低
  • 现代化界面:响应式设计,交互友好,支持暗黑模式
  • 多协议支持:HTTP(s)(含SSL证书到期提醒)、TCP、Ping、DNS、MySQL、Redis等
  • 丰富通知方式:支持 Webhook、Ntfy、Slack、电子邮件等多种通知渠道
  • 2FA: 支持二步验证
  • 多语言支持: 支持中文、英文、日文、韩文等多种语言

二、功能特性

1. 监控类型

  • HTTP(s)监控:检查网站或API端点是否可访问,以及证书是否到期
  • TCP端口监控:检查特定端口是否开放
  • Ping监控:检查主机是否响应ICMP ping
  • DNS监控:检查DNS记录解析
  • 推送监控:通过推送通知被动监控

2. 高级功能

  • 状态页面:可公开或私有的状态仪表板
  • 证书监控:SSL证书过期提醒
  • 代理支持:通过代理服务器进行监控
  • 心跳检测:监控定期发送心跳的设备
  • 响应时间图表:记录并显示历史响应时间

3. 通知集成

  • Webhook
  • Discord
  • Slack
  • 电子邮件 (SMTP)
  • Pushover
  • Gotify
  • 钉钉
  • 企业微信
  • 飞书
  • 自定义脚本

三、安装指南

1. 系统要求

  • 支持 Linux、Windows
  • Node.js 18 / 20.4
  • npm 或 yarn
  • 数据库 (SQLite 默认包含,也支持 MySQL/PostgreSQL)
  • 约100MB磁盘空间

2. 安装方法

Docker 安装 (推荐)

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

手动安装

git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup
# Option 1. Try it
node server/server.js
# (Recommended) Option 2. Run in the background using PM2
# Install PM2 if you don't have it:
npm install pm2 -g && pm2 install pm2-logrotate
# Start Server
pm2 start server/server.js --name uptime-kuma

四、基本使用

1. 初始设置

  1. 访问 http://你的服务器IP:3001
  2. 创建管理员账户
  3. 设置基本配置

2. 添加监控项

  1. 点击"添加监控"
  2. 选择监控类型 (HTTP/TCP/Ping等)
  3. 填写目标地址
  4. 设置检查间隔
  5. 配置通知方式
  6. 保存设置

3. 配置通知

  1. 进入"设置" > "通知"
  2. 选择通知类型 (如Webhook)
  3. 填写必要信息 (如Webhook URL、Headers、请求体等)
  4. 测试通知
  5. 保存设置

4. 状态页面

  1. 进入"设置" > "状态页面"
  2. 配置页面标题、描述等
  3. 选择要显示的监控项
  4. 设置访问权限 (公开或密码保护)
  5. 获取分享链接

五、高级配置

1. 使用反向代理

详细参考:https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy

推荐使用Nginx或Apache作为反向代理,并配置SSL证书:

Nginx 示例配置:

server {
    listen 80;
    server_name status.yourdomain.com;
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name status.yourdomain.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Apache2 示例配置:

<VirtualHost *:443>
  ServerName sub.domain.com
  SSLEngine On
  SSLCertificateFile /path/to/ssl/cert/crt
  SSLCertificateKeyFile /path/to/ssl/key/key
  # Protocol 'h2' is only supported on Apache 2.4.17 or newer.
  Protocols h2 http/1.1
  ProxyPreserveHost on
  ProxyPass / http://localhost:3001/
  RewriteEngine on
  RewriteCond %{HTTP:Upgrade} =websocket
  RewriteRule /(.*) ws://localhost:3001/$1 [P,L]
  RewriteCond %{HTTP:Upgrade} !=websocket
  RewriteRule /(.*) http://localhost:3001/$1 [P,L]
</VirtualHost>

2. 数据库配置

默认使用SQLite,如需使用MySQL/PostgreSQL:

  1. 创建数据库和用户
  2. 修改 data/config.json 文件:
{
  "db": {
    "client": "mysql",
    "host": "localhost",
    "user": "uptimekuma",
    "password": "yourpassword",
    "database": "uptimekuma"
  }
}

3. 多地点监控

  1. 在不同服务器上安装Uptime Kuma
  2. 配置相同的监控项
  3. 使用主实例汇总结果

六、维护与更新

1. 备份

定期备份 data 目录,包含所有配置和监控数据。

Uptime Kuma Web 控制台也支持导出 JSON 格式的数据,可以用于恢复。

2. 更新方法

Docker 更新

docker pull louislam/uptime-kuma:1
docker stop uptime-kuma
docker rm uptime-kuma
# 重新运行初始的docker run命令

官方 Demo 站点

https://demo.kuma.pet/start-demo

本站状态页

部署方式:Docker + Apache2 反向代理(mod_proxy, mod_proxy_http, mod_rewrite, mod_ssl等)+ 企业微信通知

https://status.thedf.cc/status/self

发表评论
博客分类