prudhviponnada/Automated-Incident-Response-System-FOR-WSL2
GitHub: prudhviponnada/Automated-Incident-Response-System-FOR-WSL2
一款运行在 WSL2 上的 Python 自动化网络监控与事件响应系统,通过持续轮询检测基础设施故障并自动触发 Ansible 修复流程,大幅缩短事件平均恢复时间。
Stars: 0 | Forks: 0
# WSL2 自动化事件响应系统
一个自动化、轻量级的网络运营中心 (NOC) 编排器,旨在检测基础设施故障、生成标准 JSON 警报,并执行 L1(一线)自动化分诊。
该项目模拟了一个企业级警报 pipeline,弥合了基础设施监控与自动化修复之间的差距,显著降低了关键网络事件的平均恢复时间 (MTTR)。
## 🚀 核心功能
* **实时状态监控:** 使用内部 Docker 网络 IP 动态持续轮询目标节点。
* **JSON 警报生成:** 自动将故障数据结构化为标准 JSON payload,模拟企业级 webhook 警报。
* **零接触分诊:** 在检测到警报的瞬间执行 L1 诊断检查(例如,系统电源状态验证),从而消除人工 NOC 调查时间。
* **解耦架构:** 采用微服务方法,其中检测 (`detector.py`) 和编排 (`incident_manager.py`) 通过基于文件的队列独立运行。
* **审计日志:** 维护包含所有事件状态和自动操作的专业且带有时间戳的日志。
## 🛠️ 技术栈
* **语言:** Python 3
* **基础设施:** Docker & Docker Compose
* **系统自动化:** `subprocess` 模块,用于原生 OS 和 Container Engine 交互
* **日志记录:** 标准 Python `logging` 库
## 📂 项目结构
```
├── docker-compose.yml # Provisions the simulated network nodes
├── detector.py # The Watchdog: monitors nodes, CPU, and latency
├── incident_manager.py # The Master Orchestrator: routes alerts to Ansible
├── remediate.yml # Playbook: Fixes complete node outages
├── remediate_app.yml # Playbook: Fixes HTTP 500 / Config corruption
├── remediate_cpu.yml # Playbook: Fixes 100% Resource Exhaustion
├── remediate_network.yml # Playbook: Fixes Latency/QoS degradation
├── active_alert.json # The dynamic alert payload (generated dynamically)
└── incident_response.log # The system audit trail (generated dynamically)
```
## ⚙️ ** 安装与前置条件**
* 您的系统上需要安装 Python 3.x 和 Docker。
* 将此仓库克隆到您的本地计算机。
* 导航到项目目录:
# **Bash**
```
cd Automated-Incident-Response-System-for-WSL2
```
启动模拟网络环境:
# **Bash**
```
docker compose up -d
```
## 💻 **使用与演示**
要查看运行中的自动化事件生命周期,您需要打开三个独立的终端窗口。
* 终端 1:启动 Orchestrator
此脚本充当自动化 NOC agent,等待警报。
# 终端 1:启动 Master Orchestrator **Bash**
```
python3 incident_manager.py
```
# 终端 2:启动 watchdog
启动 Detector。
此脚本持续监控网络环境。
```
python3 detector.py
```
# 终端 3:**Bash**
触发模拟中断。
场景 1:节点离线 (硬宕机)。使模拟路由器崩溃以触发事件响应 pipeline:
```
docker stop failing_router
```
场景 2:应用错误 (灰度故障)
模拟开发者推送了损坏的 Nginx 配置,导致 HTTP 500 错误。
```
docker exec failing_router sh -c "echo 'events {} http { server { listen 80; location / { return 500; } } }' > /etc/nginx/nginx.conf && nginx -s reload"
```
场景 3:资源耗尽 (CPU 飙升)
注入无限循环以将容器的 CPU 满载至 100%。
```
docker exec -d failing_router sh -c "while true; do true; done"
```
场景 4:高延迟 (WSL2 替代方案)
架构说明:由于 WSL2 内核缺乏用于三层网络整形的 netem 流量控制模块,此场景通过注入一个故意将响应延迟 3 秒的自定义 Python HTTP 服务器,在七层模拟网络拥塞,从而触发 1.5 秒的 SLA 违规。
```
docker exec -d failing_router sh -c "apk add --no-cache python3 && nginx -s quit && python3 -c 'import time, http.server; class S(http.server.SimpleHTTPRequestHandler): \n def do_GET(self): time.sleep(3); self.send_response(200); self.end_headers()\nhttp.server.HTTPServer((\"\", 80), S).serve_forever()'"
```
## **预期输出与报告**
一旦触发故障:
1. detector.py 会立即识别掉线情况,对故障类型进行分类,写入 active_alert.json,然后停止运行。
2. incident_manager.py 检测到 JSON payload,读取 failure_type,并触发相应的 Ansible playbook。
3. Ansible 修复节点。
4. Orchestrator 生成特定的事后分析报告 (Post-Mortem Report)(例如,report_INC-123456.txt),记录确切的平均恢复时间 (MTTR)。
留下您宝贵的反馈,我乐于接受建议
标签:Ansible, Docker, Python, 安全防御评估, 无后门, 版权保护, 系统提示词, 自动化运维, 请求拦截