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

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

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

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

    酷监控是一个高颜值的监控工具箱,支持网站监控/接口监控/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  
       72 天前
    uptime 吗
    star7th
        2
    star7th  
    OP
       72 天前
    @BrookO

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

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

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

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

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

    那确实是好几年前了
    JeffreyRSmith
        14
    JeffreyRSmith  
       70 天前
    @star7th #13 已经是十几年前啦
    zhouxiaodi
        15
    zhouxiaodi  
       70 天前
    @star7th #11 大佬,我是发送消息给飞书机器人,我估计是请求体的格式不符合飞书的标准,所以没有顺利接收到。我在其他场景测试成功了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3966 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:30 · PVG 13:30 · LAX 22:30 · JFK 01:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.