Devrajj-14/OpsMind-AI-Powered-Incident-Response-Platform

GitHub: Devrajj-14/OpsMind-AI-Powered-Incident-Response-Platform

OpsMind 是一个基于 Java 和 React 构建的全栈事件响应平台,通过日志接入、规则告警、事件关联和 AI 辅助根因分析实现运维事件的完整生命周期管理。

Stars: 0 | Forks: 0

# OpsMind OpsMind 是一个全栈事件响应平台,使用 Java 21、Spring Boot、React、PostgreSQL、Kafka、Redis、JWT 身份验证以及基于证据的 AI 辅助分析构建。 ``` flowchart LR S[Service logs] --> I[Authenticated ingestion] I --> K[Local dispatcher or Kafka] K --> L[Persist normalized log] L --> R[Evaluate alert rules] R --> D[Redis or local deduplication] D --> A[Create alert] A --> C[Correlate incident] C --> U[React response workflow] U --> X[Evidence-based analysis] U --> T[Audited resolution] ``` ## 已实现的功能 - 签名的短期 JWT 访问令牌和轮换的持久化刷新令牌 - BCrypt 密码、RBAC、哈希化的一次性接入密钥、CORS 和验证 - 服务目录和 API 密钥轮换 - 支持具有唯一外部事件 ID 的单次/批量接入 - 本地开发传输和基于 Kafka 的生产传输 - 通过 Flyway 迁移实现 PostgreSQL/H2 持久化 - 关键字和计数阈值告警规则 - 基于 Redis 的生产环境去重和本地适配器 - 告警指纹识别、事件关联、生命周期强制执行、备注、乐观锁和时间线 - 基于证据的本地根因假设,支持机密信息脱敏和不确定性标注 - React 仪表板、服务、日志、规则、告警、事件和响应工作区 - OpenAPI/Swagger、Actuator、Dockerfiles、Compose、演示生成器和自动化测试 本地分析器无需外部 AI 密钥即可工作。以后可以将其替换为托管模型适配器。主要的事件工作流不依赖于外部提供商。 ## 结构 ``` backend/ Spring Boot API and processors frontend/ React + TypeScript dashboard infrastructure/ Docker Compose scripts/ Demo incident generator OPSMIND_PROJECT_PLAN.md Detailed architecture and roadmap ``` ## 在本地不使用 Docker 运行 前置条件:Java 21+ 和 Node 22+。 后端,在 PowerShell 中从 `backend` 目录运行: ``` $env:JAVA_HOME='C:\Program Files\Java\jdk-25.0.3' & '..\.tools\apache-maven-3.9.11\bin\mvn.cmd' spring-boot:run ``` 前端,从 `frontend` 目录运行: ``` pnpm install pnpm dev ``` 打开 。演示账户: ``` admin@opsmind.local / Admin123! engineer@opsmind.local / Engineer123! ``` 从仓库根目录生成一个完整的事件: ``` .\scripts\generate-demo-incident.ps1 ``` 本地配置文件使用 H2 和本地 Kafka/Redis 适配器,因此不需要额外的基础设施。种子接入密钥为 `opm_demo_key`。 ## 运行生产拓扑 将 `.env.example` 复制到 `.env`,替换所有密钥,然后从 `infrastructure` 目录运行: ``` docker compose up -d docker compose --profile app up --build ``` 第一条命令运行 PostgreSQL、Redis 和 Kafka。第二条命令还会构建后端和前端。生产模式不会生成账户。通过 `POST /api/v1/auth/register` 注册第一个管理员: ``` $body = @{email='admin@example.com';password='replace-with-a-strong-password';displayName='Platform Admin'} | ConvertTo-Json Invoke-RestMethod -Method Post -Uri 'http://localhost:8080/api/v1/auth/register' -ContentType 'application/json' -Body $body ``` ## 测试 后端,从 `backend` 目录运行: ``` $env:JAVA_HOME='C:\Program Files\Java\jdk-25.0.3' & '..\.tools\apache-maven-3.9.11\bin\mvn.cmd' test ``` 后端集成测试套件会启动 Spring,应用 Flyway,并验证登录、RBAC、服务/密钥和规则创建、接入、自动创建告警/事件、确认、备注、机密脱敏分析、调查、解决、时间线以及负面测试用例。 前端,从 `frontend` 目录运行: ``` pnpm test pnpm build ``` 常用 endpoint: | URL | 用途 | |---|---| | `http://localhost:8080/swagger-ui.html` | 交互式 API 文档 | | `http://localhost:8080/v3/api-docs` | OpenAPI JSON | | `http://localhost:8080/actuator/health` | 健康检查 | | `http://localhost:5173` | React 应用 | ## 安全与验证说明 - 在共享部署之前,请替换 `JWT_SECRET`、数据库凭据以及所有示例凭据。 - 服务 API 密钥仅显示一次并以哈希形式存储。刷新令牌会进行轮换并以哈希形式存储。 - 在生产环境中使用 HTTPS 和密钥管理器。 - 浏览器实现使用 session/local storage。公开的生产部署应将刷新令牌放在具有适当 CSRF 设计的 `HttpOnly`、`Secure`、`SameSite` cookie 中。 - 完整的 Docker Compose 拓扑已通过 PostgreSQL、Kafka、Redis、生产 Spring profile 以及由 Nginx 提供服务的 React 应用验证。已验证的流程涵盖注册、服务/规则创建、Kafka 接入、Redis 去重、事件生命周期更改、异步分析、机密信息脱敏和前端健康状态。 有关完整的设计和图表,请参阅 [OPSMIND_PROJECT_PLAN.md](./OPSMIND_PROJECT_PLAN.md)。
标签:PostgreSQL, React, Spring Boot, Syscalls, 告警系统, 域名枚举, 搜索引擎查询, 测试用例, 请求拦截, 运维监控