跳到主要内容

组件概览

本章节介绍 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重排序搜索结果优化
olmocrOCR图片文字识别

硬件要求

  • NVIDIA GPU(支持 CUDA)
  • 显存 >= 8GB(单模型)
  • 建议服务器内存 >= 16GB

数据卷清单

以下是所有 Docker 数据卷及其备份优先级:

数据卷对应组件备份优先级说明
postgresPostgreSQL最高核心业务数据
falkordbFalkorDB图数据库
victoria-metricsVictoriaMetrics监控指标
victoria-logsVictoriaLogs日志数据
minioMinIO对象存储
redisRedis缓存数据
natsNATS消息队列
neo4j(预留)-未启用

网络架构

所有组件运行在 bklite-prod Docker 网络中,通过容器名称进行内部通信。

┌─────────────────────────────────────────────────────────────┐
│ 外部访问 │
│ https://<HOST_IP> │
└─────────────────────────┬───────────────────────────────────┘

┌─────▼─────┐
│ Traefik │ :443
└─────┬─────┘
┌───────────────┼───────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ Web │ │ Server │ │ 其他服务 │
│ :3000 │ │ :8000 │ │ │
└───────────┘ └─────┬─────┘ └───────────┘

┌──────────┬──────────┼──────────┬──────────┐
│ │ │ │ │
┌───▼───┐ ┌───▼───┐ ┌────▼────┐ ┌───▼───┐ ┌───▼───┐
│ Redis │ │ NATS │ │PostgreSQL│ │PGVector│ │FalkorDB│
│ :6379 │ │ :4222 │ │ :5432 │ │ :5432 │ │ :6479 │
└───────┘ └───────┘ └─────────┘ └────────┘ └────────┘

下一步