标签: 网站监控

  • Uptime Kuma 自建监控神兵利器,守护网站永不断线

    Uptime Kuma 自建监控神兵利器,守护网站永不断线

    如果你正在寻找一款既有大厂风范,又完全免费开源的网站监控工具,那么 Uptime Kuma 绝对是你的最终站。它不仅能实时监测网站的在线状态,还能在服务异常时第一时间通过微信、电报或邮件通知你,让你在用户发现之前解决问题。

    ✨ 为什么选择 Uptime Kuma?

    1. 极致的视觉体验

    Uptime Kuma 的 UI 设计非常现代,支持暗黑模式。它不仅提供动态的响应时间折线图,还能为你生成一个精美的公开状态页(Status Page),你可以直接挂载到博客导航栏,向读者展示服务器的稳定性。

    2. 多维度的监测类型

    它不只是能 Ping 你的服务器:

    • HTTP(s):监测网页、API 接口。
    • TCP / UDP / Ping:监测服务器端口及网络通畅度。
    • DNS:监测域名解析记录是否正常。
    • Docker 容器:实时观察容器运行状态。
    • Game Servers:支持 Minecraft 等游戏服务器监控。

    3. “轰炸式”的告警通知

    内置支持 90+ 种通知渠道,包括但不限于:

    • 国内友好:企业微信、钉钉、飞书、Bark、Server 酱。
    • 国际主流:Telegram、Discord、Slack、Email (SMTP)。

    🏗️ 部署指南:两种主流安装方式

    方案一:Docker 部署(强烈推荐)

    这是最简单、最稳健的方式,仅需一行命令。

    docker run -d \
      --name uptime-kuma \
      -p 3001:3001 \
      -v uptime-kuma:/app/data \
      --restart always \
      louislam/uptime-kuma:1
    
    • 访问地址http://服务器IP:3001
    • 数据持久化:配置信息将保存在 Docker 卷 uptime-kuma 中,即使升级版本也不会丢失数据。

    版本更新

    重新拉取最新的 Docker 镜像,并创建一个包含相同卷的另一个容器。

    对于用我的“如何使用”命令安装Uptime Kuma的人来说,你可以用以下方式更新:

    docker pull louislam/uptime-kuma:2
    docker stop uptime-kuma
    docker rm uptime-kuma
    
    # Default
    docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
    
    # If you are not using default value
    # docker run -d --restart=always -p <YOUR PORT>:3001 -v <YOUR VOLUME>:/app/data --name uptime-kuma louislam/uptime-kuma:2

    附注:每次新版本都会需要一些时间来构建docker镜像,如果还没发布,请耐心等待。

    Docker-Compose

    cd "<YOUR docker-compose.yml DIRECTORY>"
    docker compose pull
    docker compose up -d --force-recreate

    方案二:宝塔面板部署(新手友好)

    如果你使用的是宝塔面板:

    1. 进入 [软件商店],搜索并安装 Docker
    2. 在 Docker 管理器的 [项目模板][应用商店] 中搜索 Uptime Kuma 一键部署。
    3. 或者直接在 [终端] 输入上方的 Docker 命令。

    🛠️ 初始化与进阶配置

    1. 创建管理员

    首次进入页面,系统会提示你创建第一个管理员账号。

    2. 配置反向代理(启用域名访问)

    为了安全和专业性,建议为监控面板配置域名。在 Nginx 配置文件中加入:

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass         http://localhost:3001/;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
    }

    注意:必须配置 Upgrade Connection 请求头,否则 WebSocket 无法连接,页面将无法实时更新。

    3. 建立状态页

    在后台点击 [状态页] -> [添加新状态页]。你可以自定义 Slug(如 /status),并挑选要公开展示的监控项。


    ⚖️ 优缺点总结

    • ✅ 优点
      • 零配置压力:全图形化界面,鼠标点点就能用。
      • 低资源占用:Node.js 编写,即便是 1 核 512M 的 VPS 也能流畅运行。
      • 功能丰富:支持代理访问、证书过期预警、多因子认证 (2FA)。
    • ⚠️ 缺点
      • 单点局限:如果 Uptime Kuma 所在的服务器挂了,它就无法发出告警。建议部署在与主业务不同的机房。

    🎯 总结:谁最需要 Uptime Kuma?

    • 多机站长:手里有几台服务器,想一眼看全所有服务的健康度。
    • API 开发者:需要监控接口延迟和可用性。
    • 完美主义者:需要一个漂亮的界面来提升自己运维工作的“仪式感”。
    项目地址演示地址
    Uptime-kumaDemo.kuma.pet/start-demo

  • Gatus 极致简约的健康状态监控面板,让服务状态一目了然

    Gatus 极致简约的健康状态监控面板,让服务状态一目了然

    如果你厌倦了 Uptime Kuma 那种需要点点点的繁琐后台,或者觉得 Prometheus+Grafana 太过笨重,那么 Gatus 绝对会让你眼前一亮。它是一款用 Go 语言编写的健康监测工具,以其极致轻量的资源占用和精美的状态墙界面,成为了当下开发者监控服务的首选。


    🔍 Gatus 到底是什么?

    Gatus(意为 “Gatekeeper”)不仅能监测你的网站是否在线,它还能深入业务逻辑:

    1. 断言式监测:你可以定义“状态码必须为 200”且“响应体必须包含 success 字段”才算健康。
    2. 多维度支持:支持 HTTP、ICMP (Ping)、TCP、UDP 甚至是 DNS 查询监测。
    3. 配置即代码 (IaC):所有的监控项都写在一个 config.yaml 文件里,这意味着你可以轻松备份、迁移或通过 Git 进行版本管理。

    ✨ Gatus 的四大杀手锏

    • 可视化状态墙:采用类似 GitHub 贡献图的方格设计,直观展示历史在线率。
    • 极致轻量:仅需几十 MB 内存即可监控成百上千个服务。
    • 强大的告警生态:原生支持 Discord, Slack, Telegram, Teams, PagerDuty, 邮件等几十种通知渠道。
    • 无依赖运行:单二进制文件,不需要复杂的数据库环境(默认使用 SQLite,也支持 PostgreSQL/MySQL)。

    🏗️ 部署指南:两种主流安装方式

    方式一:Docker (推荐)

    步骤 1:安装 Docker 环境(未安装的话)

    # 一键安装 Docker(通用 Linux 脚本)
    curl -fsSL https://get.docker.com | sh
    
    # 安装 Docker Compose 插件(新版 Docker)
    apt update && apt install -y docker-compose-plugin
    
    # 验证安装(出现版本号即成功)
    docker compose version

    步骤 2:创建 Gatus 工作目录 + 配置文件

    # 1. 创建目录并进入(统一管理配置和数据)
    mkdir -p /root/gatus && cd /root/gatus
    
    # 2. 创建 docker-compose.yml 核心配置文件
    cat > docker-compose.yml << EOF
    version: '3'
    services:
      gatus:
        image: twinproduction/gatus:latest  # 官方镜像
        container_name: gatus              # 容器名,方便管理
        restart: always                    # 开机自启/异常重启
        ports:
          - "8080:8080"          # 端口为8080
        volumes:
          - ./config:/config               # 监控规则配置持久化(关键)
          - ./data:/data                   # 监控数据/日志持久化
        environment:
          - TZ=Asia/Shanghai               # 时区配置(避免时间错乱)
    EOF
    
    # 3. 创建监控规则配置文件(自定义监控目标)
    mkdir -p config && cat > config/config.yaml << EOF
    # API 服务配置(固定)
    api:
      enabled: true
      port: 8080
      host: 0.0.0.0
    
    # 监控规则(核心,可自定义多个监控目标)
    endpoints:
      # 示例1:监控百度可用性
      - name: 百度-可用性监控
        url: https://www.baidu.com
        interval: 30s                      # 每30秒检测一次
        conditions:
          - "[STATUS] == 200"              # 状态码200则正常
        alerts: []                         # 告警配置(后续可加邮箱/钉钉)
    
      # 示例2:监控自己的网站(替换成你的域名)
      - name: 我的网站-监控
        url: https://你的域名.com
        interval: 60s
        conditions:
          - "[STATUS] == 200"              # 状态码正常
          - "[RESPONSE_TIME] < 1000"       # 响应时间<1秒则正常
    
      # 示例3:监控API接口(可选)
      - name: 测试API-监控
        url: https://api.example.com/test
        method: GET                        # 请求方式
        interval: 1m                       # 每1分钟检测一次
        conditions:
          - "[STATUS] == 200"
    EOF

    步骤 3:启动 Gatus 容器

    # 后台启动容器(第一次启动会自动拉取镜像)
    docker compose up -d
    
    # 查看容器状态(显示 Up 即成功)
    docker compose ps
    
    # 查看日志(排错/验证)
    docker compose logs -f gatus

    步骤4:修改 Gatus 配置文件

    # 1. 编辑配置文件 config.yaml
    #键盘i进入编辑
    vi /root/gatus/config/config.yaml
    
    # 改完按 Esc → :wq 保存退出
    
    # 2. 重启容器生效
    docker restart gatus

    宝塔用户:商店直接安装

    在左侧Docker商店搜索Gatus 项目名称即可安装。如果使用上方命令安装的在这里也能看到找到容器。

    修改监控地址打开容器目录找到config-config.yaml 打开并修改 随后容器容器即可

    方式二:二进制直接运行

    适合追求原汁原味 Go 运行效率的用户。

    1. GitHub Releases 下载对应架构的压缩包。
    2. 解压并赋予执行权限。
    3. 确保同目录下存在 config.yaml
    4. 执行命令:./gatus

    ⚙️ 进阶:配置详解与告警设置

    Gatus 的强大之处在于其 config.yaml 的灵活性。

    功能配置示例摘要
    状态码监测conditions: [STATUS] == 200
    延迟监测conditions: [RESPONSE_TIME] < 500 (要求延迟小于 500ms)
    告警配置alerting: telegram: token: "xxx" chat-id: "xxx"
    数据库持久化storage: type: postgres, path: "postgres://..."

    ⚖️ 优缺点评价

    • ✅ 优点
      • 颜值极高:方块状的状态历史图非常符合现代审美。
      • 部署极简:一个文件、一个配置,干干净净。
      • 通知全面:几乎市面上所有的推送工具它都支持。
    • ⚠️ 缺点
      • 无后台管理界面:新增监控项必须修改 yaml 文件并重启(或平滑加载),对非技术用户不太友好。

    🎯 总结:谁最适合 Gatus?

    • 极简主义博主:想要一个大方、美观的公开状态页挂在博客导航栏。
    • 运维开发者:习惯使用配置文件管理资产,希望监控系统能随 Git 走。
    • 服务器收集癖:手中有多台机器,需要一个极其省内存的监测点。

    项目地址:TwiN/gatus:自动化的开发者导向状态页面,支持警报和事件