使用 ClickStack 监控 Kafka 日志
使用 OTel filelog 接收器在 ClickStack 中收集并可视化 Kafka broker 的日志 (Log4j 格式) 。包含演示数据集和预置仪表板。
与现有 Kafka 集成
本节介绍如何通过修改 ClickStack OTel collector 配置,将现有的 Kafka 安装配置为向 ClickStack 发送 broker 日志。 如果您想先测试 Kafka 日志集成,再配置自己现有的环境,可以在"演示数据集"部分使用我们预配置的环境和示例数据进行测试。
前提条件
- 正在运行的 ClickStack 实例
- 已安装 Kafka (版本 2.0 或更高)
- 具有访问 Kafka 日志 File (
server.log、controller.log等) 的权限
验证 Kafka 日志配置
Kafka 使用 Log4j,并将日志写入由 kafka.logs.dir 系统属性或 LOG_DIR 环境变量指定的目录。检查您的日志文件位置:
关键 Kafka 日志文件:
server.log:通用 broker 日志 (启动、连接、复制、错误)controller.log:控制器相关事件 (leader 选举、分区重新分配)state-change.log:分区和副本状态变更
Kafka 的默认 Log4j 模式生成如下格式的日志行:
对于基于 Docker 的 Kafka 部署 (例如 confluentinc/cp-kafka) ,默认的 Log4j 配置仅包含控制台追加器 (console appender) ,不包含文件追加器 (file appender) ,因此日志只会写入 stdout。若要使用 filelog 接收器,需要将日志重定向到文件,可通过在 log4j.properties 中添加文件追加器,或将 stdout 通过管道输出 (例如 | tee /var/log/kafka/server.log) 来实现。
为 Kafka 创建自定义 OTel collector 配置
ClickStack 支持通过挂载自定义配置文件并设置环境变量来扩展基础 OpenTelemetry Collector 配置。自定义配置将与由 HyperDX 通过 OpAMP 管理的基础配置进行合并。
创建一个名为 kafka-logs-monitoring.yaml 的文件,并填入以下配置:
- 你只需在自定义配置中定义新的接收器和管道。处理器 (
memory_limiter、transform、batch) 和导出器 (clickhouse) 已在 ClickStack 的基础配置中定义好——你只需按名称引用即可。 multiline配置可确保将堆栈跟踪捕获为单条日志条目。- 此配置使用
start_at: beginning,以便在 Collector 启动时读取所有已有日志。对于生产环境中的部署,请改为start_at: end,以避免在 Collector 重启时重复摄取日志。
配置 ClickStack 以加载自定义配置
要在现有 ClickStack 部署中启用自定义 Collector 配置,您必须:
- 将自定义配置文件挂载至
/etc/otelcol-contrib/custom.config.yaml - 设置环境变量
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - 挂载 Kafka 的日志目录,以便 Collector 读取日志
- Docker Compose
- Docker Run (All-in-One 镜像)
更新 ClickStack 的部署配置:
如果你使用 Docker 运行一体化镜像,请执行:
确保 ClickStack Collector 具有读取 Kafka 日志文件的适当权限。在生产环境中,请使用只读挂载 (:ro) 并遵循最小权限原则。
演示数据集
在配置生产系统之前,先使用预先生成的示例数据集测试 Kafka 日志集成。
仪表板和可视化
导入预构建的仪表板
- 打开 HyperDX 并导航到 Dashboards 部分。
- 点击右上角省略号下方的“Import Dashboard”。

- 上传 kafka-logs-dashboard.json File,然后点击完成导入。

故障排查
验证生效的配置中是否包含您的 filelog 接收器:
检查 Collector 是否有错误:
验证 Kafka 日志格式是否符合预期模式:
如果您的 Kafka 安装使用了自定义的 Log4j 模式,请相应调整 regex_parser 的正则表达式。
后续步骤
生产环境部署
本指南利用 ClickStack 内置的 OpenTelemetry Collector 实现快速设置。对于生产环境部署,我们建议运行您自己的 OTel Collector,并将数据发送到 ClickStack 的 OTLP 端点。有关生产环境配置,请参阅发送 OpenTelemetry 数据。


