log4j2-config.xml中的Log4j2 TCP-SSL Appender配置

时间:2018-05-03 20:11:39

标签: ssl log4j2 splunk

我计划使用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端口。

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

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

1 个答案:

答案 0 :(得分:0)

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