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