我在一台服务器上有一个ELK堆栈/ docker,另一个应用程序使用wildlfy / docker在我的应用程序中将日志发送到ELK,因此我需要确保连接在两台服务器之间使用ssl(我的应用程序-> logtash) 其实我在本地(同一台计算机上的应用程序和ELK)上工作:
input {
tcp {
port => 8000
ssl_enable => true
ssl_cert => "logstash:/usr/share/logstash/cert/logstash.mydomain.crt"
ssl_key => "logstash:/usr/share/logstash/cert/logstash.mydomain.key"
}
}
logstash服务器没有错误运行,我可以在https://logstash.mydomain上正常工作
现在,应用程序正在使用Wildfly和jboss-logmanager-ext将日志发送到logstash:
/subsystem=logging/custom-handler=logstash-handler:add(class=org.jboss.logmanager.ext.handlers.SocketHandler,module=org.jboss.logmanager.ext,named-formatter=logstash,properties={protocol=TCP,hostname=logstash.mydomain, port=8000})
此设置在http上可以正常使用,因此我将协议更改为SSL_TCP,没有其他设置,但是没有正常运行,没有日志结尾为logstash
[EDIT]:缺少Java密钥库:
keytool -importcert -alias startssl -keystore /pathto/cacerts -storepass changeit -file /opt/jboss/tmp/logstash.mydomain.crt
它正在工作!