bsrlabhinav/Incident_Response_RCA-Analyzer

GitHub: bsrlabhinav/Incident_Response_RCA-Analyzer

一个覆盖事件创建、调查、解决、RCA到关闭全生命周期的生产事件管理平台,内置状态机工作流和SLA追踪。

Stars: 0 | Forks: 0

# 事件响应平台 一个全生命周期的事件管理平台,用于跟踪生产事件从创建、调查、解决、根本原因分析(RCA)到关闭的全过程。基于 Spring Boot、React 和 Elasticsearch 构建。 ## 功能特性 - **事件管理** — 创建、分配、更新和关闭事件,包含严重级别和责任人跟踪 - **状态机工作流** — 强制执行状态转换(OPEN → INVESTIGATING → FIXED → RCA_PENDING → CLOSED),并在调查前确保已分配责任人,关闭前确保存在 RCA - **SLA 跟踪** — 针对不同严重级别的确认和解决 SLA 阈值,并自动检测违规 - **根本原因分析** — 记录 RCA,包含类别、摘要和行动项 - **证据附件** — 将支持性证据附加到事件中 - **审计追踪** — 自动记录所有事件状态变更 - **Shifu 报告引擎** — 可插拔的分析功能,预定义了事件摘要、SLA 违规和 RCA 类别的报告 - **数据库浏览器** — 浏览原始 Elasticsearch 文档,支持过滤器和全文搜索 - **用户管理** — 创建和管理具有角色的用户,用于分配和报告 ## 文档 | 文档 | 描述 | |----------|-------------| | [ARCHITECTURE.md](ARCHITECTURE.md) | 深入的架构指南,涵盖后端层、数据模型、状态机设计、Shifu 报告引擎内部机制、REST API 参考、前端结构、数据流图和扩展性模式 | | [start.sh](start.sh) | 一键设置脚本,启动 Elasticsearch、后端、前端,并可选择填充示例数据 | | [seed-data.sh](incident-response-ui/seed-data.sh) | 为本地开发环境填充示例事件、用户和 RCA | ## 技术栈 | 层级 | 技术 | |-------|------------| | Backend | Java 17, Spring Boot 3.2.3 | | Database | Elasticsearch 8.11.4 | | Frontend | React 19, Vite, Tailwind CSS | | Routing | React Router 7 | | Build | Gradle | | Testing | JUnit 5, Mockito, Testcontainers, Playwright | ## 快速开始 ### 前置条件 - Java 17+ - Node.js 18+ - Docker ### 一键启动 [`start.sh`](start.sh) 脚本负责处理完整的环境设置: ``` ./start.sh ``` 这将启动 Elasticsearch、Spring Boot 后端和 Vite 开发服务器,然后填充示例数据。 | 标志 | 描述 | |------|-------------| | `--no-seed` | 跳过填充示例数据 | | `--clean` | 清除现有数据并重新填充 | ### 手动设置 **1. 启动 Elasticsearch** ``` docker run -d --name incident-es \ -p 9200:9200 \ -e "discovery.type=single-node" \ -e "xpack.security.enabled=false" \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ docker.elastic.co/elasticsearch/elasticsearch:8.11.4 ``` **2. 启动后端** ``` ./gradlew bootRun ``` **3. 启动前端** ``` cd incident-response-ui npm install npm run dev ``` **4. 填充示例数据(可选)** ``` cd incident-response-ui bash seed-data.sh ``` 后端运行在 `http://localhost:8080`,前端运行在 `http://localhost:3000`(将 `/api/*` 代理到后端)。 ## 架构 ``` Browser (React) → Vite :3000 → /api/* proxy → Spring Boot :8080 → Elasticsearch :9200 ``` ### 后端层级 | 层级 | 职责 | |-------|---------------| | Controllers | HTTP 处理、请求验证、响应映射 | | Services | 业务逻辑、编排、状态机调用 | | State Machine | 转换验证、守卫条件和副作用动作 | | Reporting (Shifu) | 报告定义、ES 聚合查询、分析 | | Repositories | Spring Data Elasticsearch 数据访问 | ### 事件生命周期 ``` OPEN ──→ INVESTIGATING ──→ FIXED ──→ RCA_PENDING ──→ CLOSED (requires owner) (requires RCA) ``` 守卫条件在每次转换时强制执行前置条件,动作会自动记录审计条目并计算 SLA 违规。有关完整的转换图和详细信息,请参阅架构文档中的 [State Machine](ARCHITECTURE.md#incident-lifecycle--state-machine) 和 [Guards & Actions](ARCHITECTURE.md#guards--actions) 部分。 ### Elasticsearch 索引 | 索引 | 用途 | |-------|---------| | `incidents` | 核心事件文档 | | `incident_audits` | 变更审计追踪 | | `incident_evidence` | 附件证据 | | `root_cause_analyses` | RCA 记录 | | `users` | 用户配置文件 | ## API 所有端点均位于 `/api/` 下: | 资源 | 路径 | 描述 | |----------|------|-------------| | Incidents | `/api/incidents` | CRUD、状态转换、分配责任人 | | Reports | `/api/reports` | Shifu 报告引擎查询 | | Database | `/api/database` | 原始 ES 文档浏览和索引信息 | | Users | `/api/users` | 用户管理 | ## 配置 SLA 阈值在 `src/main/resources/application.yml` 中配置: | 严重级别 | 确认时间 | 解决时间 | |----------|-------------|------------| | Critical | 5s | 10s | | High | 30s | 60s | | Medium | 5m | 15m | | Low | 1h | 24h | ## 测试 **后端单元测试和集成测试**(使用 Testcontainers 运行 Elasticsearch): ``` ./gradlew test ``` **前端 E2E 测试**(Playwright): ``` cd incident-response-ui npx playwright test ``` ## 项目结构 ``` ├── src/main/java/org/example/incidentresponse/ │ ├── controller/ # REST controllers │ ├── service/ # Business logic │ ├── statemachine/ # Workflow engine, guards, actions │ ├── reporting/ # Shifu analytics engine │ ├── document/ # Elasticsearch document models │ ├── dto/ # Request/response DTOs │ ├── repository/ # Data access layer │ ├── enums/ # Status, severity, RCA categories │ ├── exception/ # Error handling │ ├── config/ # App configuration │ └── filter/ # HTTP filters (MDC logging) ├── src/test/ # Backend tests ├── incident-response-ui/ # React frontend │ ├── src/ │ │ ├── pages/ # Page components │ │ ├── components/ # Shared UI components │ │ └── api/ # API client │ └── *.spec.js # Playwright E2E tests ├── ARCHITECTURE.md # Detailed architecture documentation └── start.sh # One-command setup script ``` ## 延伸阅读 - [ARCHITECTURE.md](ARCHITECTURE.md) — 深入了解系统设计、数据模型、状态机、Shifu 引擎、API 参考和扩展性 - [Backend Configuration](src/main/resources/application.yml) — SLA 阈值、Elasticsearch 连接、日志级别 - [Vite Proxy Config](incident-response-ui/vite.config.js) — 前端开发服务器和 API 代理设置
标签:Elasticsearch, Java 17, RCA, React, SLA监控, Spring Boot, SRE, Syscalls, 事件响应平台, 事件管理, 事故追踪, 偏差过滤, 全文搜索, 后台面板检测, 域名枚举, 安全管理, 审计日志, 工单系统, 报表引擎, 根因分析, 特征检测, 状态机工作流, 生产事故, 生命周期管理, 网络研究, 证据附件, 请求拦截, 运维平台