У меня есть стек / докер 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
и это работает!