免费开源!高颜值的监控工具,支持网站监控/接口监控/HTTPS 证书监控等多种监控类型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
star7th
V2EX    分享创造

免费开源!高颜值的监控工具,支持网站监控/接口监控/HTTPS 证书监控等多种监控类型

  •  
  •   star7th 157 天前 2794 次点击
    这是一个创建于 157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    酷监控 | 高颜值的监控工具

    酷监控是一个高颜值的监控工具箱,支持网站监控/接口监控/HTTPS 证书监控等多种监控类型,帮助开发者及运维人员实时掌握网站/接口运行状态。本项目支持 Docker 一键快速部署,拥有美观现代的界面设计。

    功能特点

    • 多种监控类型:支持 HTTP/HTTPS 网站、API 接口、HTTPS 证书过期、TCP 端口、MySQL/Redis 数据库等多种监控
    • 推送监控:支持被动接收客户端的心跳推送,实现不可直接访问设备的监控
    • 精美界面:深色/浅色主题切换,响应式设计适配各种设备尺寸
    • 强大通知系统:支持邮件、Webhook 、微信通知渠道等多种通知方式
    • 数据可视化:直观的状态图表和分析功能,快速了解系统运行状况
    • 持久化存储:使用 SQLite 数据库,轻量级部署无需额外依赖

    截图预览

    控制台主界面

    酷监控 | 高颜值的监控工具

    单个监控项详情页

    酷监控 | 高颜值的监控工具

    添加监控

    酷监控 | 高颜值的监控工具

    通知设置

    酷监控 | 高颜值的监控工具

    监控类型

    • HTTP/HTTPS 网站监控:检查网站可用性和响应时间
    • HTTPS 证书监控:检查 SSL 证书过期时间,提前预警
    • 关键词监控:检查网页内容是否包含特定关键词
    • TCP 端口监控:检查端口是否开放
    • MySQL/MariaDB 数据库监控:检查数据库连接和基本查询
    • Redis 数据库监控:检查 Redis 服务状态
    • 推送监控:被动接收客户端的心跳推送

    技术栈

    • 前端框架:Next.js
    • 后端:Next.js API Routes
    • 数据库:SQLite (通过 Prisma ORM)
    • UI 库:TailwindCSS
    • 图表库:ECharts
    • 认证:NextAuth.js
    • 计划任务:Croner

    安装与部署

    使用 Docker 部署(推荐)

    使用 Docker 是运行酷监控最简单的方式:

    # 适用于 x86/x64 架构 docker run -d --name coolmonitor --restart always -p 3333:3333 -v ~/coolmonitor_data:/app/data star7th/coolmonitor:latest # 适用于 ARM 架构(如树莓派、Apple Silicon ) docker run -d --name coolmonitor --restart always -p 3333:3333 -v ~/coolmonitor_data:/app/data star7th/coolmonitor:arm-latest 

    初始化说明

    首次启动时,系统会自动:

    1. 检查数据库是否存在
      • 如果存在预置的数据库,则直接使用
      • 如果不存在,则自动初始化数据库结构
    2. 首次访问时,系统会引导你创建管理员账户

    访问http://localhost:3333开始使用酷监控。

    项目结构

    coolmonitor/ ├── src/ │ ├── app/ - Next.js 应用目录 │ │ ├── dashboard/ - 监控面板 │ │ ├── auth/ - 用户认证 │ │ └── api/ - API 接口 │ ├── components/ - 可复用组件 │ ├── lib/ - 工具函数和库 │ │ ├── monitors/ - 监控检查器实现 │ │ ├── database-upgrader.ts - 数据库升级工具 │ │ └── system-init.ts - 系统初始化 │ ├── hooks/ - 自定义 Hook │ ├── context/ - React 上下文 │ └── types/ - TypeScript 类型定义 └── prisma/ - 数据库模型和迁移 

    链接

    15 条回复    2025-05-07 21:03:46 +08:00
    BrookO
        1
    BrookO  
       157 天前
    uptime 吗
    star7th
        2
    star7th  
    OP
       157 天前
    @BrookO

    参考过人家的功能。做减法,然后免费开源出去
    opscoffeecn
        3
    opscoffeecn  
       157 天前 via Android
    感觉还不错,mark
    CouleurVVEX
    nbsp;   4
    CouleurVVEX  
       157 天前
    感谢开源
    klxyy
        5
    klxyy  
       157 天前
    和 uptime 区别在哪?
    star7th
        6
    star7th  
    OP
       157 天前
    @klxyy

    不清楚。我从需求出发,符合使用的产品。没有深度使用 uptime ,只是参考过它的功能。目前觉得要 coolmonitor 更简单易用一点。
    UTC0700
        7
    UTC0700  
       157 天前
    加个监控网页变化的功能?
    star7th
        8
    star7th  
    OP
       157 天前
    @UTC0700

    有种监测类型是检测 http 关键字。你可以根据实际来指定关键字来判断网页变化。
    zhouxiaodi
        9
    zhouxiaodi  
       157 天前
    感谢大佬,已经用上了。不过 webhook 通知发送无效果。具体表现:发送测试通知,提示发送成功,但是收不到。
    star7th
        10
    star7th  
    OP
       157 天前
    @zhouxiaodi

    我记得开发的时候测试过这个功能是 ok 的,能收到报文。你那边确定网络 ok 吗,能打印出相关报文吗
    star7th
        11
    star7th  
    OP
       156 天前
    @zhouxiaodi

    我这边试了下,是可以收到 webhook 信息的。你那边可能是网络问题。
    对了,另外跟你讲,如果你的 webhook 网址是本机,则无法使用 127.0.0.1 这样的本机地址。因为监控软件跑在 docker 里面,它的本机跟宿主机是不一样的。访问 127.0.0.1 只是容器内部的网络
    JeffreyRSmith
        12
    JeffreyRSmith  
       156 天前
    支持一下大佬,从“树洞” 就开始关注的老粉丝了 哈哈
    star7th
        13
    star7th  
    OP
       156 天前
    @JeffreyRSmith

    那确实是好几年前了
    JeffreyRSmith
        14
    JeffreyRSmith  
       156 天前
    @star7th #13 已经是十几年前啦
    zhouxiaodi
        15
    zhouxiaodi  
       156 天前
    @star7th #11 大佬,我是发送消息给飞书机器人,我估计是请求体的格式不符合飞书的标准,所以没有顺利接收到。我在其他场景测试成功了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     879 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 21:13 PVG 05:13 LAX 14:13 JFK 17:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86