使用 ssl 访问 kafka 代理时出错

问题描述 投票:0回答:2

连接到 kafka 代理时出现错误,汇合控制台日志显示此错误。

    [2018-03-22 11:46:03,545] WARN Failed to send SSL Close message  (org.apache.kafka.common.network.SslTransportLayer)
java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
        at org.apache.kafka.common.network.SslTransportLayer.flush(SslTransportLayer.java:212)
        at org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:157)
        at org.apache.kafka.common.utils.Utils.closeAll(Utils.java:703)
        at org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:70)
        at org.apache.kafka.common.network.Selector.doClose(Selector.java:717)
        at org.apache.kafka.common.network.Selector.close(Selector.java:708)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:500)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:398)
        at kafka.network.Processor.poll(SocketServer.scala:535)
        at kafka.network.Processor.run(SocketServer.scala:452)
        at java.lang.Thread.run(Thread.java:748)

我在kafka服务器上的配置如下:

listeners=PLAINTEXT://:9092,SSL://:9093

# Broker security settings
ssl.truststore.location=/home/xcode/Descargas/ssl/server.truststore.jks
ssl.truststore.password=123456
ssl.keystore.location=/home/xcode/Descargas/ssl/server.keystore.jks
ssl.keystore.password=123456
ssl.key.password=123456
ssl.client.auth=required
security.inter.broker.protocol=SSL

我尝试使用kafka-pyton包的KafkaClient执行操作并返回以下错误。

assert broker, 'Broker id %s not in current metadata' % node_id
AssertionError: Broker id None not in current metadata
python ssl apache-kafka kafka-python
2个回答
1
投票

问题解决了,是证书生成不正确的问题,使用一些测试证书就可以了。 这些是您使用的证书,您也可以在该存储库中查看服务器设置。 https://github.com/aggress/confluence-kafka-vagrant-ansible


0
投票

您可以执行以下操作

  1. SSL/TLS 配置验证:确保所有文件路径和密码正确。经纪商和客户的信任存储区应导入相关的 CA 证书。检查 Kafka 代理日志中是否存在 SSL 握手问题。

  2. Kafka Connect 配置:如果您使用 Kafka Connect,请确保其正确配置为通过 SSL 端口进行通信。连接配置应包含以下行:

    CONNECT_SECURITY_PROTOCOL: SSL
    .

  3. 正确生成证书:StackOverflow 帖子中的原始问题已通过正确生成证书得到解决。确保您正确生成并导入每个 Kafka 代理的证书。

参考文献

https://www.slingacademy.com/article/how-to-configure-ssl-tls-in-kafka/

© www.soinside.com 2019 - 2024. All rights reserved.