You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zipkin客户端追踪日志无法被Hawkular APM接收问题排查

解决Camel Zipkin与Hawkular APM集成的Thrift传输错误问题

你的客户端已经能正常生成Zipkin追踪日志,但因为Thrift传输层的异常,导致数据无法被Hawkular APM成功收集。结合你给出的配置和错误日志,我来帮你拆解问题并给出具体的修复方案:

核心问题定位

错误日志里的java.net.SocketException: Socket closed和org.apache.thrift.transport.TTransportException是关键线索:这说明客户端在通过Thrift协议向Hawkular发送Span数据时,连接被主动关闭了。大概率是传输协议配置不匹配或者SSL未正确启用导致的——毕竟你指定了443端口(通常对应HTTPS),但默认的Camel Zipkin客户端并没有开启SSL支持。

具体解决步骤

1. 补充SSL相关配置

既然用了443端口,说明Hawkular的这个端点是HTTPS服务,需要给Camel Zipkin客户端开启SSL,并配置信任凭证(如果用了自签名证书的话)。修改你的application.properties:

camel.zipkin.host-name=hawkular-apm-server.com
camel.zipkin.port=443
camel.zipkin.include-message-body-streams=true
# 新增SSL启用配置
camel.zipkin.ssl=true
# 如果Hawkular使用自签名证书,添加信任库配置(路径和密码根据实际情况调整)
camel.zipkin.trust-store=classpath:hawkular-truststore.jks
camel.zipkin.trust-store-password=your-truststore-pass

2. 验证Hawkular的Zipkin端点端口

虽然你能正常访问Hawkular的UI,但需要确认它的Zipkin兼容Thrift接收端口是否真的是443。很多Hawkular部署会把Zipkin Thrift服务放在9411端口(Zipkin默认端口),而UI单独用443。你可以先切换到HTTP端口做测试:

camel.zipkin.host-name=hawkular-apm-server.com
camel.zipkin.port=9411
camel.zipkin.ssl=false

如果这样调整后能正常收集日志,说明之前的端口或SSL配置就是问题根源。

3. 核对依赖版本兼容性

确保camel-zipkin-starter的版本和你项目中Camel核心版本完全一致。版本不匹配可能会导致Thrift客户端与服务端的协议不兼容,引发传输错误。比如你的Camel核心版本是3.18.x,依赖就应该对应:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-zipkin-starter</artifactId>
    <version>3.18.6</version> <!-- 和Camel核心版本保持一致 -->
</dependency>

4. 确认Hawkular的Zipkin兼容模式已开启

登录Hawkular APM控制台,检查是否启用了Zipkin兼容接收模式。部分部署默认会关闭这个功能,需要在Hawkular的服务配置里设置hawkular-apm.zipkin.enabled=true。

验证修复效果

修改配置后重启客户端,调用你的REST API,查看日志是否还有Thrift相关错误,同时登录Hawkular APM控制台检查是否能看到追踪链路数据。

内容的提问来源于stack exchange,提问作者jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:08:23