From 10c7e3dcea8c571fa1b7089572a5cc84d50bc73c Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Sat, 30 Apr 2022 22:20:05 +0200 Subject: [PATCH] Setup basic telegraf reporting --- machines/kharbranth/default.nix | 2 + machines/kholinar/default.nix | 82 ++++++++++---------- machines/lasting-integrity/default.nix | 1 + machines/urithiru/default.nix | 2 + modules/base/default.nix | 1 + modules/base/telegraf/default.nix | 45 +++++++++++ secrets.nix | 1 + secrets/passwords/services/telegraf-env.age | Bin 0 -> 961 bytes 8 files changed, 93 insertions(+), 41 deletions(-) create mode 100644 modules/base/telegraf/default.nix create mode 100644 secrets/passwords/services/telegraf-env.age 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 0000000000000000000000000000000000000000..41d74d162536fcf0d11d3dd4cf8ee7fc8ffaa51d GIT binary patch literal 961 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSH&2@{)cT~{!Gj-3* zjR-b0w=@bU2zL+9$Z-rQ_Ds$Ui7H9ccMb`!@+nO5&G#)S_vJDS&kRWmD-Q5aNzQln zPjod*%8Rn}uLz6qaSQS(D2ymCHH&odE-f!N&PKN_F*L=}FI~Yu&p#@^%BWo5IUu4a zG{Utiy~?Z7JHRz7C#cHbx5CFUE#1|%$k!(~+l0#{Gb6+$pro)e*Ui+)ywo>6%OuLO zJfxy3(p5h@FFo0;ytL9U(mmV2-2mOT3~xubvOtBB+{D6EXOoPKAotSra)YF-lI)c1 zva*1D%aGFWbPJCli^N3j?BGZXmvpYMK!4w|vK%A*u=0@nz?>+PTtm~c#P9;|{3ut) zOrw1FqTG;x!iZq!%5-$wECbS9odOk1Jo3#eoYIRNt4wkd4TI8r%-t=Fi#;TG{3`%y+iwJj1PV$b*a|{c}3-$?dOG+}e@J=tx z4)aSfaWdgD_Rcr-E6z>yEJzDYarG~;aEvH&4bm?tE-ViWHg)!K_Nyoj56(A83Bd4M zWnzj+SfE0-v%90eQHWubdqBRWS3pUXVMLZ$iBYz{xhvRjs*bwpMX8C! zsS0()_RgwtS_HO8N>RfO2&d1A+1+M`BRr5@o literal 0 HcmV?d00001