4.9 KiB
4.9 KiB
轻量级监控配置指南
📋 监控架构
核心组件
- Sentry - 错误监控和性能追踪
- UptimeRobot - 外部可用性监控
- Google Analytics - 用户行为和访问统计
- 健康检查API - 内部服务状态
- 邮件告警 - 关键问题通知
🔧 配置步骤
1. Sentry 错误监控(已完成)
Sentry 已经集成在项目中,配置文件:
src/lib/sentry.ts- Sentry 初始化.env.production- Sentry DSN 配置
功能:
- JavaScript 错误捕获
- 性能监控
- 用户会话回放
- 错误告警
2. UptimeRobot 可用性监控
注册和配置
- 访问 https://uptimerobot.com/
- 注册免费账号
- 创建新的 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 证书过期提醒
高级配置
# 推荐的监控端点
- 主页: https://www.novalon.cn
- 健康检查: https://www.novalon.cn/api/health
- 管理后台: https://www.novalon.cn/admin
3. Google Analytics 访问统计
获取跟踪 ID
- 访问 https://analytics.google.com/
- 创建新的 GA4 属性
- 复制测量 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 告警配置:
- 登录 Sentry Dashboard
- 进入 Settings → Alerts
- 创建新的 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. 网站不可用
- 检查服务器状态
- 查看应用日志
- 重启服务
- 通知相关人员
2. 错误激增
- 查看 Sentry 错误详情
- 分析错误模式
- 修复关键问题
- 部署热修复
3. 性能下降
- 检查服务器资源
- 分析慢查询
- 优化数据库
- 清理缓存
📞 联系方式
- 运维告警: ops@novalon.cn
- 业务咨询: contact@novalon.cn