prudhviponnada/Automated-Incident-Response-System-FOR-LINUX

GitHub: prudhviponnada/Automated-Incident-Response-System-FOR-LINUX

该系统通过实时监控基础设施状态,自动检测故障、分类事件并通过 Ansible 执行零接触修复,旨在降低关键网络事件的平均恢复时间。

Stars: 0 | Forks: 0

# 自动化事件响应系统(Linux 版) 一个自动化、轻量级的网络运营中心(NOC)编排器,旨在检测基础设施故障、生成标准 JSON 警报,并执行一级自动分类和零接触修复。 该项目模拟了企业级的 SRE/NOC pipeline,弥合了基础设施监控与自动修复之间的鸿沟,显著降低了关键网络事件的平均恢复时间(MTTR)。 ## 🚀 核心功能 * **实时状态监控:** 使用内部 Docker 网络 IP 动态持续轮询目标节点,监控 HTTP 响应、CPU 使用率和网络延迟。 * **智能决策引擎:** 自动将事件分类为四种不同的故障类型(节点离线、应用错误、CPU 飙升、高延迟),并将它们路由到正确的修复 playbook。 * **JSON 警报生成:** 自动将故障数据结构化为标准 JSON payload,模拟企业级 webhook 警报。 * **零接触修复:** 集成 Ansible,在确认故障的那一刻立即执行特定的恢复 playbook,消除了手动 NOC 调查时间。 * **自动化事后报告:** 为每个已解决的事件生成带有时间戳的文本报告,计算精确的平均恢复时间(MTTR)以满足 SLA 合规性。 ## 🛠️ 技术栈 * **语言:** Python 3 * **基础设施:** Docker Engine & Docker Compose * **配置管理:** Ansible * **系统自动化:** `subprocess` 模块,用于原生操作系统和容器引擎交互 ## 📂 项目结构 ``` ├── docker-compose.yml # Provisions the simulated network nodes ├── detector_linux.py # The Watchdog: monitors nodes, CPU, and latency ├── incident_manager_linux.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_linux.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-LINUX ``` 启动模拟的网络环境: # **Bash** ``` docker compose up -d ``` ## 💻 **使用与演示** 要查看自动化事件生命周期的实际运行情况,您需要打开三个独立的终端窗口。 * 终端 1:启动编排器 此脚本充当自动化的 NOC 代理,等待警报。 # 终端 1:启动主编排器 **Bash** ``` python3 incident_manager_linux.py ``` # 终端 2:启动 watchdog 启动检测器。 此脚本持续监测网络环境。 ``` python3 detector_linux.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 的替代方案) 高延迟(原生 Linux 三层流量整形)架构说明:由于我们运行在原生 Linux 内核上,我们可以利用原生的 netem(网络模拟器)流量控制模块。此命令直接操纵容器的虚拟网络接口,将所有传出数据包延迟 3 秒,从而自然触发 1.5 秒的 SLA 违规。(注意:要求容器以 NET_ADMIN 权限运行)。 ``` docker exec --privileged failing_router sh -c "apk add --no-cache iproute2 && tc qdisc add dev eth0 root netem delay 3000ms" ``` ## **预期输出与报告** 一旦触发故障: 1. detector-linux.py 立即识别出性能下降,对故障类型进行分类,写入 active_alert.json,然后停止运行。 2. incident_manager_linux.py 检测到 JSON payload,读取 failure_type,并触发相应的 Ansible playbook。 3. Ansible 修复节点。 4. 编排器生成具体的事后报告(例如:report_INC-123456.txt),记录确切的平均恢复时间(MTTR)。 留下您宝贵的反馈,我乐于接受建议
标签:Ansible, Docker, NOC, SRE, 偏差过滤, 安全防御评估, 版权保护, 系统提示词, 自动化响应, 自动化运维, 请求拦截, 运维