Uptime Kuma 可用性监控工具
- 2025-06-26 17:54:00
- 丁国栋
- 原创 23
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. 初始设置
- 访问
http://你的服务器IP:3001
- 创建管理员账户
- 设置基本配置
2. 添加监控项
- 点击"添加监控"
- 选择监控类型 (HTTP/TCP/Ping等)
- 填写目标地址
- 设置检查间隔
- 配置通知方式
- 保存设置
3. 配置通知
- 进入"设置" > "通知"
- 选择通知类型 (如Webhook)
- 填写必要信息 (如Webhook URL、Headers、请求体等)
- 测试通知
- 保存设置
4. 状态页面
- 进入"设置" > "状态页面"
- 配置页面标题、描述等
- 选择要显示的监控项
- 设置访问权限 (公开或密码保护)
- 获取分享链接
五、高级配置
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:
- 创建数据库和用户
- 修改
data/config.json
文件:
{
"db": {
"client": "mysql",
"host": "localhost",
"user": "uptimekuma",
"password": "yourpassword",
"database": "uptimekuma"
}
}
3. 多地点监控
- 在不同服务器上安装Uptime Kuma
- 配置相同的监控项
- 使用主实例汇总结果
六、维护与更新
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等)+ 企业微信通知
发表评论