SuprithN236/production-monitoring-incident-sim
GitHub: SuprithN236/production-monitoring-incident-sim
该项目通过在 AWS EC2 上部署 Nginx 并配合 UptimeRobot 监控,模拟了一次完整的生产环境宕机事件及响应流程。
Stars: 0 | Forks: 0
# 生产环境监控与事件响应模拟
## 概述
## 技术栈
- **计算:** AWS EC2 (Ubuntu, t2.micro / 免费套餐)
- **Web 服务器:** Nginx
- **监控与告警:** UptimeRobot
- **事件跟踪:** Jira (Cloud,免费套餐)
- **文档:** 本仓库
## 架构
```
[UptimeRobot] --HTTP check every 1 min--> [EC2 Instance running Nginx]
|
(Public IP)
```
## 我的操作
1. 配置了一台 Linux EC2 实例,并安装 Nginx 作为 Web 服务。
2. 配置了 UptimeRobot,通过每分钟一次的 HTTP 检查来监控服务,并在停机时发送邮件告警。
3. 通过手动停止 Nginx 服务模拟了生产环境宕机。
4. 在宕机后 1 分钟内收到了停机告警。
5. 在 Jira 中记录了该事件,包括根本原因、解决方案和预防建议。
6. 恢复了服务,并通过监控仪表板确认其已恢复正常。
7. 在下方记录了完整的事件生命周期。
## 事件报告
**事件:** Web 服务不可用
**检测方式:** UptimeRobot 告警(邮件),[截图](./screenshots/uptime-alert.png)
**检测时间:** 约 1 分钟
**根本原因:** Nginx 服务被手动停止(模拟故障 — `systemctl stop nginx`)
**解决方案:** 重启 Nginx 服务(`systemctl start nginx`);通过 UptimeRobot 仪表板显示“正常”状态确认其已恢复
**解决时间:** 约 2 分钟
**预防 / 建议:**
- 在 Nginx 单元上启用 `systemd` 自动重启策略(`Restart=always`),以便在服务崩溃时能够自我恢复
- 添加辅助监控检查(例如,在 HTTP 检查之外增加进程级别的检查),以加快根本原因的排查
- 考虑采用负载均衡的多实例架构,以避免单点故障
**Jira 工单:** [工单链接] — 见 [截图](./screenshots/jira-ticket.png)
## 截图
- `screenshots/uptime-alert.png` — 停机告警邮件/仪表板
- `screenshots/jira-ticket.png` — 已记录并解决的事件工单
- `screenshots/service-restored.png` — 显示恢复状态的监控仪表板
## 展示的技能
Linux 系统管理、Nginx Web 服务器管理、AWS EC2、生产环境监控与告警、事件响应、根本原因分析、技术文档编写、Jira 工单管理。