253 lines
4.9 KiB
Markdown
253 lines
4.9 KiB
Markdown
# 轻量级监控配置指南
|
||
|
||
## 📋 监控架构
|
||
|
||
### 核心组件
|
||
|
||
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 (
|
||
<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`
|
||
|
||
**返回数据:**
|
||
|
||
```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)
|