From 4559269329dd1fd4303a750f03140750b3bf13f4 Mon Sep 17 00:00:00 2001 From: fuckwit Date: Sun, 9 Mar 2025 16:40:25 +0100 Subject: [PATCH] add monitoring for celestia --- flake.lock | 205 ++++--------------------------- home/framework/default.nix | 1 + nixos/celestia/configuration.nix | 37 ++++++ nixos/celestia/secrets.yaml | 7 +- 4 files changed, 65 insertions(+), 185 deletions(-) diff --git a/flake.lock b/flake.lock index b2a3e41..cad3f78 100644 --- a/flake.lock +++ b/flake.lock @@ -53,28 +53,6 @@ "type": "github" } }, - "devshell": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1735644329, - "narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=", - "owner": "numtide", - "repo": "devshell", - "rev": "f7795ede5b02664b57035b3b757876703e2c3eac", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { @@ -108,20 +86,6 @@ } }, "flake-compat_3": { - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_4": { "flake": false, "locked": { "lastModified": 1696426674, @@ -163,11 +127,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -185,11 +149,11 @@ ] }, "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -255,34 +219,6 @@ "type": "github" } }, - "git-hooks": { - "inputs": { - "flake-compat": [ - "nixvim", - "nixvim", - "flake-compat" - ], - "gitignore": "gitignore_2", - "nixpkgs": [ - "nixvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1735882644, - "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -305,29 +241,6 @@ "type": "github" } }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixvim", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -348,28 +261,6 @@ "type": "github" } }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736508663, - "narHash": "sha256-ZOaGwa+WnB7Zn3YXimqjmIugAnHePdXCmNu+AHkq808=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "2532b500c3ed2b8940e831039dcec5a5ea093afc", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, "ixx": { "inputs": { "flake-utils": [ @@ -425,28 +316,6 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736370755, - "narHash": "sha256-iWcjToBpx4PUd74uqvIGAfqqVfyrvRLRauC/SxEKIF0=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "57733bd1dc81900e13438e5b4439239f1b29db0e", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1740560979, @@ -480,14 +349,14 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1735774519, - "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=", + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" } }, "nixpkgs-stable": { @@ -515,11 +384,11 @@ "nixvim": "nixvim_2" }, "locked": { - "lastModified": 1736708502, - "narHash": "sha256-QgFG5yf9MAgPox2s8XINt9nQPISyMKT7hxGlm6zdWMM=", + "lastModified": 1740698362, + "narHash": "sha256-wd1vsR3WycZ7+0idDNGRYmT4hsldiAOBGiiRZyrK3vY=", "ref": "refs/heads/master", - "rev": "a11cb5e30e74cdb654db3e4df4c245931859490b", - "revCount": 14, + "rev": "86ba5d094f9b89eba7ed07080a19bf2eab0e70c5", + "revCount": 15, "type": "git", "url": "https://git.fuckwit.dev/fuckwit/nixvim" }, @@ -530,25 +399,19 @@ }, "nixvim_2": { "inputs": { - "devshell": "devshell", - "flake-compat": "flake-compat_3", "flake-parts": "flake-parts_3", - "git-hooks": "git-hooks", - "home-manager": "home-manager_2", - "nix-darwin": "nix-darwin", "nixpkgs": [ "nixvim", "nixpkgs" ], - "nuschtosSearch": "nuschtosSearch", - "treefmt-nix": "treefmt-nix" + "nuschtosSearch": "nuschtosSearch" }, "locked": { - "lastModified": 1736707115, - "narHash": "sha256-3LEJqX4v9BU/sJPy7G7x3D1kW1/Yz+SgByWS/uUJUbg=", + "lastModified": 1740520037, + "narHash": "sha256-TpZMYjOre+6GhKDVHFwoW2iBWqpNQppQTuqIAo+OBV8=", "owner": "nix-community", "repo": "nixvim", - "rev": "4527abba5870b5650604eece6020a5d0361fe4cf", + "rev": "6f8d8f7aee84f377f52c8bb58385015f9168a666", "type": "github" }, "original": { @@ -563,7 +426,7 @@ "nixpkgs": [ "nixpkgs" ], - "treefmt-nix": "treefmt-nix_2" + "treefmt-nix": "treefmt-nix" }, "locked": { "lastModified": 1740690013, @@ -590,11 +453,11 @@ ] }, "locked": { - "lastModified": 1735854821, - "narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=", + "lastModified": 1738508923, + "narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=", "owner": "NuschtOS", "repo": "search", - "rev": "836908e3bddd837ae0f13e215dd48767aee355f0", + "rev": "86e2038290859006e05ca7201425ea5b5de4aecb", "type": "github" }, "original": { @@ -667,7 +530,7 @@ "simple-nixos-mailserver": { "inputs": { "blobs": "blobs", - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "nixpkgs": [ "nixpkgs" ], @@ -754,28 +617,6 @@ } }, "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1736154270, - "narHash": "sha256-p2r8xhQZ3TYIEKBoiEhllKWQqWNJNoT9v64Vmg4q8Zw=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "13c913f5deb3a5c08bb810efd89dc8cb24dd968b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_2": { "inputs": { "nixpkgs": [ "nur", diff --git a/home/framework/default.nix b/home/framework/default.nix index e52ece5..aba1bcc 100644 --- a/home/framework/default.nix +++ b/home/framework/default.nix @@ -15,6 +15,7 @@ vesktop telegram-desktop nixvim + warp-terminal ]; sessionPath = ["~/.local/bin"]; sessionVariables = { diff --git a/nixos/celestia/configuration.nix b/nixos/celestia/configuration.nix index 1c5fa18..b864e67 100644 --- a/nixos/celestia/configuration.nix +++ b/nixos/celestia/configuration.nix @@ -39,6 +39,7 @@ in { sops.secrets."restic_documents_repository_password" = {}; sops.secrets."restic_images_repository_password" = {}; sops.secrets."protonvpn_wg_private_key" = {}; + sops.secrets."telegraf_api_token" = {}; imports = [ ./hardware-configuration.nix @@ -229,6 +230,42 @@ in { }; }; + prometheus.exporters = { + zfs.enable = true; + smartctl = { + enable = true; + devices = [ + "/dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ATNSAF213446M" + ] ++ disks; + }; + systemd.enable = true; + }; + + telegraf = { + enable = true; + environmentFiles = [ config.sops.secrets."telegraf_api_token".path ]; + extraConfig = { + inputs = { + prometheus = { + urls = [ + "http://127.0.0.1:${builtins.toString config.services.prometheus.exporters.zfs.port}" + "http://127.0.0.1:${builtins.toString config.services.prometheus.exporters.smartctl.port}" + "http://127.0.0.1:${builtins.toString config.services.prometheus.exporters.systemd.port}" + ]; + }; + }; + outputs = { + influxdb_v2 = { + urls = ["https://influx.fuckwit.dev"]; + token = "\${TELEGRAF_API_TOKEN}"; + organization = "fuckwit.dev"; + bucket = "world"; + timeout = "10s"; + }; + }; + }; + }; + nginx = { enable = true; clientMaxBodySize = "500m"; diff --git a/nixos/celestia/secrets.yaml b/nixos/celestia/secrets.yaml index 988a0ea..872c194 100644 --- a/nixos/celestia/secrets.yaml +++ b/nixos/celestia/secrets.yaml @@ -6,6 +6,7 @@ restic_ssh_key: ENC[AES256_GCM,data:NK7WXhnnueZ6kVZJnjShZ/QaNXINrJ6+youN3EPBmNji restic_documents_repository_password: ENC[AES256_GCM,data:rcQ5PsvJW2i3e2v1FqbqCOoqiblqFDsqRifzY6YxIKZTNSNrRPgqUduqei/0aSGJTNG+zYS4YRCooCZ/E7mYFg==,iv:IO6OGY+Dfai0Hl/NWT7bqqhTkfhXlUqqnJyQjm87fSw=,tag:K3D112tm+kC5OpEF2t+oZQ==,type:str] restic_images_repository_password: ENC[AES256_GCM,data:yNWUqZ9ddkfD15mO7NocUYwqNWPaTHXfLkMNq7yy5xgSG4I3G01mFTt5qCPbZ0n+Y6DFlhDQBLAC5SwOvVNggA==,iv:LqA7TG9TS7eyHZ/xqF+L1w5imPdogQGH0DyokaQj4Bc=,tag:1OLRp7VO8Lfy1nQcUr3OWA==,type:str] protonvpn_wg_private_key: ENC[AES256_GCM,data:vLf0t5wz8FvQ1hTYTWJNkeXJLFXgaSpWEpKTrhoa9nScQO0bt5Q9mZqkupOvQrrnaao2QE77qLBLzalODY5vKT/6,iv:y2iipZwQZo2iLpZ6CjZsRM5/bIL6UxuPa3e57+rs59k=,tag:rz+GN1/1lDJl1xxbGYjl+A==,type:str] +telegraf_api_token: ENC[AES256_GCM,data:pCNHkdKlBhYW+IJuvdLgAsk2oXVIowvCVwy2uvJIJQ8DdtRgYgR4JIMcz4l8u+yTPyRPGSqdXnkojNeB9O7T8FM25lklrcRfeKL3ofSY8RJ1FiovcEGYjESi/A7sgrETFMD2QIO0kmZ+3qM=,iv:PKm2hp6+aInR2+AglHImjxIPBFU0FRjpMklranVgjiM=,tag:T/88jJJjkgYxisKZtZAyQg==,type:str] sops: kms: [] gcp_kms: [] @@ -21,8 +22,8 @@ sops: K0RaVVNSczZBcDNtaXhGem5iQnlVTDAK+XogkPQD2xYQ7sW8DwAXaaLA/ftw6vZM wsNs0uun9dgGjZIXcU6AIsrJeUiWBl5zgc6CCd/ad/3QxpmKj1p9Mg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-02-12T20:41:17Z" - mac: ENC[AES256_GCM,data:9HLQtNfOkSSXCXe5KSpluYc1S5CIgQDer0hojBzY0wxUBkE5IzGjCjWXh9oo8OYJs9Dr/pkPBYm1Id7kqeOUbdEU7uZ0sjozrO18F9pSAYM/BbsrUcFrQ6/J+MTs1A4OQrvJFMd1JPHggve+faJv3iGblJQ2spLt4fiHwByKAbk=,iv:Y1HsdA7KFvd4SsNuinyL6DAMPbUOPOAiXMLB9ReZLG0=,tag:XRWQu32CG5JAaWrxRao17g==,type:str] + lastmodified: "2025-03-09T15:39:35Z" + mac: ENC[AES256_GCM,data:/dPDrtI7/2HfyoABBSa7ur/+9fT7lMzQ6UIse1k4G+sTnxYLWO/j3wi/Bi7fJxGUHbo+7sS+oIYKZVlejLdCarGuNrt78ml6HzCbLfQpZ0oxWm1vTjc9Fbx4G1dUtUt0aAxSbw78QgUjEDwo9RBaTZW0Csz2qhV0xwSazAqRpmI=,iv:gGcnEiJ40Wy5HPBB3aAlt2J4oNth8T+9RNClRLUad8Y=,tag:N0cPLOcbW+xoi85zoMW23A==,type:str] pgp: - created_at: "2024-01-25T08:00:56Z" enc: |- @@ -37,4 +38,4 @@ sops: -----END PGP MESSAGE----- fp: 5FA64909521A5C85992F26E0F819AEFF941BB849 unencrypted_suffix: _unencrypted - version: 3.9.2 + version: 3.9.4