diff --git a/hosts/skydick/default.nix b/hosts/skydick/default.nix index d419557..7c2d9a8 100644 --- a/hosts/skydick/default.nix +++ b/hosts/skydick/default.nix @@ -355,6 +355,7 @@ influxUrl = "http://127.0.0.1:8086"; bucket = "skydick"; netInterfaces = [ "bond0" ]; + nodeExporter.enable = true; }; system.stateVersion = "25.11"; diff --git a/modules/monitoring.nix b/modules/monitoring.nix index ba61580..0a9f12f 100644 --- a/modules/monitoring.nix +++ b/modules/monitoring.nix @@ -76,6 +76,13 @@ type = lib.types.listOf lib.types.str; default = [ "*" ]; }; + nodeExporter = { + enable = lib.mkEnableOption "prometheus-node-exporter (scraped by skyw-gw)"; + port = lib.mkOption { + type = lib.types.port; + default = 9100; + }; + }; }; config = lib.mkIf cfg.enable { @@ -155,5 +162,21 @@ { command = "${pkgs.smartmontools}/bin/smartctl"; options = [ "NOPASSWD" ]; } ]; }]; + + services.prometheus.exporters.node = lib.mkIf cfg.nodeExporter.enable { + enable = true; + port = cfg.nodeExporter.port; + enabledCollectors = [ "systemd" "zfs" "processes" "logind" ]; + extraFlags = [ + "--collector.textfile.directory=/var/lib/node_exporter/textfile" + ]; + }; + + systemd.tmpfiles.rules = lib.mkIf cfg.nodeExporter.enable [ + "d /var/lib/node_exporter/textfile 0755 root root -" + ]; + + networking.firewall.allowedTCPPorts = lib.mkIf cfg.nodeExporter.enable + [ cfg.nodeExporter.port ]; }; }