背景
当日志需要长期保存、转发到第三方系统,或交由下游平台做实时消费与二次加工时,可通过观测云的数据转发能力将日志按规则实时转发至 Kafka。
相比直接在平台内查询日志,这种方式更适合需要对日志做长期归档、流式处理、审计留存或多系统联动的场景。
适用场景
- 需要将观测云中的日志实时分发到 Kafka,供下游系统继续消费
- 需要将日志同步到数据平台、消息处理链路或自建分析系统
- 需要对指定来源、服务或标签的日志做条件转发,避免全量转发带来的成本压力
- 需要将日志与现有 Kafka 消费体系打通,实现统一的数据处理流程
方案说明
整体链路如下:
观测云日志 -> 数据转发规则 -> Kafka Topic -> 下游消费者/存储系统
本文以单节点 Kafka 环境为例演示配置流程,帮助快速验证功能是否可用。生产环境中建议直接使用已有 Kafka 集群或云上托管 Kafka 服务。
前置条件
- 已有可正常写入和查询日志的观测云工作空间
- 已准备 Kafka 环境,并确认观测云可访问 Kafka 地址与端口
- 已规划好 Topic 名称、网络策略和安全协议
- 如使用云服务器,请确认已放通 Kafka 所需端口(如
9092)
准备 Kafka 环境
下载 Kafka 3.2.0 并解压:
wget https://archive.apache.org/dist/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar -xvf kafka_2.13-3.2.0.tgz
cd kafka_2.13-3.2.0
1. 启动 ZooKeeper
bin/zookeeper-server-start.sh config/zookeeper.properties > logs/zookeeper.out 2>&1 &
2. 修改 Kafka 配置
进入 kafka_2.13-3.2.0/config 目录,编辑 server.properties:
vim server.properties
找到并修改以下两项配置,去掉注释并替换为实际值:
listeners=PLAINTEXT://:9092advertised.listeners=PLAINTEXT://hostIP:9092
其中,hostIP 需要替换为 Kafka 实际可访问的 IP 或域名。

3. 启动 Kafka
bin/kafka-server-start.sh config/server.properties > logs/kafka.out 2>&1 &
4. 创建 Topic
bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092
5. 可选:本地消费验证
在配置观测云转发规则前,建议先确认 Topic 可正常消费:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server hostIP:9092
如果 Kafka 部署在云服务器上,请同步检查安全组、防火墙和 VPC 网络策略,确保 9092 端口可达。
在观测云中配置日志转发规则
在观测云中创建日志转发规则时,建议重点确认以下配置:
- 地址(Host:Port)
- 填写 Kafka 的实际访问地址,例如
hostIP:9092
- 填写 Kafka 的实际访问地址,例如
- 消息主题
- 必须与 Kafka 中已创建的 Topic 一致,例如
test-topic
- 必须与 Kafka 中已创建的 Topic 一致,例如
- 安全协议
- 按 Kafka 实际配置选择
PLAINTEXT、SASL或SSL - 如果 Kafka 开启了鉴权或加密,观测云中的协议配置必须与服务端保持一致
- 按 Kafka 实际配置选择
- 过滤条件
- 建议优先按
source、service、host或标签精确筛选日志 - 不建议在未评估日志量的情况下直接转发全量日志,以免带来不必要的带宽和存储开销
- 建议优先按
- 测试连接
- 点击测试连接,确认观测云到 Kafka 的网络和配置均正常
- 测试成功后再保存规则

验证转发结果
完成规则配置后,可通过以下方式验证日志是否成功写入 Kafka:
方式一:在 Kafka 侧查看消费结果
执行以下命令消费目标 Topic:
bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server hostIP:9092
如果能看到来自观测云转发的日志消息,说明链路已打通。
方式二:在观测云侧确认转发结果
- 检查转发规则是否处于启用状态
- 观察规则运行情况与测试连接结果
- 配合 Kafka 消费结果交叉验证实际是否转发成功

注意事项
- Topic 需要提前创建,且名称必须与转发规则中的配置完全一致
- 如果 Kafka 对外暴露的是内网地址,需确保观测云侧能够访问该网络
- 生产环境建议优先使用高可用 Kafka 集群,而不是单节点测试环境
- 建议根据业务场景规划 Topic、过滤条件和消费组,避免后续扩展时重复调整
- 如果启用了
SASL/SSL,需先完成认证与证书相关配置,再在观测云中使用匹配的安全协议
总结
通过观测云日志转发能力,可以将指定日志实时投递至 Kafka,打通日志采集、分发、存储和消费链路。对于需要长期归档、流式处理、下游二次加工的场景,这是一种简单且易于扩展的实现方式。
实际落地时,建议先在测试环境完成链路验证,再逐步引入更精确的过滤规则、安全协议和生产级 Kafka 架构配置。