Files
wenzi/docs/OPS_CHECKLIST.md

410 lines
13 KiB
Markdown
Raw Normal View History

# 🦟 蚊子项目 - 运维检查清单
**清单版本**: 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团队