|
|
|
@ -6,7 +6,7 @@ let |
|
|
|
|
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 { |
|
|
|
@ -118,6 +118,61 @@ 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 { |
|
|
|
@ -157,7 +212,28 @@ in { |
|
|
|
|
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 { |
|
|
|
|