繁体   English   中英

TLS/SSL 上的 log4j2 kafka appender

[英]log4j2 kafka appender over TLS/SSL

我正在尝试将 Apache Kafka appender 用于 log4j2。 我能够成功地通过 Kafka 发布我的日志。 我的问题是我是否可以通过 TLS/SSL 发布。 我找不到有关如何为 log4j2 kafka appender 配置安全传输的文档,或者我很懒。 任何帮助表示赞赏。

1) 要在 Kafka 服务器上设置 SSL,请按照 docs.confluent.io/2.0.0/kafka/ssl.html 上概述的步骤操作

2)在Kafka server.properties上,添加以下内容

listeners=SSL://:9092
ssl.keystore.location=<Folder>/kafka.server.keystore.jks
ssl.keystore.password=<password>
ssl.key.password=changeme
ssl.truststore.location=<Folder>/kafka.server.truststore.jks
ssl.truststore.password=<password>
ssl.client.auth=required
security.inter.broker.protocol=SSL

3)在Kafka客户端(想要通过Kafka发送日志的应用的log4j2.xml文件),在Kafka appender配置下添加如下SSL属性,如下图

<Kafka name="Kafka"  topic="kafka.ssl.log4j2.test.topic">
    <!--JsonLayout complete="true" compact="false" eventEol="true" properties="true" locationInfo="true"/-->
    <PatternLayout>
        <Pattern>[%-5level] [%t] [%C : %M : %F : %L] : %X : %m%n</Pattern> 
    </PatternLayout>
    <Property name="bootstrap.servers">localhost:9092</Property>
    <!--
    <Property name="security.protocol">SSL</Property>
    <Property name="ssl.truststore.location">truststore location of client</Property>
    <Property name="ssl.truststore.password">password</Property>
    <Property name="ssl.keystore.location">keystore location of client</Property>
    <Property name="ssl.keystore.password">password</Property>
    <Property name="ssl.key.password">key password</Property>
    -->
</Kafka>

4)就是这样。 您现在应该能够将您的日志发送到 LogStash 或任何其他具有 Kafka 插件以从 Kafka 获取日志的应用程序。

谢谢你的回答! 如果需要,可以像这样设置密钥库/信任库类型。

<Property name="ssl.truststore.type">PKCS12</Property>

虽然我仍然想知道如何从环境变量中获取密码。 有人知道吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM