AnilDamodara/Real-Time-Log-Analysis-Monitoring-Dashboard
GitHub: AnilDamodara/Real-Time-Log-Analysis-Monitoring-Dashboard
基于 Splunk 的全栈实时日志分析监控仪表盘,通过自定义 React 前端和 Node.js 后端实现日志采集、可疑活动检测与安全事件可视化。
Stars: 0 | Forks: 0
# 日志分析与监控
一个使用 Splunk 集成进行日志分析和监控的全栈示例项目,包含 React 前端和 Node.js 后端。
## 功能
- REST API 后端,提供日志数据服务并通过 HTTP Event Collector (HEC) 将事件转发到 Splunk
- React 仪表盘,用于查看和过滤日志
- 示例日志接收端点和 Splunk 测试事件流
- 结合 Vite 和 Express 实现便捷的本地开发
## 项目结构
- `backend/` — Express 服务器、Splunk HEC 客户端、示例日志数据
- `backend/routes/` — 请求路由层
- `backend/routes/logRoutes.js`
- `backend/routes/splunkRoutes.js`
- `backend/controllers/` — 请求处理器和 SSE 流式传输
- `backend/controllers/logController.js`
- `backend/controllers/splunkController.js`
- `backend/services/` — 业务逻辑和日志分析
- `backend/services/logService.js`
- `backend/services/splunkService.js`
- `frontend/` — 使用 Vite 构建的 React 应用
## 前置条件
- 已安装 Node.js 18+
- 启用了 HTTP Event Collector 的 Splunk 实例
- Splunk HEC token 和 URL
## 设置
1. 打开两个终端。
2. 在 backend 文件夹中:
```
cd "c:\Users\Anil\Desktop\Log Analysis\backend"
npm install
```
3. 在 frontend 文件夹中:
```
cd "c:\Users\Anil\Desktop\Log Analysis\frontend"
npm install
```
4. 在 `backend/.env` 中配置 Splunk 的环境变量:
```
BACKEND_PORT=4000
SPLUNK_HEC_URL=https://your-splunk-host:8088
SPLUNK_HEC_TOKEN=your_hec_token
SPLUNK_INDEX=main
SPLUNK_SOURCE=log-analysis-app
SPLUNK_SOURCETYPE=_json
```
5. 启动后端:
```
npm start
```
6. 启动前端:
```
npm run dev
```
## 使用说明
- 访问 Vite 显示的前端 URL。
- 仪表盘会从后端加载示例日志。
- 使用搜索框和过滤控件来减少日志噪音。
- 监控 KPI 卡片以了解错误率和可疑 IP 检测情况。
- 活跃警报和实时更新会自动显示。
- 使用仪表盘按钮将示例可疑日志发送到 Splunk。
## 新特性
- 基于重复 WARN/ERROR 事件的可疑 IP 检测
- 日志条目中内置的 IP 地址地理位置信息
- 按级别、来源和 IP 地址进行日志过滤的 UI
- 用于显示总日志数、错误率、可疑 IP 和实时状态的 KPI 卡片
- 用于异常检测和可疑 IP 活动的警报面板
- 通过 Server-Sent Events (SSE) 实现的仪表盘实时更新
- 针对错误率突然激增的异常检测
## Splunk 集成
本项目通过由 `SPLUNK_HEC_URL` 和 `SPLUNK_HEC_TOKEN` 定义的 HEC 端点将事件发送到 Splunk。
### Splunk 仪表盘查询示例
- 按时间统计的各日志级别事件量:
```
index=main source="log-analysis-app"
| timechart span=1m count by level
```
- 最近 24 小时内的错误事件:
```
index=main source="log-analysis-app" level=ERROR
| stats count by source, service
| sort -count
```
- 产生警告和错误最多的服务:
```
index=main source="log-analysis-app" level=ERROR OR level=WARN
| stats count by service, level
| sort -count
```
- 包含特定关键字的近期日志:
```
index=main source="log-analysis-app"
| search message="*login*" OR message="*database*"
| table _time level source service message
| sort -_time
```
- 按来源和服务统计的汇总:
```
index=main source="log-analysis-app"
| stats count as event_count by source, service, level
| sort -event_count
```
## 注意事项
- 本示例项目专为本地开发和演示而设计。
- 请将示例数据和 Splunk 元数据替换为您自己的应用日志。
标签:AMSI绕过, CCTV/网络接口发现, Express, GNU通用公共许可证, HTTP事件收集器, IP黑名单检测, KPI监控, MITM代理, Node.js, React, REST API, SPL查询, SSE流式传输, Syscalls, Vite, Web安全, 可疑活动分析, 后端开发, 大屏仪表盘, 威胁检测, 安全事件可视化, 安全仪表盘, 安全运营, 异常行为检测, 扫描框架, 插件系统, 日志管理系统, 系统日志, 网络安全, 网络日志, 蓝队分析, 隐私保护