diff --git a/machines/kharbranth/default.nix b/machines/kharbranth/default.nix index 2de935ee..551b44b8 100644 --- a/machines/kharbranth/default.nix +++ b/machines/kharbranth/default.nix @@ -46,4 +46,6 @@ }; work.enable = true; }; + + services.telegraf.extraConfig.inputs.disk.mount_points = [ "/" "/boot" ]; } diff --git a/machines/kholinar/default.nix b/machines/kholinar/default.nix index 8f568587..19e8b358 100644 --- a/machines/kholinar/default.nix +++ b/machines/kholinar/default.nix @@ -3,52 +3,52 @@ { imports = [ ./hardware.nix ]; - config = { - networking.hostId = "3cc1a4b2"; + networking.hostId = "3cc1a4b2"; - time.timeZone = "Europe/Brussels"; + time.timeZone = "Europe/Brussels"; - # Machine-specific module settings - chvp = { - stateVersion = "20.09"; - base = { - bluetooth.enable = true; - network.mobile = { - enable = true; - wireless-interface = "wlp0s20f3"; - wired-interfaces = { - "enp0s31f6" = { }; - }; - }; - zfs = { - encrypted = true; - backups = [ - { - path = "rpool/safe/data"; - remotePath = "zdata/recv/kholinar/safe/data"; - fast = true; - location = "lasting-integrity"; - } - ]; - rootDataset = "rpool/local/root"; - }; - }; - development = { + # Machine-specific module settings + chvp = { + stateVersion = "20.09"; + base = { + bluetooth.enable = true; + network.mobile = { enable = true; - android.enable = true; + wireless-interface = "wlp0s20f3"; + wired-interfaces = { + "enp0s31f6" = { }; + }; }; - games.enable = true; - graphical.enable = true; - programs = { - calibre.enable = false; - deluge.enable = true; - eid.enable = true; - element.enable = true; - hledger.enable = true; - obs.enable = true; + zfs = { + encrypted = true; + backups = [ + { + path = "rpool/safe/data"; + remotePath = "zdata/recv/kholinar/safe/data"; + fast = true; + location = "lasting-integrity"; + } + ]; + rootDataset = "rpool/local/root"; }; - # It's a pandemic. - work.enable = true; }; + development = { + enable = true; + android.enable = true; + }; + games.enable = true; + graphical.enable = true; + programs = { + calibre.enable = false; + deluge.enable = true; + eid.enable = true; + element.enable = true; + hledger.enable = true; + obs.enable = true; + }; + # It's a pandemic. + work.enable = true; }; + + services.telegraf.extraConfig.inputs.disk.mount_points = [ "/" "/boot" ]; } diff --git a/machines/lasting-integrity/default.nix b/machines/lasting-integrity/default.nix index c4fa6c68..6d9edc78 100644 --- a/machines/lasting-integrity/default.nix +++ b/machines/lasting-integrity/default.nix @@ -112,4 +112,5 @@ }; }; programs.msmtp.enable = false; + services.telegraf.extraConfig.inputs.disk.mount_points = [ "/" "/boot/ESP0" "/boot/ESP1" "/srv/data" ]; } diff --git a/machines/urithiru/default.nix b/machines/urithiru/default.nix index 6ed27f9e..2cefea52 100644 --- a/machines/urithiru/default.nix +++ b/machines/urithiru/default.nix @@ -55,4 +55,6 @@ }; }; }; + + services.telegraf.extraConfig.inputs.disk.mount_points = [ "/" "/boot/ESP0" "/boot/ESP1" "/srv/data" ]; } diff --git a/modules/base/default.nix b/modules/base/default.nix index 542cd83d..4453678d 100644 --- a/modules/base/default.nix +++ b/modules/base/default.nix @@ -10,6 +10,7 @@ ./smartd ./ssh ./sshd + ./telegraf ./tmux ./zfs ./zsh diff --git a/modules/base/telegraf/default.nix b/modules/base/telegraf/default.nix new file mode 100644 index 00000000..89f7adb9 --- /dev/null +++ b/modules/base/telegraf/default.nix @@ -0,0 +1,45 @@ +{ config, lib, pkgs, ... }: + +{ + services.telegraf = { + enable = true; + extraConfig = { + agent = { + interval = "10s"; + round_interval = true; + metric_batch_size = 1000; + metric_buffer_limit = 10000; + collection_jitter = "0s"; + flush_interval = "10s"; + flush_jitter = "0s"; + precision = "0s"; + omit_hostname = false; + }; + outputs.influxdb_v2 = { + urls = [ "https://stats.chvp.be:8086" ]; + token = "$TOKEN"; + organization = "default"; + bucket = "default"; + }; + inputs = { + cpu = { + percpu = true; + totalcpu = true; + collect_cpu_time = false; + report_active = false; + }; + diskio = { }; + kernel = { }; + mem = { }; + processes = { }; + swap = { }; + system = { }; + }; + }; + environmentFiles = [ config.age.secrets."passwords/services/telegraf-env".path ]; + }; + age.secrets."passwords/services/telegraf-env" = { + file = ../../../secrets/passwords/services/telegraf-env.age; + owner = "telegraf"; + }; +} diff --git a/secrets.nix b/secrets.nix index 01374b1e..29c203fc 100644 --- a/secrets.nix +++ b/secrets.nix @@ -57,6 +57,7 @@ in "secrets/passwords/services/grafana/smtp.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/passwords/services/grafana/admin-password.age".publicKeys = [ lasting-integrity ] ++ users; "secrets/passwords/services/grafana/secret-key.age".publicKeys = [ lasting-integrity ] ++ users; + "secrets/passwords/services/telegraf-env.age".publicKeys = hosts ++ users; "secrets/passwords/services/nextcloud-admin.age".publicKeys = [ lasting-integrity ] ++ users; diff --git a/secrets/passwords/services/telegraf-env.age b/secrets/passwords/services/telegraf-env.age new file mode 100644 index 00000000..41d74d16 Binary files /dev/null and b/secrets/passwords/services/telegraf-env.age differ