Jitsu 数据收集平台 Docker Compose 部署指南
2025-07-08 07:55:38作者:翟江哲Frasier
概述
Jitsu 是一个开源的数据收集和事件处理平台,本文将详细介绍如何使用 Docker Compose 部署完整的 Jitsu 系统。通过这份指南,您将了解 Jitsu 各组件的作用及其配置方式。
核心组件架构
Jitsu 系统由多个微服务组成,每个服务都有特定功能:
- 数据存储层:PostgreSQL、MongoDB、ClickHouse
- 消息队列:Kafka
- 核心服务:Console、Bulker、Rotor、Ingest、Syncctl
- 初始化服务:Sync-catalog-init
详细配置解析
1. 数据存储服务
PostgreSQL
postgres:
image: postgres:14
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-default}
- 作为主数据库存储元数据
- 使用健康检查确保服务可用性
- 默认暴露端口5432,可通过环境变量覆盖
MongoDB
mongo:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: default
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-default}
- 存储部分运行时数据
- 配置了root用户认证
ClickHouse
clickhouse:
image: clickhouse/clickhouse-server:24.1
environment:
- CLICKHOUSE_DB=newjitsu_metrics
- CLICKHOUSE_USER=default
- CLICKHOUSE_PASSWORD=${CLICKHOUSE_PASSWORD:-default}
- 用于存储和分析指标数据
- 启用了访问控制功能
2. 消息队列服务
Kafka
kafka:
image: "bitnami/kafka:3.6.0"
environment:
KAFKA_CFG_NODE_ID: 0
KAFKA_CFG_PROCESS_ROLES: controller,broker
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
- 作为事件处理的消息总线
- 配置了控制器和代理角色
- 使用健康检查验证服务状态
3. 核心服务组件
Console (控制台)
console:
image: jitsucom/console:${DOCKER_TAG:-latest}
environment:
DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD:-default}@postgres:5432/postgres?schema=newjitsu"
ROTOR_URL: "http://rotor:3401"
BULKER_URL: "http://bulker:3042"
- 提供Web管理界面
- 依赖PostgreSQL存储配置
- 与Rotor和Bulker服务通信
- 可配置OAuth登录(GitHub)
Bulker (批量处理器)
bulker:
image: jitsucom/bulker:${DOCKER_TAG:-latest}
environment:
BULKER_KAFKA_BOOTSTRAP_SERVERS: "kafka:9092"
BULKER_CONFIG_SOURCE: "http://console:3000/api/admin/export/bulker-connections"
- 处理批量数据操作
- 从Kafka消费消息
- 从Console服务获取配置
Rotor (路由器)
rotor:
image: jitsucom/rotor:${DOCKER_TAG:-latest}
environment:
KAFKA_BOOTSTRAP_SERVERS: "kafka:9092"
REPOSITORY_BASE_URL: "http://console:3000/api/admin/export/"
- 路由事件数据
- 与Kafka集成
- 从Console获取配置信息
Ingest (数据摄取)
ingest:
image: jitsucom/ingest:${DOCKER_TAG:-latest}
environment:
INGEST_KAFKA_BOOTSTRAP_SERVERS: "kafka:9092"
INGEST_REPOSITORY_URL: "http://console:3000/api/admin/export/streams-with-destinations"
- 接收外部数据输入
- 将数据发送到Kafka
- 默认暴露3049端口(可通过环境变量映射)
Syncctl (同步控制器)
syncctl:
image: jitsucom/syncctl:${DOCKER_TAG:-latest}
environment:
SYNCCTL_DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD:-default}@127.0.0.1:${EXTERNAL_POSTGRES_PORT:-5432}/postgres?search_path=newjitsu"
network_mode: "host"
- 管理数据同步任务
- 使用host网络模式
- 直接连接PostgreSQL
4. 初始化服务
Sync-catalog-init
sync-catalog-init:
image: curlimages/curl
command: "curl --silent --output nul --show-error -H 'Authorization: Bearer service-admin-account:${CONSOLE_TOKEN:-default}' http://console:3000/api/admin/catalog-refresh?initial=true"
- 初始化系统目录
- 依赖Console服务
- 使用curl发送初始化请求
环境变量配置
部署时需要配置以下关键环境变量:
-
数据库密码:
POSTGRES_PASSWORD
MONGO_PASSWORD
CLICKHOUSE_PASSWORD
-
认证令牌:
BULKER_TOKEN
CONSOLE_TOKEN
SYNCCTL_TOKEN
-
服务端口:
JITSU_UI_PORT
(控制台)JITSU_INGEST_PORT
(数据接收)EXTERNAL_POSTGRES_PORT
-
OAuth配置:
GITHUB_CLIENT_ID
GITHUB_CLIENT_SECRET
-
功能开关:
SYNCS_ENABLED
(同步功能)MIT_COMPLIANT
(MIT合规模式)
部署建议
-
持久化存储:虽然示例中注释掉了数据卷配置,生产环境建议为PostgreSQL、MongoDB和Kafka配置持久化存储。
-
资源分配:根据数据量调整各容器资源限制,特别是Kafka和数据库服务。
-
网络配置:确保容器间网络通信正常,特别是Syncctl使用host网络模式。
-
健康检查:利用内置的健康检查机制监控服务状态。
-
版本管理:通过
DOCKER_TAG
环境变量控制各组件版本。
常见问题解决
-
服务启动顺序:依赖关系已通过
depends_on
配置,但复杂场景可能需要额外等待逻辑。 -
认证问题:确保所有令牌环境变量正确配置且一致。
-
端口冲突:检查各服务端口是否被占用,可通过环境变量调整。
-
初始化失败:sync-catalog-init服务设计为"on-failure"重启策略,可查看日志排查问题。
通过这份指南,您应该能够理解Jitsu平台的Docker Compose部署架构及各组件的配置要点。根据实际需求调整配置后,即可启动完整的Jitsu数据收集和分析平台。