首页
/ Jitsu 数据收集平台 Docker Compose 部署指南

Jitsu 数据收集平台 Docker Compose 部署指南

2025-07-08 07:55:38作者:翟江哲Frasier

概述

Jitsu 是一个开源的数据收集和事件处理平台,本文将详细介绍如何使用 Docker Compose 部署完整的 Jitsu 系统。通过这份指南,您将了解 Jitsu 各组件的作用及其配置方式。

核心组件架构

Jitsu 系统由多个微服务组成,每个服务都有特定功能:

  1. 数据存储层:PostgreSQL、MongoDB、ClickHouse
  2. 消息队列:Kafka
  3. 核心服务:Console、Bulker、Rotor、Ingest、Syncctl
  4. 初始化服务: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发送初始化请求

环境变量配置

部署时需要配置以下关键环境变量:

  1. 数据库密码:

    • POSTGRES_PASSWORD
    • MONGO_PASSWORD
    • CLICKHOUSE_PASSWORD
  2. 认证令牌:

    • BULKER_TOKEN
    • CONSOLE_TOKEN
    • SYNCCTL_TOKEN
  3. 服务端口:

    • JITSU_UI_PORT (控制台)
    • JITSU_INGEST_PORT (数据接收)
    • EXTERNAL_POSTGRES_PORT
  4. OAuth配置:

    • GITHUB_CLIENT_ID
    • GITHUB_CLIENT_SECRET
  5. 功能开关:

    • SYNCS_ENABLED (同步功能)
    • MIT_COMPLIANT (MIT合规模式)

部署建议

  1. 持久化存储:虽然示例中注释掉了数据卷配置,生产环境建议为PostgreSQL、MongoDB和Kafka配置持久化存储。

  2. 资源分配:根据数据量调整各容器资源限制,特别是Kafka和数据库服务。

  3. 网络配置:确保容器间网络通信正常,特别是Syncctl使用host网络模式。

  4. 健康检查:利用内置的健康检查机制监控服务状态。

  5. 版本管理:通过DOCKER_TAG环境变量控制各组件版本。

常见问题解决

  1. 服务启动顺序:依赖关系已通过depends_on配置,但复杂场景可能需要额外等待逻辑。

  2. 认证问题:确保所有令牌环境变量正确配置且一致。

  3. 端口冲突:检查各服务端口是否被占用,可通过环境变量调整。

  4. 初始化失败:sync-catalog-init服务设计为"on-failure"重启策略,可查看日志排查问题。

通过这份指南,您应该能够理解Jitsu平台的Docker Compose部署架构及各组件的配置要点。根据实际需求调整配置后,即可启动完整的Jitsu数据收集和分析平台。