Graylog compilation

Hi,

I am using a graylog 5.1.9 installed manually using the following procedure (procedure):

wget https://packages.graylog2.org/repo/packages/graylog-5.0-repository_latest.deb
sudo dpkg -i graylog-5.0-repository_latest.deb
sudo apt-get update
sudo apt-get install graylog-server 

For testing purpose, I wanted to replace the graylog.jar placed in /usr/share/graylog/ by a graylog.jar locally compiled version based on he original sources from github.

I cloned graylog2-server from the official github repo : https://github.com/Graylog2/graylog2-server.git

Then I used mvn compile and then mvn jar:jar install:install in order to retrieve a locally compiled graylog.jar.

Then I replaced graylog.jar in /usr/share/graylog/ but now graylog does not work anymore.

I get this error:


janv. 02 13:33:57 DEV-X systemd[1]: Started Graylog server.
janv. 02 13:33:58 DEV-X graylog-server[110224]: Exception in thread "main" java.lang.NoClassDefFoundError: com/github/rvesse/airline/Cli
janv. 02 13:33:58 DEV-X graylog-server[110224]:         at org.graylog2.bootstrap.Main.main(Main.java:29)
janv. 02 13:33:58 DEV-X graylog-server[110224]: Caused by: java.lang.ClassNotFoundException: com.github.rvesse.airline.Cli
janv. 02 13:33:58 DEV-X graylog-server[110224]:         at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
janv. 02 13:33:58 DEV-X graylog-server[110224]:         at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
janv. 02 13:33:58 DEV-X graylog-server[110224]:         at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
janv. 02 13:33:58 DEV-X graylog-server[110224]:         ... 1 more
janv. 02 13:33:58 DEV-X systemd[1]: graylog-server.service: Main process exited, code=exited, status=1/FAILURE
janv. 02 13:33:58 DEV-X systemd[1]: graylog-server.service: Failed with result 'exit-code'.

The code was not modified at all. Does anyone knows why graylog behaves this way ?

Would it come from my previous Graylog 5.1.9 version installed ? Or would it come from the way graylog.jar is executed ?

This the execution command from the graylog-server systemctl service:

usr/share/graylog-server/jvm/bin/java -Xms1g -Xmx1g -server -XX:+UseG1GC -XX:-OmitStackTraceInFastThrow -Djdk.tls.acknowledgeCloseNotify=true -Dlog4j2.formatMsgNoLookups=true -jar -Dlog4j.configurationFile=file:///etc/graylog/server/log4j2.xml -Djava.library.path=/usr/share/graylog-server/lib/sigar -Dgraylog2.installation_source=deb /usr/share/graylog-server/graylog.jar server -f /etc/graylog/server/server.conf -np

All confs / files are originals and were not altered / modified.

However having no clue, some options.

  • Graylog contains it’s own java runtime library’s as of version 5.0, could it be that settings
    are still pointing tot system java
  • Is the downloaded jar compatible with the internal java runtime
  • Is mongo DB installed and running, it cannot run without it
  • Is server.conf set to run to the desired preferences
  • Is there an elasticserch/opensearch installed and running?

Graylog is no stand alone product, it depends on some other products.

Good luck,
Arie

  • Graylog contains it’s own java runtime library’s as of version 5.0, could it be that settings are still pointing tot system java
  • Is the downloaded jar compatible with the internal java runtime
  • Is server.conf set to run to the desired preferences

Ok, I’ll check about this

  • Is mongo DB installed and running, it cannot run without it
  • Is there an elasticserch/opensearch installed and running?

Yes, as it was installed previously following the manual instructions procedure

Thanks for these advices

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.