graylog: improve JRE handling

Since the upstream graylogctl script will prefer finding its java
executable based on JAVA_HOME, we now set this instead of PATH in
order to allow it to find the JRE. By setting it conditionally on it
not already being set, we allow selecting a different JRE at runtime.

We also explicitly use openjdk11, which supports the
UseConcMarkSweepGC option which graylog insists on using.
This commit is contained in:
Linus Heckemann 2021-03-27 17:51:43 +01:00
parent d3f7e969b9
commit 22de3c19e7
2 changed files with 4 additions and 6 deletions

View file

@ -39,7 +39,6 @@ in
type = types.package; type = types.package;
default = pkgs.graylog; default = pkgs.graylog;
defaultText = "pkgs.graylog"; defaultText = "pkgs.graylog";
example = literalExample "pkgs.graylog";
description = "Graylog package to use."; description = "Graylog package to use.";
}; };
@ -138,14 +137,13 @@ in
"d '${cfg.messageJournalDir}' - ${cfg.user} - - -" "d '${cfg.messageJournalDir}' - ${cfg.user} - - -"
]; ];
systemd.services.graylog = with pkgs; { systemd.services.graylog = {
description = "Graylog Server"; description = "Graylog Server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
environment = { environment = {
JAVA_HOME = jre;
GRAYLOG_CONF = "${confFile}"; GRAYLOG_CONF = "${confFile}";
}; };
path = [ pkgs.jre_headless pkgs.which pkgs.procps ]; path = [ pkgs.which pkgs.procps ];
preStart = '' preStart = ''
rm -rf /var/lib/graylog/plugins || true rm -rf /var/lib/graylog/plugins || true
mkdir -p /var/lib/graylog/plugins -m 755 mkdir -p /var/lib/graylog/plugins -m 755

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, makeWrapper, jre_headless, nixosTests }: { lib, stdenv, fetchurl, makeWrapper, openjdk11_headless, nixosTests }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "graylog"; pname = "graylog";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
dontStrip = true; dontStrip = true;
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
makeWrapperArgs = [ "--prefix" "PATH" ":" "${jre_headless}/bin" ]; makeWrapperArgs = [ "--set-default" "JAVA_HOME" "${openjdk11_headless}" ];
passthru.tests = { inherit (nixosTests) graylog; }; passthru.tests = { inherit (nixosTests) graylog; };