首页 > 解决方案 > log4j2-config.xml 中的 Log4j2 TCP-SSL Appender 配置

问题描述

我打算用 TCP-SSL Appender 配置 Log4j2 Socket Appender。

这是我在 Log4j2 网站上看到的配置。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <Appenders>
    <Socket name="socket" host="localhost" port="9500">
      <JsonLayout properties="true"/>
      <SSL>
        <KeyStore location="log4j2-keystore.jks" password="guessme!"/>
        <TrustStore location="truststore.jks" password="guessme!"/>
      </SSL>
    </Socket>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="socket"/>
    </Root>
  </Loggers>
</Configuration>

在这个配置中,KeystoreTrustStore文件包含什么?我没有这些文件。

我想将我的日志发送到 Splunk TCP 端口。

我是否需要truststore.jks从我的 Splunk 服务器创建 SSL 证书,以便我的服务器信任 Splunk?

什么是log4j2-keystore.jks,在哪里可以下载?我需要一个KeyStore文件吗?里面应该放什么?Splunk 是否需要相应的公钥或可信证书?

标签: ssllog4j2splunk

解决方案


keystore如果您拥有并想要使用它们,则包含您的个人密钥和公共密钥。它可以完全排除在外。

包含服务器的truststore证书。您可以像这样下载并打包为 jks:

$ echo -n | openssl s_client -connect log-server.tld:5010 -servername log-server.tld \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee "server.crt"

$ keytool -import -alias log-server-certificate-alias -keystore log-server-cert.jks -file server.crt

后者提示您输入将在日志配置中使用的密码。

我在 logstash 遇到了类似的问题,并在此处发布了我的发现的简短摘要:https ://rekowski.info/home/technical/java/log4j2-socket-appender-logstash-kibana-ssl-tls.md


推荐阅读