我计划使用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>
在此配置中,Keystore
和TrustStore
文件包含哪些内容?我没有这些文件。
我想将我的日志发送到Splunk TCP端口。
我是否需要使用Splunk服务器的SSL证书创建truststore.jks
,以便我的服务器信任Splunk?
什么是log4j2-keystore.jks
,我在哪里下载?我需要KeyStore
个文件吗?应该怎么做? Splunk是否需要相应的公钥或可信证书?
答案 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