Devansh028/SentinelOps
GitHub: Devansh028/SentinelOps
基于 MERN 全栈构建的企业级 SRE 事件响应管理平台,将告警触发、值班排班、升级策略和 SLA 追踪聚合于统一的实时指挥仪表板中。
Stars: 0 | Forks: 0
# SentinelOps — 企业级事件响应指挥中心
SentinelOps 是一个生产级的站点可靠性工程 (SRE) 事件响应和路由平台。它将 webhooks、告警触发器、on-call 日程和升级规则聚合到一个单一的毛玻璃效果暗色主题指挥仪表板中。
## 📁 目录结构
```
SentinelOps/
├── client/ # React (Vite) Frontend Workspace
│ ├── src/
│ │ ├── components/ # Layout, common UI widgets, and dashboard segments
│ │ ├── pages/ # Routing entry pages (Dashboard, Incidents, Status, Docs)
│ │ ├── redux/ # Redux toolkit store configuration and slices
│ │ ├── services/ # Axios API interceptors and client hooks
│ │ └── sockets/ # Socket.IO client interface bindings
│ └── index.html # Frontend page template
├── server/ # Express Node.js Backend Workspace
│ ├── src/
│ │ ├── controllers/ # Route request handlers
│ │ ├── middleware/ # JWT authentication, role check, and rate limiting rules
│ │ ├── models/ # MongoDB schemas (User, Incident, Service, Notification)
│ │ ├── queues/ # BullMQ queue managers
│ │ ├── routes/ # Express endpoint maps
│ │ └── services/ # Core business logic handlers (Notification services)
│ └── seed_devansh.js # DB administrator seeding script
└── docs/ # Architectural details and assets
```
## 🛠️ 安装与设置
### 前置条件
- **Node.js**:v18.x 或更高版本
- **MongoDB**:本地集群或 Atlas URI
- **Redis**:用于队列和缓存且正在运行的实例
### 1. 数据库与服务器设置
进入 server 目录并安装 node 包:
```
cd server
npm install
```
在新的 `.env` 文件中配置环境变量:
```
PORT=5000
MONGO_URI=mongodb://localhost:27017/Sentinelops
JWT_SECRET=super_secret_sentinel_ops_key_2026
REDIS_URL=redis://localhost:6379
EMAIL_HOST=smtp.mailtrap.io
EMAIL_PORT=2525
EMAIL_USER=username
EMAIL_PASS=password
```
为默认的数据库管理员凭据填充初始数据:
```
node seed_devansh.js
```
启动开发集群:
```
npm run dev
```
### 2. 客户端前端设置
进入 client 目录并安装依赖:
```
cd client
npm install
```
在 `.env` 中配置客户端设置:
```
VITE_API_URL=http://localhost:5000/api/v1
VITE_SOCKET_URL=http://localhost:5000
```
启动开发环境:
```
npm run dev
```
打开 `http://localhost:5173` 以访问指挥中心。
## 📡 API 文档参考
所有管理员路由均受 JWT Bearer token 保护。公开页面(例如状态面板)可绕过身份验证。
### 公开状态端点
- **GET `/api/status`**:返回整体系统状态、可用性统计以及活跃/已解决的指标。
- **GET `/api/status/services`**:服务状态映射。
- **GET `/api/status/history`**:事件历史日志。
- **GET `/api/status/uptime`**:动态每日运行时间向量。
### 全局搜索端点
- **GET `/api/search?q={query}`**:全局查询,用于搜索事件、告警、复盘报告、服务、团队和 runbook。
## 🤝 贡献指南
1. 确保所有新的布局文件均使用 `index.css` 中的标准化变量。
2. 将异步调用封装在 React thunk 或服务处理程序中。
3. 使用速率限制器和 RBAC 检查来验证后端端点。
标签:BullMQ, MERN, MITM代理, 事件管理, 值班调度, 告警系统, 实时通信, 搜索引擎查询, 自定义脚本, 运维监控