Skip to content

ctkqiang/chilli

Repository files navigation

小辣椒 Chilli

系统遥测与网络安全监控平台

Rust Axum SeaORM Vue.js License

小辣椒系统监控平台界面预览


项目简介

小辣椒 (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 运行
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 安全

  • 查看 Docker 容器列表
  • 检测容器安全配置问题
  • 识别特权模式、敏感挂载等风险
  • 展示容器资源使用情况

IP 访问审计

  • 审计关键数据库端口(MySQL:3306 / PostgreSQL:5432 / Redis:6379)的活动连接
  • 自动关联连接与进程信息(PID + 进程名)
  • 基于 /proc/net/tcp 解析(Linux)或跨平台 listeners 库 fallback
  • 每 5 秒自动轮询采集,数据持久化至数据库
  • 提供 HTTP API 查询最近访问记录

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 手动触发同步

IP 审计

方法 路径 描述
GET /api/ip-access-logs 获取最近 IP 访问审计记录
查询参数 类型 默认值 说明
limit u32 50 返回记录最大数量

技术栈

后端

组件 用途
Axum Web 框架
Tokio 异步运行时
SeaORM ORM 框架
Serde 序列化/反序列化
sysinfo 系统信息采集
listeners 端口监听检测
reqwest HTTP 客户端

前端

组件 用途
Vue 3 前端框架
TypeScript 类型系统
Pinia 状态管理
Vue Router 路由管理
vue-i18n 国际化
Axios HTTP 客户端
Vite 构建工具

测试

# 运行所有测试
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             # 项目说明

如果这个项目对你有帮助,请给它一个 ⭐️ 星标!


🌐 全球捐赠通道

国内用户


🔵 支付宝(小企鹅在收金币哟~)

🟢 微信支付(小绿龙在收金币哟~)

国际用户


📌 开发者社交图谱

技术交流

社交互动

About

小辣椒 (Chilli) 是一个基于 Rust 构建的高性能系统遥测与网络安全监控平台。它集成了实时进程监控、GitHub 安全公告同步、系统状态采集等功能,为开发者和运维人员提供全面的系统可视化和安全态势感知能力。

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors