
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Rudder 数据平面栈镜像是 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: docker.xuanyuan.run/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: docker.xuanyuan.run/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: 1048576 # 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", "snowflake"] 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" snowflake: type: "snowflake" config: account: "xy12345.us-west-2" warehouse: "ANALYTICS_WH" database: "CUSTOMER_EVENTS" schema: "RAW" auth: type: "key-pair" privateKey: "/etc/rudder/keys/snowflake_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 |
水平扩展方案
Kubernetes 部署
通过 Helm Chart 部署(参考 Rudder 官方 Helm 仓库):
bashhelm repo add rudderstack https://charts.rudderstack.com 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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务