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

Logstash Kafka输入配置中ssl_keystore_location设置不生效显示为null的问题排查

问题分析与解决方案

从你提供的Logstash配置和消费者日志来看,核心问题出在SSL协议未启用,导致你配置的SSL密钥库/信任库路径没有被加载到Kafka消费者配置中。

关键原因

你的Kafka输入配置中缺少了security_protocol参数,默认情况下Logstash Kafka插件会使用PLAINTEXT作为安全协议。当安全协议为PLAINTEXT时,Kafka客户端会完全忽略所有SSL相关的配置项,所以你设置的ssl_keystore_location和ssl_truststore_location不会被传递到消费者配置里,最终显示为null。

修复步骤

  1. 添加安全协议配置
    在你的Kafka input块中加入security_protocol => "SSL"(如果你的MSK集群使用的是SASL_SSL认证,则改为"SASL_SSL"),这样SSL相关参数才会被生效。修改后的配置如下:

    input {
      kafka {
        bootstrap_servers => "my-aws-msk.kafka.us-east-1.amazonaws.com:9092"
        topics => ["agg_events"]
        group_id => "agg-logstash-consumer"
        consumer_threads => 2
        security_protocol => "SSL"  # 启用SSL协议
        ssl_keystore_location => "/tmp/kafka.client.truststore.jks"
        ssl_truststore_location => "/tmp/kafka.client.truststore.jks"
        # 如果密钥库/信任库设置了密码,需要补充以下参数
        # ssl_keystore_password => "your-keystore-password"
        # ssl_truststore_password => "your-truststore-password"
      }
    }
    
  2. 验证文件权限与存在性
    确保/tmp/kafka.client.truststore.jks文件确实存在,并且Logstash运行用户(通常是logstash用户)拥有读取该文件的权限。可以通过以下命令检查:

    sudo -u logstash ls -l /tmp/kafka.client.truststore.jks
    

    如果文件不存在,需要重新生成或复制正确的信任库文件;如果权限不足,调整文件权限为logstash用户可读。

  3. 重启Logstash并验证
    重启Logstash服务后,查看消费者配置日志,此时ssl.keystore.location和ssl.truststore.location应该会显示你配置的路径,而不是null。

额外说明

Logstash Kafka插件的参数采用下划线分隔命名(如security_protocol),对应Kafka原生消费者的点分隔参数(如security.protocol)。只有当安全协议设置为SSL或SASL_SSL时,SSL相关的配置项才会被Kafka客户端初始化和使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:07:34