# cluster_platform
**Repository Path**: Vanishi/cluster_platform
## Basic Information
- **Project Name**: cluster_platform
- **Description**: 视频行为分析系统v5集群管理平台(cluster_platform)
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 47
- **Forks**: 47
- **Created**: 2024-01-18
- **Last Updated**: 2026-03-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Python, WebSocket, Django, ZLMediaKit
## README
# Cluster Platform - 集群管理平台




**轻量级视频分析集群管理平台**
[功能特性](#功能特性) • [快速开始](#快速开始) • [配置说明](#配置说明) • [更新日志](#更新日志)
---
## 项目简介
Cluster Platform 是专为 Rebekah 视频行为分析系统 v5.002+ 设计的集群管理平台,支持统一管理多个 rebekah_admin 节点。
### 核心特性
- 🚀 **轻量级架构**:基于 SQLite,无需额外数据库
- 🌐 **跨网络部署**:公网部署管理端,内网部署节点端
- ⚡ **WebSocket 通信**:所有 API 通过 WebSocket 转发,支持公网管理内网节点
- 📹 **流媒体集成**:内置 ZLMediaKit,支持多协议和按需推流
- 🔐 **安全认证**:Token 认证 + API 安全密钥
- 💓 **心跳监控**:实时监控节点状态,支持心跳历史记录查询
---
## 目录结构
```
cluster_platform/
├── cp_server/ # 管理中心服务
│ ├── app/ # 应用核心代码
│ │ ├── consumers/ # WebSocket 消费者
│ │ ├── utils/ # 工具类
│ │ ├── views/ # 视图层
│ │ └── models.py # 数据模型
│ ├── framework/ # Django 配置
│ ├── static/ # 静态资源
│ ├── templates/ # 模板文件
│ ├── config.json # 配置文件
│ └── manage.py # Django 管理脚本
│
├── cp_zlm/ # 流媒体服务器
│ ├── bin.x86.windows10/ # Windows 可执行文件
│ ├── bin.x86.gcc9.4/ # Linux x86 可执行文件
│ └── bin.arm.gcc9.4/ # Linux ARM 可执行文件
│
└── README.md
```
---
## 功能特性
### 平台功能
- **控制面板** - 系统首页,展示节点状态、流媒体数据等概览
- **平台节点管理** - 管理所有注册的 rebekah_admin 节点
- **平台用户管理** - 管理平台登录用户
- **平台在线流** - 查看所有节点的在线流信息
- **平台启动配置** - 配置平台运行参数
### 节点功能(通过 WebSocket 转发到各节点执行)
- **报警管理** - 查看和管理各节点报警信息
- **视频管理** - 管理视频流,支持播放、转发控制、云台操作
- **布控管理** - 布控任务管理
- **音频管理** - 音频文件管理
- **人脸管理** - 人脸库管理
- **计划任务** - 定时任务管理
- **算法测试** - 算法效果测试
- **业务算法管理** - 算法流程编排
- **基础算法管理** - 基础算法配置
- **行为算法管理** - 行为识别算法
- **大模型管理** - LLM 模型配置
- **录像计划管理** - 录像计划配置
- **录像播放器** - 历史录像回放
---
## 架构设计
```
┌─────────────────────────────────────────────────────────────────┐
│ 公网环境 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ cp_server │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Web 管理台 │ │ REST API │ │ WebSocket │ │ │
│ │ └─────────────┘ └─────────────┘ └──────┬──────┘ │ │
│ │ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │ │
│ │ │ SQLite │ │ cp_zlm │◄────────┤ │ │
│ │ └─────────────┘ └─────────────┘ │ │ │
│ └────────────────────────────────────────────┼─────────────┘ │
└───────────────────────────────────────────────┼─────────────────┘
│ WebSocket
│ (主动连接)
┌───────────────────────────────────────────────┼─────────────────┐
│ 内网环境 │ │
│ ┌────────────────────────────────────────────┼─────────────┐ │
│ │ rebekah_admin │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌──────┴──────┐ │ │
│ │ │ AI 分析 │ │ 视频采集 │ │cluster_client│ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
---
## 快速开始
### 环境要求
- **Python**: 3.8+(推荐 3.9 或 3.10)
- **操作系统**: Windows 10+ / Linux (Ubuntu 18.04+) / macOS 10.14+
- **Rebekah 版本**: v5.002+
### 安装步骤
#### 1. 克隆项目
```bash
git clone https://github.com/beixiaocai/cluster_platform.git
cd cluster_platform
```
#### 2. 安装依赖
```bash
cd cp_server
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
```
#### 3. 配置 cp_server
编辑 `cp_server/config.json`:
```json
{
"host": "192.168.1.12",
"safe": "x20y17W1X2SHI3xDA4MEI",
"logDebug": true,
"adminPort": 9824,
"mediaRtspPort": 9854,
"mediaHttpPort": 9826,
"mediaSecret": "cp2026zlmzs0aA9ajn7UiOWie",
"wsToken": "cp_server_safe_key_2026",
"install": "D:\\project\\rebekah\\cluster_platform\\cp_server",
"isEnableLoginCaptcha": false,
"fontPath": "D:\\project\\rebekah\\cluster_platform\\cp_server\\static\\upload\\fonts\\tsimhei.ttf",
"uploadDir": "D:\\project\\rebekah\\cluster_platform\\cp_server\\static\\upload",
"storageTempDir": "D:\\project\\rebekah\\cluster_platform\\cp_server\\static\\storage\\temp"
}
```
#### 4. 启动服务
```bash
# 启动 cp_zlm(流媒体服务器)
cd cp_zlm/bin.x86.windows10
cp_zlm.exe
# 启动 cp_server(管理中心)
cd cp_server
python manage.py runserver 0.0.0.0:9824
```
#### 5. 访问管理后台
打开浏览器访问:http://localhost:9824
默认账号:`admin` / `admin888`
---
## 配置说明
### cp_server 配置 (config.json)
| 参数 | 类型 | 说明 |
|------|------|------|
| `host` | string | 服务器主机地址 |
| `safe` | string | API 安全密钥,用于开放接口验证 |
| `logDebug` | boolean | 是否开启调试日志 |
| `adminPort` | int | Web 管理端口 |
| `mediaRtspPort` | int | ZLMediaKit RTSP 端口 |
| `mediaHttpPort` | int | ZLMediaKit HTTP 端口 |
| `mediaSecret` | string | ZLMediaKit API 密钥 |
| `wsToken` | string | WebSocket 认证 Token |
| `install` | string | 安装路径 |
| `isEnableLoginCaptcha` | boolean | 是否启用登录验证码 |
| `fontPath` | string | 字体文件路径 |
| `uploadDir` | string | 上传文件目录 |
| `storageTempDir` | string | 临时存储目录 |
---
## 技术栈
| 组件 | 技术 | 用途 |
|------|------|------|
| Web框架 | Django 5.0 | 后台管理服务 |
| WebSocket | Channels 4.1 | 实时通信支持 |
| 数据库 | SQLite | 轻量级数据存储 |
| 异步支持 | Daphne 4.1 | ASGI 服务器 |
| 流媒体 | ZLMediaKit | 高性能流媒体服务 |
| 前端 | Bootstrap 5 + jQuery | UI 组件 |
---
## 开源地址
- GitHub: https://github.com/beixiaocai/cluster_platform
- Gitee: https://gitee.com/Vanishi/cluster_platform
---
## 更新日志
### v1.003 (2026-03-09)
**新增功能**
- 新增心跳记录存储功能,每个节点保留最新 100 条心跳记录
- 新增心跳记录查询 API,支持分页查询
- 节点列表操作列新增"心跳记录"按钮,可查看心跳历史
**优化改进**
- 简化连接状态显示,仅保留"在线"和"离线"两种状态
- 删除节点时主动断开 WebSocket 连接,触发节点重新注册
- 删除节点时同步清理心跳记录数据
- 服务启动时自动将所有节点设为离线状态
- 移除 `ws_last_heartbeat` 字段,心跳数据独立存储
**Bug 修复**
- 修复节点详情弹框中"更新时间"显示 undefined 的问题
- 修复删除节点后节点无法重新注册的问题