log4j2 kafka appender over TLS / SSL

时间:2016-03-17 13:59:25

标签: java ssl apache-kafka log4j2

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

1 个答案:

答案 0 :(得分:1)

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获取日志。