V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zaunist
V2EX  ›  分享创造

XUGOU - 轻量级系统监控平台,基于 CloudFlare 零成本部署!

  •  1
     
  •   zaunist ·
    zaunist · 4 天前 · 1934 次点击

    大家好,最近搞了个小玩意儿,特来分享一下。

    啥玩意儿?

    简单来说,这是一个轻量级的系统监控平台,使用 CloudFlare 免费搭建,能够让你实时监控自己的服务器、网站、API 接口状态,同时也带有一个公开分享的状态页面。

    为啥做这个?

    说实话,市面上的监控方案要么太重太复杂(比如 Prometheus + Grafana 全家桶),要么就是收费不便宜(比如 UptimeRobot Pro 、Pingdom 之类)。而我只是想有个简单干净的方案,能够:

    • 监控几台自己的小破服务器状态( CPU 、内存、磁盘这些)
    • 检测几个网站和 API 接口是否正常
    • 有个好看的状态页面放出来让用户知道服务健康状况

    于是,就整了这么个玩意儿。最最最重要的其实就是想有个支持自定义,且可以白嫖的方案。

    有啥特点?

    • 🔥 完全基于 CloudFlare:数据存储用的 D1 ,后端用的 Workers ,意味着你几乎不用花一分钱
    • 🌈 颜值在线:基于 React + Radix UI 开发的前端,简洁但不简单
    • 🔧 好上手:一行命令部署 agent ,后端直接 wrangler 一键部署
    • 🌐 HTTP/HTTPS 监控:支持定制请求方法、请求头和请求体,满足各种 API 监控需求
    • 📊 实时数据可视化:直观的图表展示,支持历史趋势分析

    已经做了啥?

    目前已经完成的功能:

    • ✅ 系统监控:实时收集 CPU 、内存、磁盘、网络等指标
    • ✅ HTTP 监控:检测你的网站、API 接口是否正常响应
    • ✅ 数据可视化:啥指标都有漂亮的图表展示
    • ✅ 自定义状态页:一个能放出去的状态页面,让用户知道你的服务状态

    计划整啥?

    • 🚧 异常通知:增加告警以及告警通知
    • 🚧 移动端:移动端 APP ,想来用 expo 糊一个 APP 应该也挺简单的,方便在手机上看

    咋用?

    基本上就三步走:

    1. 克隆仓库:git clone https://github.com/zaunist/xugou.git
    2. 部署后端:在 CloudFlare 账号配置好 D1 数据库,并部署后端到 worker
    3. 部署前端: 在 CloudFlare 部署前端到 pages

    详细教程放在了 WIKI 里。

    在线体验

    仓库地址: https://github.com/zaunist/xugou

    在线体验地址: https://xugou.mdzz.uk ,默认用户名密码:admin admin123

    在线状态页地址: https://xugou.mdzz.uk/status


    好了,就说这么多,对项目有啥问题或者需求,欢迎去提 issue 讨论

    第 1 条附言  ·  2 天前
    3 月 30 日更新:
    新增了 telegram 通知,当满足通知条件时,可以通过自定义的 tg bot 发送信息。
    https://xugou.mdzz.uk/ 默认提供了一个测试通道,效果可以在 https://t.me/xugou_group 查看
    14 条回复    2025-03-31 14:24:31 +08:00
    internelp
        1
    internelp  
       4 天前
    很不错,期待告警。
    chauncychan
        2
    chauncychan  
       4 天前
    很不错,期待告警功能上线
    qweruiop
        3
    qweruiop  
       4 天前
    很不错,期待可以配置 telegram 的报警。然后页面设计,比着 kuma 做就好啦!
    ggvoking
        4
    ggvoking  
       4 天前
    期待一下,感觉很符合我的需求,目前用的 koyeb 搭建的哪吒,但是不需要这么多功能。
    woodchen
        5
    woodchen  
       4 天前
    挺棒的
    feaul
        6
    feaul  
       4 天前
    不错,怎么能检测端口呢
    Jiki
        7
    Jiki  
       4 天前
    基于 CloudFlare 好评

    另外看到一个 Beszel 也挺不错,可以参考
    zaunist
        9
    zaunist  
    OP
       4 天前
    @taklele 我这里有 agent ,是一个使用 go 开发的客户端程序,这个就是由客户端来主动上报信息的。我计划的监控就是两种模式,一种是服务端去请求指定端点,获取服务状态,第二种是客户端主动注册到服务端,并上报客户端信息。目前这两种模式都有,只不过功能还比较简陋。

    这个监控,实际上我就是学着 uptime-kuma 和 beszel 来写的,实际上用户管理也是有的,只不过现在我没开放开注册功能,因为目前的实现还是太简陋,一般就使用一个管理员用户就行了。并且我考虑到使用这个监控,大多数都是为了白嫖 cloudflare ,那么单个网站的监控数量也不会多,所以想着功能简单一些就好。

    现在在我计划中,还需要补充的功能,一个是告警通知,另一个是做一个移动端 APP ,目前来看难度都不大,最大的问题是我能不能从炉石传说里抽出时间来搞😂
    taklele
        10
    taklele  
       4 天前
    我看到客户端功能了,理念是一致的。
    客户端还需要下载安装等等。我说那个网站就轻很多了,一条请求搞定。
    炉石传说刚开新版本,是比较难抽时间,还好我是玩酒馆的
    taklele
        11
    taklele  
       4 天前
    @zaunist #9
    我看到客户端功能了,理念是一致的。
    客户端还需要下载安装等等。我说那个网站就轻很多了,一条请求搞定。
    炉石传说刚开新版本,是比较难抽时间,还好我是玩酒馆的
    zaunist
        12
    zaunist  
    OP
       4 天前
    @taklele 一条请求的话,应该是自动去下载脚本,然后脚本去执行安装客户端这些操作吧,这个我也考虑过,但是有一些细节的问题我当时没想好怎么设计,后面好好想想怎么去实现吧
    laox0
        13
    laox0  
       19 小时 30 分钟前
    太好了,正需要,传统监控,在自己服务器监控可用性,但是服务器都挂了,那永远没法发送异常通知
    为此额外单独弄一台服务器又没必要,有 CF 大善人做后端,那就无敌了
    期待异常通知,希望可以支持企微通知
    zaunist
        14
    zaunist  
    OP
       14 小时 46 分钟前
    @laox0 有需求欢迎去 github 提交 issue 讨论,论坛里的评论我担心过段时间不看就忘记了😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 21:11 · PVG 05:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.