Files
wenzi/docs/OPS_CHECKLIST.md
Your Name 91a0b77f7a test(cache): 修复CacheConfigTest边界值测试
- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl
- 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE
- 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查
- 所有1266个测试用例通过
- 覆盖率: 指令81.89%, 行88.48%, 分支51.55%

docs: 添加项目状态报告
- 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态
- 包含质量指标、已完成功能、待办事项和技术债务
2026-03-02 13:31:54 +08:00

410 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🦟 蚊子项目 - 运维检查清单
**清单版本**: v2.0
**创建日期**: 2026-01-21
**适用环境**: 生产环境
**检查频率**: 每日 + 发布前
---
## 📋 检查概览
### 检查维度
| 维度 | 检查项数 | 通过率 | 状态 |
|------|----------|--------|------|
| **系统健康** | 15项 | - | ⏳ 待检查 |
| **性能监控** | 12项 | - | ⏳ 待检查 |
| **安全合规** | 18项 | - | ⏳ 待检查 |
| **数据安全** | 10项 | - | ⏳ 待检查 |
| **运维自动化** | 8项 | - | ⏳ 待检查 |
| **备份恢复** | 7项 | - | ⏳ 待检查 |
**总计**: 70项检查项
---
## 🏥️ 一、系统健康检查
### 1.1 服务状态检查
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 应用服务运行状态 | `curl http://localhost:8080/actuator/health` | UP | ⏳ | - |
| 数据库连接状态 | `curl http://localhost:8080/actuator/health/db` | UP | ⏳ | - |
| Redis连接状态 | `curl http://localhost:8080/actuator/health/redis` | UP | ⏳ | - |
| 磧存命中率 | Redis CLI: `info stats` | >80% | ⏳ | - |
| JVM堆内存使用 | `curl http://localhost:8080/actuator/health/jvm` | <80% | ⏳ | - |
| 应用启动时间 | `curl http://localhost:8080/actuator/health/liveness` | < 60s | ⏳ | - |
| 依赖服务状态 | `curl http://localhost:8080/actuator/health/readiness` | UP | ⏳ | - |
### 1.2 基础设施检查
| 检查项 | 检查命令 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| CPU使用率 | `top``htop` | < 70% | ⏳ | - |
| 内存使用率 | `free -h` | < 80% | ⏳ | - |
| 磁盘空间使用率 | `df -h` | < 80% | ⏳ | - |
| 网络连接状态 | `ping 8.8.8.8` | 正常 | ⏳ | - |
| 防火墙状态 | `ufw status` | 正常 | ⏳ | - |
| 系统时间同步 | `timedatectl status` | 同步 | ⏳ | - |
---
## 📊 二、性能监控检查
### 2.1 应用性能指标
| 检查项 | 检查方法 | 目标值 | 实际值 | 状态 |
|--------|----------|--------|--------|------|
| API响应时间 | Grafana Dashboard | < 200ms | ⏳ | - |
| API错误率 | Grafana Dashboard | < 0.1% | ⏳ | - |
| 吞吐量 | Grafana Dashboard | > 500 QPS | ⏳ | - |
| 数据库连接池使用率 | Grafana Dashboard | < 80% | ⏳ | - |
| 数据库查询时间 | Grafana Dashboard | < 100ms | ⏳ | - |
| 缓存命中率 | Grafana Dashboard | > 80% | ⏳ | - |
| GC停顿时间 | Grafana Dashboard | < 100ms | ⏳ | - |
### 2.2 前端性能指标
| 检查项 | 检查方法 | 目标值 | 实际值 | 状态 |
|--------|----------|--------|--------|------|
| 首页加载时间 | Lighthouse | < 2s | ⏳ | - |
| 首屏渲染时间 | Lighthouse | < 1.5s | ⏳ | - |
| JavaScript执行时间 | Lighthouse | < 200ms | ⏳ | - |
| 资源加载优化 | Lighthouse | 绿色评分 | ⏳ | - |
| 图片优化率 | PageSpeed Insights | > 80% | ⏳ | - |
---
## 🔒 三、安全合规检查
### 3.1 应用安全
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| API密钥安全 | 代码审查 | 前缀8位强加密 | ⏳ | - |
| 输入验证 | 代码审查 | 完整验证 | ⏳ | - |
| SQL注入防护 | OWASP扫描 | 无漏洞 | ⏳ | - |
| XSS防护 | OWASP扫描 | 无漏洞 | ⏳ | - |
| CSRF防护 | OWASP扫描 | 有保护 | ⏳ | - |
| 文件上传安全 | 代码审查 | 类型限制+扫描 | ⏳ | - |
### 3.2 网络安全
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| HTTPS证书状态 | `curl -I https://api.example.com` | 有效 | ⏳ | - |
| TLS配置 | SSL Labs Test | A+ | ⏳ | - |
| 端口开放扫描 | `nmap -sS` | 只开放必要端口 | ⏳ | - |
| 防火墙规则 | `iptables -L` | 只允许必要流量 | ⏳ | - |
| 速率限制 | 负载测试 | 有效拦截 | ⏳ | - |
### 3.3 数据安全
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 数据库访问控制 | 代码审查 | 最小权限 | ⏳ | - |
| 敏感数据加密 | 代码审查 | 字段级加密 | ⏳ | - |
| 审计日志 | 日志检查 | 完整记录 | ⏳ | - |
| 数据备份加密 | 备份检查 | 加密存储 | ⏳ | - |
| GDPR合规 | 合规审查 | 符合要求 | ⏳ | - |
---
## 🔒 四、数据安全检查
### 4.1 数据完整性
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 外键约束 | 数据库检查 | 完整约束 | ⏳ | - |
| 数据一致性 | 数据库脚本 | 一致性验证 | ⏳ | - |
| 事务完整性 | 代码审查 | 正确使用 | ⏳ | - |
| 幂等性保证 | 接口测试 | 幂等实现 | ⏳ | - |
### 4.2 数据备份
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 数据库备份状态 | 备份脚本 | 成功执行 | ⏳ | - |
| 备份文件完整性 | 校验脚本 | 完整无损坏 | ⏳ | - |
| 备份恢复测试 | 恢复测试 | 成功恢复 | ⏳ | - |
| 备份保留策略 | 配置检查 | 30天滚动 | ⏳ | - |
| 异地备份 | 备份脚本 | 异地安全存储 | ⏳ | - |
---
## ⚙️ 五、运维自动化检查
### 5.1 部署自动化
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| Docker配置完整性 | Dockerfile检查 | 多环境支持 | ⏳ | - |
| CI/CD流水线 | GitHub Actions | 完整流程 | ⏳ | - |
| 自动化测试 | 流水线检查 | 全量执行 | ⏳ | - |
| 滚动更新机制 | 流水线检查 | 自动部署 | ⏳ | - |
| 回滚机制 | 脚本测试 | 快速回滚 | ⏳ | - |
### 5.2 监控告警
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 监控配置完整性 | Grafana检查 | 全量监控 | ⏳ | - |
| 告警规则覆盖 | 规则审查 | 全场景覆盖 | ⏳ | - |
| 告警通道测试 | 告警测试 | 多渠道通畅 | ⏳ | - |
| 监控数据准确性 | 数据校验 | 准确可靠 | ⏳ | - |
| 通知及时性 | 响应时间 < 5分钟 | ⏳ | - |
---
## 💾 六、备份恢复检查
### 6.1 备份策略
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 数据库备份频率 | 脚本检查 | 每日 | ⏳ | - |
| 配置文件备份 | 备份检查 | 每次变更 | ⏳ | - |
| 日志备份策略 | 日志配置 | 每日轮转 | ⏳ | - |
| 备份存储位置 | 备份检查 | 异地安全 | ⏳ | - |
### 6.2 恢复验证
| 检查项 | 检查方法 | 预期结果 | 实际状态 | 备注 |
|--------|----------|----------|----------|------|
| 数据库恢复测试 | 恢复演练 | 30分钟内完成 | ⏳ | - |
| 应用恢复测试 | 部署测试 | 10分钟内完成 | ⏳ | - |
| 配置恢复测试 | 恢复演练 | 5分钟内完成 | ⏳ | - |
| 灢复文档完整性 | 文档检查 | 详细的操作指南 | ⏳ | - |
---
## 📈 检查工具和脚本
### 7.1 自动化检查脚本
```bash
#!/bin/bash
# ops-checklist.sh - 系统健康检查脚本
echo "🦟 蚊子项目 - 运维检查开始 $(date)"
echo "=================================================="
# 1. 系统健康检查
echo "📋 1. 系统健康检查"
health_status=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/actuator/health)
if [ "$health_status" = "200" ]; then
echo "✅ 应用服务: UP"
else
echo "❌ 应用服务: DOWN ($health_status)"
fi
# 2. 数据库连接检查
db_status=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/actuator/health/db)
if [ "$db_status" = "200" ]; then
echo "✅ 数据库连接: 正常"
else
echo "❌ 数据库连接: 异常 ($db_status)"
fi
# 3. Redis连接检查
redis_status=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/actuator/health/redis)
if [ "$redis_status" = "200" ]; then
echo "✅ Redis连接: 正常"
else
echo "❌ Redis连接: 异常 ($redis_status)"
fi
echo "=================================================="
# 2. 性能检查
echo "📊 2. 性能检查"
# API性能测试
api_response_time=$(curl -o /dev/null -s -w "%{time_total}" "http://localhost:8080/api/v1/health")
echo "API响应时间: ${api_response_time}s"
# 检查缓存命中率
cache_hit_rate=$(redis-cli info | grep "keyspace_hit" | head -1)
echo "Redis缓存命中率: $cache_hit_rate"
echo "=================================================="
# 3. 安全检查
echo "🔒 3. 安全检查"
# 检查HTTPS证书
if command -v openssl &> /dev/null; then
cert_expiry=$(openssl s_client -connect api.example.com:443 -servername api.example.com 2>/dev/null </dev/null | openssl x509 -noout -dates | grep "notAfter" | cut -d= -f2)
echo "HTTPS证书到期时间: $cert_expiry"
fi
# 检查磁盘使用率
disk_usage=$(df -h / | awk 'NR==1 {print $5}' | sed 's/%//')
echo "磁盘使用率: $disk_usage%"
# 检查内存使用率
memory_usage=$(free | grep Mem | awk '{print ($3/$2)*100}')
echo "内存使用率: $memory_usage%"
echo "=================================================="
# 4. 备份检查
echo "💾 4. 备份检查"
# 检查最近备份时间
last_backup=$(find /backup/database -name "*.sql" -type f -mtime -1 | head -1)
if [ -n "$last_backup" ]; then
echo "最后备份时间: $last_backup"
else
echo "❌ 未找到备份文件"
fi
echo "=================================================="
echo "🦟 运维检查完成 $(date)"
```
### 7.2 手动检查命令
```bash
# 应用健康检查
curl -s http://localhost:8080/actuator/health | jq .
# 详细健康信息
curl -s http://localhost:8080/actuator/health/details | jq .
# 性能指标
curl -s http://localhost:8080/actuator/metrics | grep '.http_server_requests'
# 数据库连接数
psql -U postgres -h localhost -c "SELECT count(*) FROM pg_stat_activity WHERE state = 'active';"
# Redis信息
redis-cli info
# 系统资源
top -bn1 | head -20
# 磀查日志错误
tail -100 /var/log/mosquito/application.log | grep ERROR
# 检查备份状态
ls -la /backup/database/ | tail -5
```
---
## 🚨 告警和处理
### 8.1 告警级别定义
| 级别 | 条件 | 通知方式 | 处理时限 |
|------|------|--------|----------|
| **P0-严重** | 服务不可用 | 立即电话 + 短信 | 15分钟内 |
| **P1-高** | 性能严重下降 | 电话 + 邮件 | 30分钟内 |
| **P2-中** | 资源使用率高 | 邮件 | 2小时内 |
| **P3-低** | 预防性维护 | 邮件 | 24小时内 |
### 8.2 应急响应流程
#### P0-严重故障处理流程
1. **立即响应** (5分钟内)
- 通知运维团队和产品团队
- 启动应急响应小组
- 评估故障影响范围
2. **快速诊断** (15分钟内)
- 检查服务状态
- 查看日志和监控
- 定位故障根因
3. **应急处理** (30分钟内)
- 执行应急恢复方案
- 切换到备用系统(如有)
- 发布状态更新
4. **根因分析** (2小时内)
- 详细分析故障原因
- 制定永久解决方案
- 更新操作文档
5. **事后改进** (24小时内)
- 编写事故报告
- 完善预防措施
- 更新检查清单
---
## 📋 检查频率和时间
### 定期检查
| 检查类型 | 频率 | 执行时间 | 负责人 |
|----------|--------|----------|--------|
| 每日健康检查 | 每日 | 09:00 | 运维团队 |
| 每周性能检查 | 每周一 | 10:00 | 运维团队 |
| 每月安全扫描 | 每月1日 | 安全团队 |
| 每季度灾备演练 | 每季度 | DevOps团队 |
### 临时检查
| 情况 | 执行时机 |
|----------|----------|
| 发布前检查 | 每次发布前 |
| 重大变更后 | 变更完成后 |
| 节假日检查 | 长假开始前 |
| 异常事件后 | 事件处理后 |
---
## ✅ 检查完成确认
### 检查结果确认模板
```
🦟 蚊子项目运维检查报告
检查时间: 2026-01-21 XX:XX:XX
检查人: [运维负责人]
检查环境: [生产环境]
总体评估: [⚠️/✅]
系统健康: [通过/失败]
性能监控: [通过/失败]
安全合规: [通过/失败]
数据安全: [通过/失败]
运维自动化: [通过/失败]
备份恢复: [通过/失败]
发现问题:
1. [问题描述]
2. [解决方案]
3. [责任人]
4. [完成时限]
下次检查时间: 2026-01-22 09:00
```
---
## 📞 联系信息
| 角色 | 姓名 | 联系方式 | 在线时间 |
|------|------|----------|--------|
| 运维负责人 | [姓名] | [电话] | 7x24 |
| 安全负责人 | [姓名] | [电话] | 7x24 |
| 产品负责人 | [姓名] | [电话] | 9:00-18:00 |
**紧急联系方式**:
- 技术支持群组: [群组链接]
- 电话值班: [值班电话]
- 邮件告警: [告警邮箱]
---
**清单版本**: v2.0
**最后更新**: 2026-01-21
**维护团队**: DevOps团队