说起服务监控,市面上有很多。个人最喜欢的是uptime-kuma,早些时候也写过相关的内容分享。
但是,Uptime-kuma 的主要问题之一是无法与朋友/同事共享。而那些允许与他人共享的服务,要么界面老旧,像是上世纪 90 年代的风格,要么价格昂贵,不值得花钱购买。因此,项目作者决定创建自己的应用程序,该应用程序专注于开发人员的首次体验并支持多用户。
那么本次就来介绍一下刚发现的这个新项目:Lunalytics。一款基于Node.js
构建的开源监控工具,可通过Docker一键部署。
笔者已经体验过,用着挺舒服。但由于是新项目,大家发现问题可到issues提出建议。关于项目作者的功能开发计划我则放在文末以免影响阅读~
项目特征
✅ 易于自托管
支持通过 Docker 快速部署,无需复杂配置,开箱即用。
🌐 多协议监控
支持 HTTP/HTTPS 服务状态检测,支持 TCP 服务探测。
👥 多用户支持
支持多人使用和账号注册,适合团队协作与管理。
📊 自定义状态页/仪表板
可公开或私有,支持自定义品牌、主题颜色、布局样式等。
🔐 角色权限控制
管理员、普通用户等权限划分,灵活配置用户访问范围。
🎨 美观易用的 UI/UX
响应式界面,适配桌面和移动端,支持夜间模式与主题切换。
🧑🎨 用户资料与界面个性化
自定义头像、昵称与界面配色,丰富的个性化设置选项。
🔔 通知系统支持
故障与恢复事件即时推送,支持多种平台整合。
部署流程
本次以威联通NAS作为演示平台,通过Docker Compose的方式进行部署。
部署代码如下:
services:
lunalytics:
image: ksjaay/lunalytics:latest
container_name: lunalytics
ports:
- '2308:2308' # 冒号左侧端口可自定义
volumes:
- /share/Container/lunalytics/data:/app/data # 分别为配置目录和日志目录,可自定义
- /share/Container/lunalytics/logs:/app/logs # 建议放在Docker常用目录下
打开Container Station,将上面代码按需修改后粘贴进框内,创建新的应用程序。
使用展示
等待部署完毕后,浏览器输入NAS_IP:2308即可访问服务。UI跟uptime-kuma比较相像。
初始要输入邮箱和用户名,创建账户。这个账户为该应用的所有者,也就是超级管理员。
确认密码。
选择数据存储方式,第一个内置的SQLite基本就够用。有个性需求的可以自己配置。
等待初始化完成即可登入使用。
点击设置。使用网页翻译,账户中支持修改用户名、密码、头像,转让所有权以及删除账户操作。
显示方面支持黑暗主题,以及多个配色。可自定义时间、日期的显示模式。时区应该默认会自动配置设备地区所在,因为上文的代码中并未加入TZ=Asia/Shanghai
变量。
回到主页,添加监控项目。以我的个人博客为例。监控类型支持HTTP/JSON Query/Ping/TCP,类型下则支持不同的请求方法。
还支持更多监控的高级设定例如通知、频率等,这里就不做演示。如下图所示,可以看到也支持证书的监控。
中间俩是海外VPS。第一个是IP直连家里的服务,第四个则为反代EMBY。
哎,限速真恶心。
我们也可以自定义监控界面的各种设置,理解为装修就行。大家就自己翻翻看吧,刚需功能都有。
事件通知支持以下几种,还有HomeAssistant。
自定义事件等级。
开始我还纳闷为啥没有是否允许注册选项,原来是先注册再放行。
通过后便可给予身份。
开发路线规划
✅自定义状态页
✅更好的紧凑模式设计
✅为用户提供 API 密钥
使用 Oauth2 进行身份验证:已迁移为基于会话的系统(✅),但尚未实现完整的 Oauth2
允许会话管理(追踪/注销会话)
增加对多种数据库的支持: PostgreSQL(✅)、SQLite(✅)、MongoDB
增加对更多通知服务的支持
更完善的基于角色的访问控制
评论区