Merge pull request #136191 from LeSuisse/nixos-unifi-poller-loki

nixos/unifi-poller: add support of Loki

Changed files
+78 -2
nixos
modules
services
monitoring
+78 -2
nixos/modules/services/monitoring/unifi-poller.nix
···
cfg = config.services.unifi-poller;
configFile = pkgs.writeText "unifi-poller.json" (generators.toJSON {} {
-
inherit (cfg) poller influxdb prometheus unifi;
+
inherit (cfg) poller influxdb loki prometheus unifi;
});
in {
···
};
};
+
loki = {
+
url = mkOption {
+
type = types.str;
+
default = "";
+
description = ''
+
URL of the Loki host.
+
'';
+
};
+
user = mkOption {
+
type = types.str;
+
default = "";
+
description = ''
+
Username for Loki.
+
'';
+
};
+
pass = mkOption {
+
type = types.path;
+
default = pkgs.writeText "unifi-poller-loki-default.password" "";
+
defaultText = "unifi-poller-influxdb-default.password";
+
description = ''
+
Path of a file containing the password for Loki.
+
This file needs to be readable by the unifi-poller user.
+
'';
+
apply = v: "file://${v}";
+
};
+
verify_ssl = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Verify Loki's certificate.
+
'';
+
};
+
tenant_id = mkOption {
+
type = types.str;
+
default = "";
+
description = ''
+
Tenant ID to use in Loki.
+
'';
+
};
+
interval = mkOption {
+
type = types.str;
+
default = "2m";
+
description = ''
+
How often the events are polled and pushed to Loki.
+
'';
+
};
+
timeout = mkOption {
+
type = types.str;
+
default = "10s";
+
description = ''
+
Should be increased in case of timeout errors.
+
'';
+
};
+
};
+
unifi = let
controllerOptions = {
user = mkOption {
···
type = types.bool;
default = false;
description = ''
-
Collect and save data from the intrusion detection system to influxdb.
+
Collect and save data from the intrusion detection system to influxdb and Loki.
+
'';
+
};
+
save_events = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Collect and save data from UniFi events to influxdb and Loki.
+
'';
+
};
+
save_alarms = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Collect and save data from UniFi alarms to influxdb and Loki.
+
'';
+
};
+
save_anomalies = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Collect and save data from UniFi anomalies to influxdb and Loki.
'';
};
save_dpi = mkOption {