Anton Dollmaier


Logstash: NameError: cannot load (ext) (org.jruby.ext.openssl.OpenSSL)

07 Jul 2019 »

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:
    Sowohl openjdk-11 als auch openjdk-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 then sudo update-ca-certificates -f and this fixed my issue in kubuntu 18.04.

Somit funktionierte auch Logstash 7 wieder.

© Anton Dollmaier