I have preflight checks disabled since is the only way I can run the datanode. Otherwise:
Exception in thread "main" org.graylog2.bootstrap.preflight.PreflightCheckException: /proc/sys/vm/max_map_count value should be at least 262144 but is 65530 (set via "vm.max_map_count" sysctl)
at org.graylog.datanode.bootstrap.preflight.OpenSearchPreconditionsCheck.runCheck(OpenSearchPreconditionsCheck.java:51)
at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:421)
at org.graylog2.bootstrap.preflight.PreflightCheckService.runChecks(PreflightCheckService.java:52)
at org.graylog.datanode.bootstrap.DatanodeBootstrap.runPreFlightChecks(DatanodeBootstrap.java:82)
at org.graylog.datanode.bootstrap.DatanodeBootstrap.beforeInjectorCreation(DatanodeBootstrap.java:70)
at org.graylog2.bootstrap.CmdLineTool.doRun(CmdLineTool.java:358)
at org.graylog2.bootstrap.CmdLineTool.run(CmdLineTool.java:283)
at org.graylog.datanode.bootstrap.Main.main(Main.java:59)
It seems the solution is to set node.store.allow_mmap: "false" in elasticsearch.yml. Since the GRAYLOG_DATANODE environment variables are not documented I’m not sure if there is a variable for this, or whether I need to create a custom datanode image to apply the change.
(Edit: mmap is not configurable on Railway)