Files
novalon-website/docs/LIGHTWEIGHT_MONITORING.md
T

4.9 KiB
Raw Blame History

轻量级监控配置指南

📋 监控架构

核心组件

  1. Sentry - 错误监控和性能追踪
  2. UptimeRobot - 外部可用性监控
  3. Google Analytics - 用户行为和访问统计
  4. 健康检查API - 内部服务状态
  5. 邮件告警 - 关键问题通知

🔧 配置步骤

1. Sentry 错误监控(已完成)

Sentry 已经集成在项目中,配置文件:

  • src/lib/sentry.ts - Sentry 初始化
  • .env.production - Sentry DSN 配置

功能:

  • JavaScript 错误捕获
  • 性能监控
  • 用户会话回放
  • 错误告警

2. UptimeRobot 可用性监控

注册和配置

  1. 访问 https://uptimerobot.com/
  2. 注册免费账号
  3. 创建新的 Monitor

配置告警

在 UptimeRobot 中设置:

  • Down Alert: 网站不可用时发送邮件
  • Up Alert: 网站恢复时发送邮件
  • SSL Expiry: SSL 证书过期提醒

高级配置

# 推荐的监控端点
- 主页: https://www.novalon.cn
- 健康检查: https://www.novalon.cn/api/health
- 管理后台: https://www.novalon.cn/admin

3. Google Analytics 访问统计

获取跟踪 ID

  1. 访问 https://analytics.google.com/
  2. 创建新的 GA4 属性
  3. 复制测量 ID(格式:G-XXXXXXXXXX

配置 Next.js

更新 .env.production

NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX

集成到应用

创建 src/lib/analytics.ts

export const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID;

export const pageview = (url: string) => {
  if (typeof window !== "undefined" && GA_MEASUREMENT_ID) {
    window.gtag("config", GA_MEASUREMENT_ID, {
      page_path: url,
    });
  }
};

export const event = (action: string, category: string, label?: string) => {
  if (typeof window !== "undefined" && GA_MEASUREMENT_ID) {
    window.gtag("event", action, {
      event_category: category,
      event_label: label,
    });
  }
};

src/app/layout.tsx 中添加:

import Script from 'next/script';

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html>
      <head>
        {process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID && (
          <Script
            src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID}`}
            strategy="afterInteractive"
          />
        )}
      </head>
      <body>{children}</body>
    </html>
  );
}

4. 健康检查 API(已实现)

健康检查端点:/api/health

返回数据:

{
  "status": "healthy",
  "timestamp": "2024-01-01T00:00:00Z",
  "version": "1.0.0",
  "checks": {
    "database": "connected",
    "uptime": 123456
  }
}

5. 邮件告警配置

简化告警策略

只监控关键问题:

  • 服务不可用(通过 UptimeRobot
  • 严重错误(通过 Sentry
  • 数据库连接失败(通过健康检查)

配置邮件通知

Sentry 告警配置:

  1. 登录 Sentry Dashboard
  2. 进入 Settings → Alerts
  3. 创建新的 Alert Rule
    • Issue: Critical Errors
    • Environment: Production
    • Frequency: Immediately
    • Email: ops@novalon.cn

UptimeRobot 告警配置:

  • 添加邮件联系人:ops@novalon.cn
  • 设置告警频率:立即通知

📊 监控指标

关键指标

可用性指标

  • 网站正常运行时间(目标:> 99.9%)
  • 响应时间(目标:< 2秒)
  • SSL 证书状态

错误指标

  • JavaScript 错误数量
  • API 错误率
  • 数据库错误

用户指标

  • 日活跃用户
  • 页面浏览量
  • 平均会话时长
  • 跳出率

告警阈值

指标 阈值 告警级别
网站可用性 < 99.9% Critical
响应时间 > 3秒 Warning
错误率 > 5% Critical
数据库连接 失败 Critical

🔧 维护和运维

日常检查

每日检查

  • 查看 Sentry 错误报告
  • 检查 UptimeRobot 状态
  • 查看关键日志

每周检查

  • 分析 Google Analytics 数据
  • 检查性能趋势
  • 审查安全日志

每月检查

  • 更新依赖包
  • 备份数据库
  • 审查监控配置

故障处理流程

1. 网站不可用

  1. 检查服务器状态
  2. 查看应用日志
  3. 重启服务
  4. 通知相关人员

2. 错误激增

  1. 查看 Sentry 错误详情
  2. 分析错误模式
  3. 修复关键问题
  4. 部署热修复

3. 性能下降

  1. 检查服务器资源
  2. 分析慢查询
  3. 优化数据库
  4. 清理缓存

📞 联系方式

📚 相关文档