如何使用ssl_tcp将日志从jboss发送到logstash

时间:2019-06-07 14:19:49

标签: jboss logstash

我在一台服务器上有一个ELK堆栈/ docker,另一个应用程序使用wildlfy / docker在我的应用程序中将日志发送到ELK,因此我需要确保连接在两台服务器之间使用ssl(我的应用程序-> logtash) 其实我在本地(同一台计算机上的应用程序和ELK)上工作:

  • 我已经通过openssl取得了证书
  • 将crt和密钥文件复制到我的 容器(只是为了测试,之后我会使用另一种方法),然后更新 logstash.conf:
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

  • 我想念什么?
  • 当org.jboss.logmanager尝试将日志发送到logstash时,是否可以查看它的日志?还是另一种调试并显示错误消息的方式?

[EDIT]:缺少Java密钥库:

keytool -importcert -alias startssl -keystore /pathto/cacerts -storepass changeit -file /opt/jboss/tmp/logstash.mydomain.crt

它正在工作!

0 个答案:

没有答案