Logstash: NameError: cannot load org.jruby.ext.openssl.OpenSSL
Nach der erfolgreichen Installation von OpenDistro for ElasticSearch, zusammen mit Kibana, war Logstash dran.
OpenDistro ElasticSearch empfiehlt Java 11, das auf Debian Stretch aus den stretch-backports
kommt.
Leider startete damit Logstash nicht:
Fehlermeldung kopiert von GitHub, die tatsächliche hat die Screen-Session nicht überlebt
NameError: cannot load (ext) (org.jruby.ext.openssl.OpenSSL)
load_ext at org/jruby/ext/jruby/JRubyUtilLibrary.java:201
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/jopenssl/load.rb:31
require at org/jruby/RubyKernel.java:987
(root) at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54
require at org/jruby/RubyKernel.java:987
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/openssl.rb:1
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
require at org/jruby/RubyKernel.java:987
require at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/security.rb:12
require at org/jruby/RubyKernel.java:987
(root) at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:54
require at org/jruby/RubyKernel.java:987
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/package.rb:44
<main> at /usr/share/logstash/vendor/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
Mögliche Fehlerquellen, die ausgeschlossen werden konnten:
- Berechtigungen:
/tmp
war nicht suexec gemounted. - JDK:
Sowohlopenjdk-11
als auchopenjdk-8
(regulär aus Stretch) meldete den Fehler - vollkommen identisch. - OpenDistro:
Auch mit ElasticSearch 7.2 (die Closed Source-Version) gab es den Fehler
Nachdem auf einem zweiten Server der Fehler nicht reproduziert werden konnte, habe ich gezielt die Versionen von Logstash reduziert.
Mit Logstash 6 trat der Fehler ebenso auf.
Logstash 5 meldete einen anderen Fehler:
[ERROR] 2018-05-18 07:45:58.226 [main] Logstash - java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: (OpenSSL::X509::StoreError) setting default path failed: the trustAnchors parameter must be non-empty
Quelle: https://github.com/elastic/logstash/issues/9564
Dort wurde dann auch eine Lösung verlinkt:
Edit: Fixed with this comment: https://stackoverflow.com/questions/6784463/error-trustanchors-parameter-must-be-non-empty#comment87650897_50103533
I ran
sudo rm /etc/ssl/certs/java/cacerts
and thensudo update-ca-certificates -f
and this fixed my issue in kubuntu 18.04.
Somit funktionierte auch Logstash 7 wieder.