# sysarmor
**Repository Path**: pku-oslab/sysarmor
## Basic Information
- **Project Name**: sysarmor
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2025-10-13
- **Last Updated**: 2026-01-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SysArmor EDR/HIDS 系统
## 🎯 项目概述
SysArmor 是一个现代化的端点检测与响应(EDR/HIDS)系统,采用微服务架构,实现 agentless 数据采集、实时威胁检测和告警存储的完整数据流。
### 系统架构
```mermaid
graph LR
A[终端设备
auditd数据] -->|TCP:6000| B[Middleware
Vector + Kafka]
B -->|消息队列| C[Processor
Flink + NODLINK]
C -->|告警事件| D[Indexer
OpenSearch]
E[Manager
控制平面] -.->|管理| B
E -.->|查询| D
E --- F[(PostgreSQL)]
```
### 核心特性
- 🚀 **Agentless 部署** - 基于 rsyslog + auditd,无需安装 Agent
- 🔧 **微服务架构** - Manager + Middleware + Processor + Indexer 四大模块
- 📊 **实时威胁检测** - Flink 流处理 + NODLINK 算法
- 🔍 **告警存储查询** - OpenSearch 索引和 REST API
- 🐳 **容器化部署** - Docker Compose 一键部署
## 🚀 快速开始
### 一键部署
```bash
git clone https://git.pku.edu.cn/oslab/sysarmor.git
cd sysarmor
# 初始化并部署 (一键完成)
make init && make deploy
```
**部署完成后,系统会自动**:
- ✅ 启动所有服务 (Manager、Kafka、Flink、OpenSearch等)
- ✅ 提交核心Flink作业 (数据转换和告警生成)
- ✅ 激活完整数据流 (auditd → events → alerts)
### 快速验证
```bash
# 1. 系统健康检查(8 个检查点)
make health
# 2. 完整数据流测试(18 个验证点)
make test-e2e-data-pipeline
# 3. API 接口测试(54 个端点)
make test
```
**数据流验证内容**:
- ✅ 服务健康检查(Manager, Kafka, OpenSearch, Flink)
- ✅ 数据导入到 Kafka raw topic
- ✅ Flink 解析和处理(raw → events → alerts)
- ✅ 告警写入 OpenSearch
- ✅ 数据流完整性验证
**📖 完整测试文档**: [tests/README.md](tests/README.md) - 113+ 测试,187+ 验证点
### 真实安装验证
验证 Agentless 部署的完整安装和卸载流程(**需要 root 权限**):
```bash
# 1. 完整安装测试(17 个验证点)
sudo make test-e2e-agentless-install
```
**安装测试验证内容**:
- ✅ 预注册 Collector 并生成安装令牌
- ✅ 执行安装脚本(auditd + rsyslog + systemd 服务)
- ✅ 心跳上报和状态更新(inactive → active)
- ✅ 数据采集验证(auditd → rsyslog → Vector → Kafka)
- ✅ 完整数据流验证(采集的数据包含正确的 Collector ID)
```bash
# 2. 卸载测试(10 个验证点)
sudo make test-e2e-agentless-uninstall
```
**卸载测试验证内容**:
- ✅ 获取并执行卸载脚本
- ✅ systemd 服务删除验证
- ✅ 配置文件清理验证(/etc/sysarmor、rsyslog、auditd 规则)
- ✅ 环境完全清理验证
⚠️ **重要提示**:安装测试完成后,请务必运行卸载测试清理环境
### 系统访问地址
- **🌐 Manager API**: http://localhost:8080
- **📖 API 文档**: http://localhost:8080/swagger/index.html
- **🔧 Flink 监控**: http://localhost:8081
- **📊 Prometheus**: http://localhost:9090
- **🔍 OpenSearch**: http://localhost:9200
## 🔧 管理命令
### 部署操作
```bash
make init # 初始化项目环境
make deploy # 🎯 部署基础设施(推荐)- Manager + Middleware + Processor + Indexer
make deploy-full # 完整部署(基础设施 + 前端)
make deploy-dev # 开发部署(基础设施 + 开发前端,支持热更新)
make up # 启动服务(不重新构建)
make down # 停止所有服务
make restart # 重启所有服务
```
### 监控测试
```bash
make status # 查看服务状态
make health # 系统健康检查(8 个检查点)
make test # 集成测试(健康检查 + 54 个 API 端点)
```
### 单元测试
```bash
make test-unit # Go 单元测试(15 测试 + 4 基准)
make test-unit-verbose # 单元测试(详细输出)
make test-bench # 性能基准测试
make test-coverage # 测试覆盖率报告
```
### E2E 测试
```bash
make test-e2e # 运行所有 E2E 测试(数据流 + Agentless)
make test-e2e-data-pipeline # 数据管道 E2E(18 个验证点)
make test-e2e-agentless-install # Agentless 安装 E2E(17 个验证点,需要 root)
make test-e2e-agentless-uninstall # Agentless 卸载(10 个验证点,需要 root)
```
### 清理维护
```bash
make clean # 清理构建文件和容器(深度清理)
```
### Volume 管理
```bash
make backup-certs # 备份证书到本地
make restore-certs # 恢复证书(需指定 FILE=backup.tar.gz)
make list-volumes # 列出所有 SysArmor volumes
make inspect-certs-volume # 查看证书 volume 内容
```
### 完整测试套件
```bash
# 运行所有测试(113+ 测试,187+ 验证点)
./tests/run-all-tests.sh all
# 📖 详细测试文档
cat tests/README.md
```
### 工具脚本
```bash
# 数据导入
./tests/integration/tools/import-events-data.sh
# Kafka 管理
./scripts/kafka-tools.sh list
./scripts/kafka-tools.sh export sysarmor.raw.audit 100
# Flink 管理
./scripts/flink-tools.sh list
./scripts/flink-tools.sh overview
```
## 📚 文档
详细文档请访问 **[📖 文档中心](docs/)**
**快速链接**:
- 🚀 **[快速开始](docs/getting-started/quickstart.md)** - 15分钟体验完整数据流
- 🏗️ **[架构设计](docs/architecture/overview.md)** - 系统架构和组件设计
- 🔌 **[Manager API](docs/api/manager-api.md)** - 54个REST API接口详细文档
- ⚙️ **[配置指南](docs/guides/configuration.md)** - 环境变量和服务配置详解
- 🧪 **[测试指南](tests/README.md)** - 单元测试、集成测试、E2E测试
- 📋 **[版本发布](docs/releases/)** - 版本历史和变更日志
---
**SysArmor EDR/HIDS** - 现代化端点检测与响应系统