jaisuriya153/-Real-Time-Cloud-Log-Monitoring-Incident-Response-System

GitHub: jaisuriya153/-Real-Time-Cloud-Log-Monitoring-Incident-Response-System

一套基于 Node.js 与 React 的全栈云日志监控与事件响应系统,通过实时日志流和自动告警帮助团队快速发现和跟踪系统异常。

Stars: 0 | Forks: 0

# 🔍 实时云日志监控与事件响应系统 一个用于实时云日志监控和事件响应管理的简单全栈 Web 应用程序。 ## 🎯 功能 - 👤 **用户认证** - 使用 JWT 进行登录/注册 - 📊 **实时日志** - 基于 WebSocket 的实时日志流 - ⚠️ **错误检测** - 自动检测 error 和 critical 日志 - 🚨 **事件管理** - 创建、跟踪和解决事件 - 📈 **仪表盘** - 带有图表和统计数据的可视化分析 - 🔔 **实时警报** - 针对关键事件的即时通知 ## 🛠️ 技术栈 ### 后端 - **Node.js + Express** - RESTful API 服务器 - **Socket.io** - 实时 WebSocket 通信 - **MongoDB** - 文档数据库 - **JWT** - 认证 token - **bcryptjs** - 密码哈希 ### 前端 - **React.js** - UI 库 - **Socket.io Client** - 实时客户端 - **Axios** - HTTP 客户端 - **Chart.js** - 数据可视化 - **CSS3** - 样式设计 ## 📁 项目结构 ``` cloud computing/ ├── backend/ │ ├── models/ │ │ ├── User.js │ │ ├── Log.js │ │ └── Incident.js │ ├── routes/ │ │ ├── auth.js │ │ ├── logs.js │ │ └── incidents.js │ ├── middleware/ │ │ └── auth.js │ ├── server.js │ ├── seed.js │ ├── package.json │ └── .env ├── frontend/ │ ├── src/ │ │ ├── components/ │ │ │ ├── Auth.js │ │ │ ├── Dashboard.js │ │ │ ├── Logs.js │ │ │ └── Incidents.js │ │ ├── services/ │ │ │ ├── api.js │ │ │ └── socket.js │ │ ├── App.js │ │ ├── index.js │ │ └── index.css │ ├── public/ │ │ └── index.html │ ├── package.json │ └── .gitignore └── README.md ``` ## 🚀 快速开始 ### 前置条件 - Node.js (v14+) - MongoDB (本地或 Atlas) - npm 或 yarn ### 安装说明 #### 1. 克隆并设置后端 ``` cd "cloud computing/backend" npm install ``` #### 2. 配置后端 编辑 `.env` 文件: ``` PORT=5000 MONGODB_URI=mongodb://localhost:27017/log-monitoring JWT_SECRET=your_jwt_secret_key_keep_it_safe_12345 NODE_ENV=development ``` #### 3. 填充示例数据 ``` npm run seed ``` **预期输出:** ``` Connected to MongoDB Test user created: [user_id] 10 sample logs created Sample incidents created ✅ Database seeded successfully! Test User: testuser / test@example.com / password123 ``` #### 4. 启动后端服务器 ``` npm start ``` 服务器将在 `http://localhost:5000` 上运行 #### 5. 设置前端 ``` cd "../frontend" npm install ``` #### 6. 启动前端 ``` npm start ``` React 应用将在 `http://localhost:3000` 上打开 ## 🔐 演示凭证 填充数据后,请使用: - **Email:** test@example.com - **Password:** password123 ## 📊 模块与功能 ### 1. **日志收集** - 实时收集日志 - 支持多个微服务 - 不同的日志级别:info、warning、error、critical ### 2. **日志存储** - MongoDB 用于持久化存储 - 索引查询以实现快速检索 - 元数据支持以实现丰富的日志记录 ### 3. **错误检测** - 在出现 error/critical 日志时自动创建事件 - 错误跟踪和关联 - 严重性分类 ### 4. **事件与警报** - 通过 WebSocket 进行实时事件通知 - 状态跟踪:Open → In Progress → Resolved - 错误计数跟踪 - 时间戳跟踪 ### 5. **仪表盘** - 实时统计数据 - 日志分布图表 - 事件概览 - 带有用户信息的欢迎消息 ## 🔌 API 端点 ### 认证 - `POST /api/auth/register` - 注册新用户 - `POST /api/auth/login` - 用户登录 ### 日志(受保护) - `GET /api/logs` - 获取所有日志 - `GET /api/logs/level/:level` - 按级别获取日志 - `GET /api/logs/stats/summary` - 获取今日统计数据 ### 事件(受保护) - `GET /api/incidents` - 获取所有事件 - `GET /api/incidents/status/:status` - 按状态筛选 - `POST /api/incidents` - 创建事件 - `PUT /api/incidents/:id` - 更新事件状态 ## 🔌 WebSocket 事件 ### 客户端 → 服务器 - `join` - 加入用户房间 - `submit-log` - 提交新日志 - `request-logs` - 请求日志数据 ### 服务器 → 客户端 - `new-log` - 接收到新日志 - `new-incident` - 创建了新事件 - `logs-data` - 日志数据响应 - `error` - 错误消息 ## 📝 示例日志数据 填充脚本将创建: - 10 条具有不同级别和服务的示例日志 - 3 个具有不同状态的示例事件 - 1 个测试用户 ## 🎨 UI 组件 ### 页面 1. **登录/注册** - 认证页面 2. **仪表盘** - 统计数据和图表 3. **日志视图** - 带有过滤功能的实时日志流 4. **事件视图** - 带有状态更新的事件管理 ### 功能特性 - 深色友好设计 - 响应式布局 - 实时更新 - 状态指示器 - 快速操作按钮 ## ⚙️ 配置 ### 后端 MongoDB 连接 **本地 MongoDB:** ``` mongodb://localhost:27017/log-monitoring ``` **MongoDB Atlas (云端):** ``` mongodb+srv://username:password@cluster.mongodb.net/log-monitoring ``` 请相应地在 `.env` 中更新 MONGODB_URI。 ## 🐛 故障排除 ### 后端无法启动 - 检查 MongoDB 是否正在运行:`mongod` - 验证 PORT 5000 未被占用 - 检查 `.env` 文件配置 ### 前端无法连接 - 确保后端在端口 5000 上运行 - 检查 server.js 中的 CORS 设置 - 清除浏览器缓存并重新加载 ### 数据库连接错误 - 验证 MongoDB 连接字符串 - 检查 MongoDB 服务是否正在运行 - 验证 Atlas 的网络访问权限 ### Socket.io 不工作 - 检查浏览器控制台是否有错误 - 验证前端的 socket URL - 确保后端已配置 CORS ## 📚 开发 ### 添加新模型 1. 在 `backend/models/` 中创建文件 2. 定义 schema 并导出模型 3. 在路由中使用 `require()` 引入 ### 添加新路由 1. 在 `backend/routes/` 中创建文件 2. 导入模型和中间件 3. 使用 `app.use()` 将其添加到 `server.js` 中 ### 添加新组件 1. 在 `frontend/src/components/` 中创建 2. 在 `App.js` 中导入 3. 在导航栏中添加导航按钮 ## 🚀 部署(可选) ### 将后端部署到 Heroku ``` cd backend heroku create your-app-name git push heroku main ``` ### 将前端部署到 Netlify ``` cd frontend npm run build # 部署 build/ folder 到 Netlify ``` ## 📞 支持 对于问题和疑问: 1. 查看故障排除部分 2. 检查控制台错误消息 3. 确保已安装所有依赖项 4. 确保 MongoDB 正在运行 ## 📄 许可证 该项目是开源的,并基于 MIT 许可证提供。 **用 ❤️ 构建,旨在实现简单的云日志监控**
标签:GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, WebSocket, 依赖分析, 运维监控