summary refs log tree commit diff
path: root/nixos/modules
diff options
context:
space:
mode:
authorPascal Bach <pascal.bach@nextrem.ch>2021-11-03 08:25:13 +0100
committerGitHub <noreply@github.com>2021-11-03 08:25:13 +0100
commitb01c019afd4f07d4451a90abd8b5997a0a06dee2 (patch)
tree54d9785907fb9b36a59a874e5b29878279c33110 /nixos/modules
parentaf97b16bb4bb04e3724fbded224eaaeca94abef8 (diff)
parent36c179b2086e34a3af86e46624a2d89de545d6b5 (diff)
downloadnixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar.gz
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar.bz2
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar.lz
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar.xz
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.tar.zst
nixpkgs-b01c019afd4f07d4451a90abd8b5997a0a06dee2.zip
Merge pull request #136191 from LeSuisse/nixos-unifi-poller-loki
nixos/unifi-poller: add support of Loki
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/services/monitoring/unifi-poller.nix80
1 files changed, 78 insertions, 2 deletions
diff --git a/nixos/modules/services/monitoring/unifi-poller.nix b/nixos/modules/services/monitoring/unifi-poller.nix
index 81a7b408bcc..cca4a0e7207 100644
--- a/nixos/modules/services/monitoring/unifi-poller.nix
+++ b/nixos/modules/services/monitoring/unifi-poller.nix
@@ -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 {