组件概览
本章节介绍 BK-Lite 平台的核心组件及其在系统中的关键职能。
架构总览
BK-Lite 采用微服务架构,通过 Docker Compose 编排部署。组件分为以下几类:
| 类别 | 组件 | 职能 |
|---|---|---|
| 网关层 | Traefik | 反向代理、路由分发、TLS 终结 |
| 应用层 | Server、Web | 业务逻辑、前端界面 |
| 数据层 | PostgreSQL、PGVector、FalkorDB | 关系数据、向量数据、图数据 |
| 缓存层 | Redis | 缓存、会话、Celery Broker |
| 消息层 | NATS | 消息队列、事件分发 |
| 监控层 | VictoriaMetrics、VictoriaLogs | 指标存储、日志存储 |
| 存储层 | MinIO | 对象存储 |
| 探针层 | Telegraf、Vector、Beats 系列 | 节点指标采集、日志采集 |
| 代理层 | Fusion-Collector、Stargazer、NATS-Executor、Webhookd | 统一采集、云资源采集、命令执行 |
| AI 层 | vLLM(可选) | 模型推理服务(Embedding、Rerank、OCR) |
核心组件详解
Traefik(反向代理)
职能:作为系统的统一入口,负责请求路由和 TLS 终结。
| 属性 | 值 |
|---|---|
| 默认端口 | 443(可配置) |
| 数据卷 | 无持久化数据 |
| 备份优先级 | 低(无状态) |
关键配置:
- 自动发现 Docker 容器并生成路由规则
- 支持动态配置热加载
- 提供可选的 Dashboard 管理界面
PostgreSQL(关系数据库)
职能:存储系统核心业务数据,包括用户、配置、CMDB 资产等。
| 属性 | 值 |
|---|---|
| 默认端口 | 5432 |
| 数据卷 | postgres:/data/postgres |
| 备份优先级 | 最高 |
数据库列表:
bklite- 主业务数据库mlflow- MLflow 模型追踪数据库
PostgreSQL 是系统最核心的数据存储,必须优先保障其备份。
PGVector(向量数据库)
职能:为 OpsPilot AI 能力提供向量存储,支持语义检索和知识库问答。
| 属性 | 值 |
|---|---|
| 默认端口 | 共享 PostgreSQL 5432 |
| 数据库名 | metis |
| 备份优先级 | 高 |
应用场景:
- 知识库文档向量化存储
- RAG(检索增强生成)语义搜索
- AI 对话上下文关联
PGVector 作为 PostgreSQL 扩展运行,数据存储在独立的 metis 数据库中。
FalkorDB(图数据库)
职能:存储 CMDB 资产关系图谱,支持复杂拓扑查询。
| 属性 | 值 |
|---|---|
| 默认端口 | 6479(映射到容器 6379) |
| 数据卷 | falkordb:/var/lib/falkordb/data |
| 备份优先级 | 高 |
应用场景:
- CMDB 资产关联关系
- 服务依赖拓扑
- 影响分析和根因定位
FalkorDB 基于 Redis 协议,使用 redis-cli 即可进行管理操作。
Redis(缓存数据库)
职能:提供高性能缓存、会话存储和 Celery 任务队列。
| 属性 | 值 |
|---|---|
| 默认端口 | 6379 |
| 数据卷 | redis:/data |
| 备份优先级 | 中 |
用途分配:
- DB 1:应用缓存
- DB 3:Celery Broker / Result Backend
NATS(消息队列)
职能:高性能消息中间件,负责组件间异步通信和事件分发。
| 属性 | 值 |
|---|---|
| 默认端口 | 4222(客户端)、7422(集群) |
| 数据卷 | nats:/nats |
| 备份优先级 | 低 |
应用场景:
- 监控指标上报通道
- 日志数据传输
- 节点管理指令下发
VictoriaMetrics(时序数据库)
职能:存储监控指标数据,提供高性能时序查询。
| 属性 | 值 |
|---|---|
| 默认端口 | 8428 |
| 数据卷 | victoria-metrics:/victoria-metrics-data |
| 备份优先级 | 中 |
| 默认保留期 | 168 小时(7 天) |
特点:
- 兼容 Prometheus 查询语法
- 支持高基数指标
- 资源占用低
VictoriaLogs(日志数据库)
职能:存储和检索系统日志,支持全文搜索。
| 属性 | 值 |
|---|---|
| 默认端口 | 9428 |
| 数据卷 | victoria-logs:/vlogs |
| 备份优先级 | 中 |
MinIO(对象存储)
职能:提供 S3 兼容的对象存储,用于文件和模型存储。
| 属性 | 值 |
|---|---|
| API 端口 | 9000 |
| Console 端口 | 9001 |
| 数据卷 | minio:/data |
| 备份优先级 | 中 |
存储内容:
- MLflow 模型制品
- 知识库上传文件
- 系统附件
MLflow(模型管理)
职能:机器学习模型的版本管理和实验追踪。
| 属性 | 值 |
|---|---|
| 默认端口 | 15000 |
| 后端存储 | PostgreSQL (mlflow 库) |
| 制品存储 | MinIO (mlflow-artifacts 桶) |
| 备份优先级 | 中 |
Server(后端服务)
职能:BK-Lite 核心业务服务,提供 REST API。
| 属性 | 值 |
|---|---|
| 内部端口 | 8000 |
| 外部路径 | /api/v1/* |
| 备份优先级 | 低(无状态) |
依赖关系:
- PostgreSQL(业务数据)
- PGVector(向量数据)
- FalkorDB(图数据)
- Redis(缓存/队列)
Web(前端服务)
职能:Next.js 前端应用,提供用户界面。
| 属性 | 值 |
|---|---|
| 内部端口 | 3000 |
| 外部路径 | /(默认路由) |
| 备份优先级 | 低(无状态) |
采集与代理组件
Telegraf(指标采集)
职能:收集主机和容器指标,通过 NATS 上报到 VictoriaMetrics。
| 属性 | 值 |
|---|---|
| 配置文件 | conf/telegraf/telegraf.conf |
| 备份优先级 | 低(无状态) |
Vector(日志采集)
职能:高性能日志收集和转发引擎,将日志数据发送到 VictoriaLogs。
| 属性 | 值 |
|---|---|
| 配置文件 | conf/vector/vector.yaml |
| 备份优先级 | 低(无状态) |
Fusion-Collector(统一采集器)
职能:BK-Lite 自研统一采集器,支持多种数据源采集,可部署在被管节点上。
| 属性 | 值 |
|---|---|
| SNMP Trap 端口 | 162/udp |
| 支持平台 | Linux、Windows |
| 备份优先级 | 低(无状态) |
采集能力:
- 主机性能指标(CPU、内存、磁盘、网络)
- SNMP Trap 接收
- 自定义脚本采集
Stargazer(云资源采集)
职能:云资源采集和监控代理服务,支持多云平台资源同步。
| 属性 | 值 |
|---|---|
| 内部端口 | 8083 |
| 技术栈 | Python + Sanic + ARQ |
| 备份优先级 | 低(无状态) |
支持的云平台:
- VMware vSphere
- 阿里云
- AWS
- 腾讯云
- 华为云
架构说明:
- Server:接收采集请求,分发任务
- Worker:执行具体采集任务(基于 ARQ 任务队列)
NATS-Executor(命令执行器)
职能:基于 NATS 的远程命令执行代理,部署在被管节点上执行脚本和命令。
| 属性 | 值 |
|---|---|
| 技术栈 | Go |
| 支持平台 | Linux、Windows、macOS |
| 备份优先级 | 低(无状态) |
功能特性:
- 跨平台命令执行(sh、bash、bat、PowerShell)
- 命令执行超时控制
- 文件下载和解压
- 健康检查
NATS 订阅主题:
local.execute.{instance_id}- 本地命令执行health.check.{instance_id}- 健康检查download.local.{instance_id}- 文件下载unzip.local.{instance_id}- 文件解压
Webhookd(Webhook 服务)
职能:提供 HTTP Webhook 接口,用于触发脚本执行和 Docker Compose 管理。
| 属性 | 值 |
|---|---|
| 内部端口 | 8080 |
| 备份优先级 | 低(无状态) |
API 功能:
- Docker Compose 服务管理(setup、start、stop、status、update)
- 基础设施管理脚本执行
- Kubernetes 操作代理
- MLOps 训练任务触发
AI 推理组件(可选)
以下组件仅在启用 OpsPilot AI 能力时部署,需要 GPU 支持。
vLLM 模型服务
职能:提供高性能 LLM 推理服务,支持 Embedding、Rerank 和 OCR 模型。
| 服务 | 模型类型 | 用途 |
|---|---|---|
| bce-embedding | 文本嵌入 | 文档向量化 |
| bge-embedding | 文本嵌入 | 文档向量化(备选) |
| bce-rerank | 重排序 | 搜索结果优化 |
| olmocr | OCR | 图片文字识别 |
硬件要求:
- NVIDIA GPU(支持 CUDA)
- 显存 >= 8GB(单模型)
- 建议服务器内存 >= 16GB
数据卷清单
以下是所有 Docker 数据卷及其备份优先级:
| 数据卷 | 对应组件 | 备份优先级 | 说明 |
|---|---|---|---|
postgres | PostgreSQL | 最高 | 核心业务数据 |
falkordb | FalkorDB | 高 | 图数据库 |
victoria-metrics | VictoriaMetrics | 中 | 监控指标 |
victoria-logs | VictoriaLogs | 中 | 日志数据 |
minio | MinIO | 中 | 对象存储 |
redis | Redis | 中 | 缓存数据 |
nats | NATS | 低 | 消息队列 |
neo4j | (预留) | - | 未启用 |
网络架构
所有组件运行在 bklite-prod Docker 网络中,通过容器名称进行内部通信。
┌─────────────────────────────────────────────────────────────┐
│ 外部访问 │
│ https://<HOST_IP> │
└─────────────────────────┬───────────────────────────────────┘
│
┌─────▼─────┐
│ Traefik │ :443
└─────┬─────┘
┌───────────────┼───────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ Web │ │ Server │ │ 其他服务 │
│ :3000 │ │ :8000 │ │ │
└───────────┘ └─────┬─────┘ └───────────┘
│
┌──────────┬──────────┼──────────┬──────────┐
│ │ │ │ │
┌───▼───┐ ┌───▼───┐ ┌────▼────┐ ┌───▼───┐ ┌───▼───┐
│ Redis │ │ NATS │ │PostgreSQL│ │PGVector│ │FalkorDB│
│ :6379 │ │ :4222 │ │ :5432 │ │ :5432 │ │ :6479 │
└───────┘ └───────┘ └─────────┘ └────────┘ └────────┘
下一步
- 备份与还原 - 了解如何备份和恢复关键数据