Как использовать ssl_tcp для отправки журнала из jboss в logstash - PullRequest
0 голосов
/ 07 июня 2019

У меня есть стек / докер ELK на сервере и другой сервер с моим приложением, использующим wildlfy / docker, который отправлял журналы в ELK, поэтому я должен убедиться, что соединение использует ssl между двумя серверами (Мое приложение -> logtash) На самом деле я работаю на локальном (приложение и ELK на одном компьютере):

  • Я сделал свой сертификат с openssl
  • скопируйте файлы crt и key на мой контейнер (просто для проверки я буду использовать другой способ после), а затем обновить 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? или другой способ отладки и сообщения об ошибке?

[ПРАВКА]: отсутствует хранилище ключей Java:

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

и это работает!

...