ELK: update kibana and the elastic beats to 5.4 (#26252)
* Add kibana5 and logstash5 * Upgrade the elastic beats to 5.4 * Make sure all elastic products use the same version (see elk5Version) * Add a test for the ELK stack
This commit is contained in:
committed by
Franz Pletz
parent
424dc0138d
commit
2444eab485
@@ -5,7 +5,11 @@ with lib;
|
||||
let
|
||||
cfg = config.services.kibana;
|
||||
|
||||
cfgFile = pkgs.writeText "kibana.json" (builtins.toJSON (
|
||||
atLeast54 = versionAtLeast (builtins.parseDrvName cfg.package.name).version "5.4";
|
||||
|
||||
cfgFile = if atLeast54 then cfgFile5 else cfgFile4;
|
||||
|
||||
cfgFile4 = pkgs.writeText "kibana.json" (builtins.toJSON (
|
||||
(filterAttrsRecursive (n: v: v != null) ({
|
||||
host = cfg.listenAddress;
|
||||
port = cfg.port;
|
||||
@@ -36,6 +40,27 @@ let
|
||||
];
|
||||
} // cfg.extraConf)
|
||||
)));
|
||||
|
||||
cfgFile5 = pkgs.writeText "kibana.json" (builtins.toJSON (
|
||||
(filterAttrsRecursive (n: v: v != null) ({
|
||||
server.host = cfg.listenAddress;
|
||||
server.port = cfg.port;
|
||||
server.ssl.certificate = cfg.cert;
|
||||
server.ssl.key = cfg.key;
|
||||
|
||||
kibana.index = cfg.index;
|
||||
kibana.defaultAppId = cfg.defaultAppId;
|
||||
|
||||
elasticsearch.url = cfg.elasticsearch.url;
|
||||
elasticsearch.username = cfg.elasticsearch.username;
|
||||
elasticsearch.password = cfg.elasticsearch.password;
|
||||
|
||||
elasticsearch.ssl.certificate = cfg.elasticsearch.cert;
|
||||
elasticsearch.ssl.key = cfg.elasticsearch.key;
|
||||
elasticsearch.ssl.certificateAuthorities = cfg.elasticsearch.certificateAuthorities;
|
||||
} // cfg.extraConf)
|
||||
)));
|
||||
|
||||
in {
|
||||
options.services.kibana = {
|
||||
enable = mkEnableOption "enable kibana service";
|
||||
@@ -96,11 +121,29 @@ in {
|
||||
};
|
||||
|
||||
ca = mkOption {
|
||||
description = "CA file to auth against elasticsearch.";
|
||||
description = ''
|
||||
CA file to auth against elasticsearch.
|
||||
|
||||
It's recommended to use the <option>certificateAuthorities</option> option
|
||||
when using kibana-5.4 or newer.
|
||||
'';
|
||||
default = null;
|
||||
type = types.nullOr types.path;
|
||||
};
|
||||
|
||||
certificateAuthorities = mkOption {
|
||||
description = ''
|
||||
CA files to auth against elasticsearch.
|
||||
|
||||
Please use the <option>ca</option> option when using kibana < 5.4
|
||||
because those old versions don't support setting multiple CA's.
|
||||
|
||||
This defaults to the singleton list [ca] when the <option>ca</option> option is defined.
|
||||
'';
|
||||
default = if isNull cfg.elasticsearch.ca then [] else [ca];
|
||||
type = types.listOf types.path;
|
||||
};
|
||||
|
||||
cert = mkOption {
|
||||
description = "Certificate file to auth against elasticsearch.";
|
||||
default = null;
|
||||
@@ -118,6 +161,7 @@ in {
|
||||
description = "Kibana package to use";
|
||||
default = pkgs.kibana;
|
||||
defaultText = "pkgs.kibana";
|
||||
example = "pkgs.kibana5";
|
||||
type = types.package;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user