ayberkaarda/enterprise-network-siem-console
GitHub: ayberkaarda/enterprise-network-siem-console
面向企业 SOC 场景的实时网络监控与告警管理控制台,基于事件驱动架构追踪网络设备状态并实现闭环告警管理。
Stars: 1 | Forks: 0
# ⚡ 企业级网络安全与 SIEM 控制台




一款动态的 **SOC (Security Operations Center)** 与网络监控面板,能够**实时**分析企业内部网络基础设施中设备(Firewall、Server、Router、Switch)的可达性状态、Ping 延迟及稳定性趋势。
本项目不仅仅是一个监控工具,更是基于**整洁代码 (Clean Code)** 原则、异步事件管理和企业级异常捕获机制,以可扩展的工程化愿景开发而成的。
## 🚀 核心工程特性与架构
### 1. 事件驱动架构
为了打破服务间的强依赖,项目使用了 Spring Boot 的 `ApplicationEventPublisher`。当网络设备的状态发生改变时,扫描服务不再直接记录日志,而是触发 `DeviceStatusChangedEvent`;独立的 `@EventListener` 会捕获该事件,并异步执行日志记录和数据库保存操作。
### 2. 集中式企业级异常管理
REST API 中可能出现的无效 IP 格式或服务器端错误,会通过 `@RestControllerAdvice` 和自定义异常类(如 `InvalidIpException`)进行捕获。系统将始终向前端返回格式化、标准且安全的 JSON 错误对象(`Timestamp, Status, ErrorMessage`)。
### 3. 关系型数据完整性 (JPA One-To-Many)
在设备(`Device`)和安全日志(`AuditLog`)之间建立了 JPA 级别的关系映射,以确保数据的绝对完整性。在删除或更新设备时,可通过 Hibernate 安全地管理级联 操作。
### 4. 实时事件 与告警管理队列
失去连接 (INACTIVE) 的设备会在系统中触发即时的严重事件。在网络工程师/系统管理员通过界面手动确认 该告警之前,系统将一直保持 (Critical Threat Level) 戒备状态。
## 📂 项目结构
本项目采用通过单一仓库管理的现代 monorepo 架构:
* **`demo/`**:包含基于 Spring Boot 开发并在 H2 Database 上运行的异步 REST API 引擎。
* **`network-ui/`**:包含基于 Angular 17+ 开发、利用 RxJS 实现实时数据流并采用现代 CSS 设计的独立前端组件。
## 🛠️ 技术栈
**后端 (核心系统)**
* Java 17+
* Spring Boot 3.x (Web, Data JPA)
* Spring Application Events (事件驱动设计)
* H2 Database (内存数据库)
**前端 (客户端)**
* Angular (Standalone Components)
* TypeScript
* RxJS (响应式编程 & 轮询)
* 现代 CSS (自定义动画 & Sparklines)
## ⚙️ 安装与运行
您可以按照以下步骤在本地环境 中启动本项目。
### 1. 启动后端
在 `demo/` 目录下打开终端,通过 Maven Wrapper 编译并运行项目:
```
cd demo
./mvnw spring-boot:run
```
### 2. 启动前端
打开一个新的终端标签页,进入 `network-ui/` 目录,安装必要的 Node 包并启动 Angular 服务:
```
cd network-ui
npm install
npm start
```
👨💻 开发者联系方式
Ayberk Arda
软件开发工程师 | 计算机编程,伊斯坦布尔文化大学 (İKÜ)
标签:Angular, Grype, JS文件枚举, Spring Boot, 事件驱动架构, 无摄像头检测, 系统运维, 自动化攻击