# 轻量级监控配置指南 ## 📋 监控架构 ### 核心组件 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: - **Monitor Type**: HTTP(s) - **URL**: https://www.novalon.cn - **Monitoring Interval**: 5 minutes - **Alert Contacts**: ops@novalon.cn #### 配置告警 在 UptimeRobot 中设置: - **Down Alert**: 网站不可用时发送邮件 - **Up Alert**: 网站恢复时发送邮件 - **SSL Expiry**: SSL 证书过期提醒 #### 高级配置 ```yaml # 推荐的监控端点 - 主页: 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`: ```env NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX ``` #### 集成到应用 创建 `src/lib/analytics.ts`: ```typescript 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` 中添加: ```typescript import Script from 'next/script'; export default function RootLayout({ children }: { children: React.ReactNode }) { return (
{process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID && ( )} {children} ); } ``` ### 4. 健康检查 API(已实现) 健康检查端点:`/api/health` **返回数据:** ```json { "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. 清理缓存 ## 📞 联系方式 - **运维告警**: ops@novalon.cn - **业务咨询**: contact@novalon.cn ## 📚 相关文档 - [生产部署指南](PRODUCTION_DEPLOYMENT.md) - [错误监控配置](SENTRY_SETUP.md) - [性能优化指南](PERFORMANCE_OPTIMIZATION.md)