diff --git a/nixos/roles/default.nix b/nixos/roles/default.nix index 1968de3..b536d28 100644 --- a/nixos/roles/default.nix +++ b/nixos/roles/default.nix @@ -3,6 +3,7 @@ imports = [ ./admins.nix ./nix_keys.nix + ./prometheusNodeExporter.nix (modulesPath + "/virtualisation/xen-domU.nix") ../modules/impermanence.nix ]; diff --git a/nixos/roles/prometheusNodeExporter.nix b/nixos/roles/prometheusNodeExporter.nix new file mode 100644 index 0000000..9587b2f --- /dev/null +++ b/nixos/roles/prometheusNodeExporter.nix @@ -0,0 +1,40 @@ +{config, ...}: +{ + imports = [ ]; + services.prometheus.exporters.node = { + enable = true; + port = 9100; + # Aligned with https://git.rwth-aachen.de/fsdmath/server/prometheus/-/blob/main/node_exporter/etc/default/prometheus-node-exporter + # It was compiled along the following steps: + # 1. Does the current Debian release supports the collector? + # 2. Is the collector depracated in the latest release? + # 3. Could you probably use the collected metrics for monitoring or are they useless because they make no sense in our context + # (e.g. power adapter inside a VM, use fibre port connection)? + disabledCollectors = [ + "arp" + "bcache" + "btrfs" + "dmi" + "fibrechannel" + "infiniband" + "nvme" + "powersupplyclass" + "rapl" + "selinux" + "tapestats" + "thermal_zone" + "udp_queues" + "xfs" + "zfs" + ]; + enabledCollectors = [ + "buddyinfo" + "ksmd" + "logind" + "mountstats" + "processes" + ]; + }; + networking.firewall.allowedTCPPorts = [ 9100 ]; + environment.persistence.${config.impermanence.name}.directories = [ "/var/lib/${config.services.prometheus.stateDir}" ]; +}