Question about upgrading to 5.0


I have a running Graylog 4.3.9 instance based on FreeBSD, with MongoDB 3.6 and OpenSearch 1.3.4.

I want to upgrade it but reading the documentation there seems to be a chicken and egg situation of sorts.

The “Upgrade MongoDB” section states this:


  • A running MongoDB standalone server.
  • A running Graylog 5.0+ cluster.
  • Access to the servers where MongoDB is installed and the necessary privileges to install and start/stop software.
  • MongoDB administrator credentials for the cluster.
  • Administrator access to Graylog.
  • Access to the Graylog server log files.

So, is Graylog 5.0 supposed to run with MongoDB 3.6.23? I presume I can’t have a running Graylog 5.0 cluster before I update MongoDB to 5.x or 6.x successfully, right?

I would start the journey by upgrading MongoDB to 4.4 which is supported by your Graylog 4.3.9 version (System Requirements) That will put you in a better position to upgrade Graylog to 5.x.

Here is a query post with some pretty good detail on the upgrade, though it’s Ubuntu, if you are familiar enough with Linux to use FreeBSD, you likely won’t have a problem in translation :smiley:


Thank you very much. On it now.

Wow, MongoDB with link time optimization… the linker took 22 GB of memory, but it worked! :wink:

(Yes, I am one of those FreeBSD perverts that compile from ports) :wink:

1 Like

And success!!

From a tiny cluster running Graylog 4.3.9, MongoDB 3.6 and OpenSearch 1.3.4 I did the following.

I upgraded MongoDB step by step (that was daunting given that I always compile from ports) but there were no incidents.

With Graylog stopped, I stopped the Opensearch cluster and I snapshotted the database directories so that I could rollback quickly.

That done, I unpacked the tarball and I changed the rc.d file from ports so that it would allow me to specify OpenJDK17 instead of 8 by default.

Once I started everything I found that some Java options in the Graylog rc.d file don’t apply to OpenJDK 17.

# -XX:+AggressiveOpts \
#    -XX:+CMSConcurrentMTEnabled \
#    -XX:+CMSParallelRemarkEnabled \
#    -XX:+UseCMSInitiatingOccupancyOnly \
#    -XX:+UseConcMarkSweepGC \
#    -XX:+UseFastAccessorMethods \
#    -XX:+UseParNewGC \
#    -XX:CMSInitiatingOccupancyFraction=75 \

That done it’s running. Probably not optimally.

Note: My CPU is a Xeon E3-1230L which supports AVX instructions. Anyway on another post I have hinted at how to build MongoDB without the requirement of AVX. It’s a simple matter of removing one optimization compiler flag from the SConstruct file.


My brother is as well - he associates with Dragonfly BSD

1 Like

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