
rudderlabs/rudder-serverRudder 数据平面栈镜像是 Rudder 客户数据平台(CDP)的核心执行组件,负责数据的接收、处理、转换与路由。作为数据流程的核心执行层,该镜像实现了从数据源(如网站、移动应用、服务器)到目标系统(如分析工具、CRM、数据仓库、营销平台)的端到端数据传递,支持企业构建灵活、可扩展的客户数据管道。
通过 Docker 直接运行(替换 <version> 为具体版本号):
bashdocker run -d \ --name rudder-data-plane \ -p 8080:8080 \ # 数据接收 API 端口 -p 9090:9090 \ # 监控指标端口 -v /path/to/local/config:/etc/rudder \ # 挂载配置文件目录 -e RUDDER_CONFIG_FILE=/etc/rudder/config.yaml \ # 指定配置文件路径 -e LOG_LEVEL=info \ # 日志级别:debug/info/warn/error rudderstack/rudder-server:<version>
创建 docker-compose.yml 实现完整部署(含依赖数据库):
yamlversion: '3.8' services: rudder-data-plane: image: rudderstack/rudder-server:<version> container_name: rudder-data-plane ports: - "8080:8080" # 数据接收端口 - "9090:9090" # 监控端口 volumes: - ./config:/etc/rudder # 配置文件目录 - ./data:/var/rudder/data # 持久化缓存目录 environment: - RUDDER_CONFIG_FILE=/etc/rudder/config.yaml - LOG_LEVEL=info - DB_HOST=postgres - DB_PORT=5432 - DB_USER=rudder - DB_PASSWORD=rudderpass - DB_NAME=rudder_data_plane depends_on: - postgres postgres: image: postgres:14 container_name: rudder-postgres environment: - POSTGRES_USER=rudder - POSTGRES_PASSWORD=rudderpass - POSTGRES_DB=rudder_data_plane volumes: - postgres-data:/var/lib/postgresql/data volumes: postgres-data:
config.yaml)核心配置示例:
yaml# 数据接收服务配置 server: http: port: 8080 readTimeout: 10s writeTimeout: 30s maxHeaderBytes: *** # 1MB # 数据处理配置 processing: concurrency: 4 # 处理线程数 batchSize: 100 # 批处理大小 retryMaxAttempts: 5 # 投递失败重试次数 retryBackoff: "exponential" # 重试策略:exponential/fixed # 路由规则配置(支持通过 Rudder 控制台 UI 可视化配置) routes: - name: "product-events-route" source: "product-tracking" # 数据源标识 destinations: ["google-analytics-4", "***"] condition: "event.type in ['product_view', 'add_to_cart']" # JSONata 条件表达式 transform: | # 数据转换脚本(JSONata) { "event": $event, "properties": { "productId": $properties.product_id, "price": $properties.price, "timestamp": $timestamp }, "userId": $user_id } # 目标系统配置 destinations: google-analytics-4: type: "google-analytics-4" config: measurementId: "G-XXXXXXXXXX" apiSecret: "your-ga4-api-secret" ***: type: "***" config: account: "xy***.us-west-2" warehouse: "ANALYTICS_WH" database: "CUSTOMER_EVENTS" schema: "RAW" auth: type: "key-pair" privateKey: "/etc/rudder/keys/***_private_key.p8"
常用环境变量说明:
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
RUDDER_CONFIG_FILE | 主配置文件路径 | /etc/rudder/config.yaml |
LOG_LEVEL | 日志级别 | info |
DB_HOST | 元数据库主机地址 | localhost |
DB_PORT | 元数据库端口 | 5432 |
DB_USER | 元数据库用户名 | rudder |
DB_PASSWORD | 元数据库密码 | - |
DB_NAME | 元数据库名称 | rudder_data_plane |
KAFKA_BROKERS | Kafka brokers 地址(若使用Kafka接收数据) | - |
MAX_PAYLOAD_SIZE | 最大接收 payload 大小(MB) | 10 |
CACHE_STORAGE_PATH | 本地缓存存储路径 | /var/rudder/data/cache |
HEALTHCHECK_PORT | 健康检查端口 | 9090 |
通过 Helm Chart 部署(参考 Rudder 官方 Helm 仓库):
bashhelm repo add rudderstack [***] helm install rudder-data-plane rudderstack/rudder-server \ --namespace rudder-system \ --create-namespace \ --set image.tag=<version> \ --set config.existingConfigMap=rudder-config \ --set db.host=rudder-postgres.rudder-system.svc.cluster.local \ --set resources.requests.cpu=1 \ --set resources.requests.memory=2Gi \ --set hpa.enabled=true \ --set hpa.minReplicas=3 \ --set hpa.maxReplicas=10 \ --set hpa.targetCPUUtilizationPercentage=70
bashdocker exec -it rudder-data-plane ./rudder-server db migrate
bashcurl -X POST http://<container-ip>:8080/api/v1/config/reload
bashdocker logs -f rudder-data-plane --tail 100

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务