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, 告警系统, 域名枚举, 搜索引擎查询, 测试用例, 请求拦截, 运维监控