[英]reduce the internal log level for Log4j2 (with 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.