小辣椒 (Chilli) 是一个基于 Rust + Vue.js 构建的高性能系统遥测与网络安全监控平台。它集成了实时进程监控、安全漏洞扫描、Docker 容器管理、系统状态采集等功能,为开发者和运维人员提供全面的系统可视化和安全态势感知能力。
- 可视化仪表盘 - 基于 Vue 3 的现代化 Web 界面,实时展示系统状态
- 实时进程监控 - 采集系统进程信息、内存使用、端口监听状态
- 安全漏洞扫描 - 自动检测系统进程和服务的安全漏洞
- Docker 安全管理 - 监控容器运行状态和安全配置
- GitHub 安全公告同步 - 自动同步安全漏洞数据库
- 系统遥测 - CPU、内存、运行时间等关键指标实时采集
- IP 访问审计 - 审计 MySQL/PostgreSQL/Redis 等关键数据库端口的活动连接,无需 eBPF
- 多语言支持 - 支持中文和英文界面切换
- RESTful API - 基于 Axum 框架的高性能 HTTP API
- 多数据库支持 - SQLite / MySQL / PostgreSQL / QuestDB
- 异步高性能 - 基于 Tokio 异步运行时,资源占用低
┌─────────────────────────────────────────────────────────────┐
│ Frontend Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Dashboard │ │ Security │ │ Docker Manager │ │
│ │ 仪表盘 │ │ 安全扫描 │ │ 容器管理 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ Vue 3 + TypeScript │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ HTTP API Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ /health │ │ /api/running│ │ /api/kill/:pid │ │
│ │ 健康检查 │ │ 进程列表 │ │ 终止进程 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │/security/scan│ │/security/docker│ │ /api/processes │ │
│ │ 漏洞扫描 │ │ Docker安全 │ │ 进程详情 │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
│ Axum (Rust) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Business Logic Layer │
│ ┌──────────────────┐ ┌────────────────────────────────┐ │
│ │ Process Monitor │ │ Security Scanner │ │
│ │ 进程监控核心 │ │ 漏洞扫描引擎 │ │
│ └──────────────────┘ └────────────────────────────────┘ │
│ ┌──────────────────┐ ┌────────────────────────────────┐ │
│ │ Docker Security │ │ GitHub Advisory Sync │ │
│ │ 容器安全检测 │ │ 安全公告同步引擎 │ │
│ └──────────────────┘ └────────────────────────────────┘ │
│ ┌──────────────────┐ │
│ │ IP Audit Module │ │
│ │ IP访问审计引擎 │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ Data Access Layer │
│ SeaORM (SQLite / MySQL / PostgreSQL) │
└─────────────────────────────────────────────────────────────┘
# 使用 Docker 运行
docker run -d \
--name chilli \
-p 9333:9333 \
-v $(pwd)/data:/data \
ctkqiang/chilli:latest
# 或使用 Docker Compose
docker-compose up -d
访问 http://localhost:9333 即可使用 Web 界面。
- Rust 1.75+
- Node.js 18+ (前端开发)
- SQLite (默认) 或 MySQL/PostgreSQL
# 克隆仓库
git clone https://github.com/ctkqiang/chilli.git
或
git https://gitcode.com/ctkqiang_sr/chilli.git
cd chilli
# 编译后端
cargo build --release
# 编译前端
cd portal
npm install
npm run build
cd ..
# 运行
./target/release/chilli
前端构建后的文件将自动嵌入到后端二进制中,访问 http://localhost:9333 即可使用 Web 界面。
创建 .env 文件:
# 服务端口
PORT=9333
# 数据库配置 (SQLite - 默认)
DATABASE_URL=sqlite://./data/chilli.db
# 或 MySQL
# MYSQL_HOST=localhost
# MYSQL_USER=root
# MYSQL_PASSWORD=password
# MYSQL_DATABASE=chilli
# 或 PostgreSQL
# POSTGRES_HOST=localhost
# POSTGRES_USER=postgres
# POSTGRES_PASSWORD=password
# POSTGRES_DATABASE=chilli
系统概览页面,展示关键指标:
- 运行进程数量
- 内存使用率
- 系统运行时间
- 安全威胁统计
- 快捷操作入口
- 查看所有运行中的进程
- 搜索和筛选进程
- 查看进程详细信息(PID、内存、端口等)
- 终止进程
- 实时更新进程状态
- 自动扫描系统进程的安全漏洞
- 检测常见服务的已知漏洞
- 展示漏洞严重等级(严重/高危/中危/低危)
- 提供漏洞详情和修复建议
- 支持手动重新扫描
- 查看 Docker 容器列表
- 检测容器安全配置问题
- 识别特权模式、敏感挂载等风险
- 展示容器资源使用情况
- 审计关键数据库端口(MySQL:3306 / PostgreSQL:5432 / Redis:6379)的活动连接
- 自动关联连接与进程信息(PID + 进程名)
- 基于
/proc/net/tcp 解析(Linux)或跨平台 listeners 库 fallback
- 每 5 秒自动轮询采集,数据持久化至数据库
- 提供 HTTP API 查询最近访问记录
| 方法 |
路径 |
描述 |
| GET |
/ |
服务信息 |
| GET |
/health |
健康检查 |
| 方法 |
路径 |
描述 |
| GET |
/api/running |
获取运行中进程列表 |
| POST |
/api/kill/:pid |
终止指定进程 |
| 方法 |
路径 |
描述 |
| GET |
/api/security/scan |
执行系统漏洞扫描 |
| GET |
/api/security/docker |
扫描 Docker 安全 |
| 方法 |
路径 |
描述 |
| GET |
/api/advisories |
获取同步的安全公告 |
| POST |
/api/advisories/sync |
手动触发同步 |
| 方法 |
路径 |
描述 |
| GET |
/api/ip-access-logs |
获取最近 IP 访问审计记录 |
| 查询参数 |
类型 |
默认值 |
说明 |
limit |
u32 |
50 |
返回记录最大数量 |
# 运行所有测试
cargo test
# 运行单元测试
cargo test --lib
# 运行集成测试
cargo test --test integration_tests
# 生成测试覆盖率报告
cargo tarpaulin --out Html
chilli/
├── src/ # 后端源码
│ ├── core/ # 核心业务逻辑
│ │ ├── ip_audit.rs # IP 访问审计引擎
│ │ ├── get_running_process.rs # 进程监控
│ │ └── get_security.rs # 安全扫描
│ ├── models/ # 数据模型
│ │ ├── access_log.rs # 访问日志实体
│ │ ├── users.rs # 用户实体
│ │ └── security.rs # 安全漏洞实体
│ ├── routes/ # API 路由
│ │ ├── ip_access.rs # IP 审计 API
│ │ ├── processes.rs # 进程管理 API
│ │ └── security.rs # 安全扫描 API
│ ├── service/ # 服务层
│ │ └── database.rs # 数据库服务
│ ├── utils/ # 工具函数
│ ├── ip_monitor.rs # IP 审计后台监控任务
│ ├── config.rs # 配置管理
│ └── main.rs # 入口文件
├── portal/ # 前端源码
│ ├── src/ # Vue 源码
│ │ ├── views/ # 页面组件
│ │ ├── stores/ # Pinia 状态
│ │ └── locales/ # 国际化文件
│ └── dist/ # 构建输出
├── docs/ # 文档和图片
│ └── demo.png # 界面预览图
├── Cargo.toml # Rust 依赖
└── README.md # 项目说明
如果这个项目对你有帮助,请给它一个 ⭐️ 星标!
🔵 支付宝(小企鹅在收金币哟~)
|
🟢 微信支付(小绿龙在收金币哟~)
|