diff options
author | Minijackson <minijackson@riseup.net> | 2021-05-30 19:08:51 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2021-05-30 19:08:51 +0200 |
commit | 0ec97d1e7dc153634cabb0ba2cf7ab9a2b0e6df1 (patch) | |
tree | 9ec2e85703f08f4b4e4a31629eab03e17d0cff12 | |
parent | cc6d84beb848060535f006854927e7ea8126a98a (diff) | |
download | nixos-config-reborn-0ec97d1e7dc153634cabb0ba2cf7ab9a2b0e6df1.tar.gz nixos-config-reborn-0ec97d1e7dc153634cabb0ba2cf7ab9a2b0e6df1.zip |
monitoringServer: init
-rw-r--r-- | flake.nix | 14 | ||||
-rw-r--r-- | usecases/server/monitoring-server.nix | 55 |
2 files changed, 66 insertions, 3 deletions
@@ -79,6 +79,7 @@ | |||
79 | gotifyServer = (import ./usecases/server/gotify-server.nix inputs); | 79 | gotifyServer = (import ./usecases/server/gotify-server.nix inputs); |
80 | hydraServer = (import ./usecases/server/hydra-server.nix inputs); | 80 | hydraServer = (import ./usecases/server/hydra-server.nix inputs); |
81 | jellyfin = (import ./usecases/server/jellyfin.nix inputs); | 81 | jellyfin = (import ./usecases/server/jellyfin.nix inputs); |
82 | monitoringServer = (import ./usecases/server/monitoring-server.nix inputs); | ||
82 | monitoringTarget = (import ./usecases/server/monitoring-target.nix inputs); | 83 | monitoringTarget = (import ./usecases/server/monitoring-target.nix inputs); |
83 | radicale = (import ./usecases/server/radicale.nix inputs); | 84 | radicale = (import ./usecases/server/radicale.nix inputs); |
84 | smartd = (import ./usecases/server/smartd.nix inputs); | 85 | smartd = (import ./usecases/server/smartd.nix inputs); |
@@ -177,10 +178,17 @@ | |||
177 | self.nixosModules.usecases.server.gotifyServer | 178 | self.nixosModules.usecases.server.gotifyServer |
178 | self.nixosModules.usecases.server.hydraServer | 179 | self.nixosModules.usecases.server.hydraServer |
179 | self.nixosModules.usecases.server.jellyfin | 180 | self.nixosModules.usecases.server.jellyfin |
181 | self.nixosModules.usecases.server.monitoringServer | ||
180 | self.nixosModules.usecases.server.radicale | 182 | self.nixosModules.usecases.server.radicale |
181 | self.nixosModules.usecases.server.zfs | 183 | self.nixosModules.usecases.server.zfs |
182 | 184 | ||
183 | { | 185 | ({ modulesPath, ... }: { |
186 | imports = [ | ||
187 | (modulesPath + "/virtualisation/qemu-vm.nix") | ||
188 | ]; | ||
189 | |||
190 | virtualisation.memorySize = 1024; | ||
191 | |||
184 | # Needed for ZFS | 192 | # Needed for ZFS |
185 | networking.hostId = "4e98920d"; | 193 | networking.hostId = "4e98920d"; |
186 | 194 | ||
@@ -192,8 +200,8 @@ | |||
192 | "testServer:0d5jJjOxIoe6sTr2YKWkQxsM3ZcW+9GAk52yYNVxfYBUxS2nUfzfQk5Jo0OwHnT95bTLXCVNQETGV4m6KHsVCA=="; | 200 | "testServer:0d5jJjOxIoe6sTr2YKWkQxsM3ZcW+9GAk52yYNVxfYBUxS2nUfzfQk5Jo0OwHnT95bTLXCVNQETGV4m6KHsVCA=="; |
193 | }; | 201 | }; |
194 | 202 | ||
195 | services.jellyfin.allowedPaths = []; | 203 | services.jellyfin.allowedPaths = [ ]; |
196 | } | 204 | }) |
197 | ]; | 205 | ]; |
198 | }; | 206 | }; |
199 | testScript = '' | 207 | testScript = '' |
diff --git a/usecases/server/monitoring-server.nix b/usecases/server/monitoring-server.nix new file mode 100644 index 0000000..823f4f9 --- /dev/null +++ b/usecases/server/monitoring-server.nix | |||
@@ -0,0 +1,55 @@ | |||
1 | inputs: | ||
2 | |||
3 | { config, ... }: | ||
4 | |||
5 | { | ||
6 | imports = [ | ||
7 | (import ./monitoring-target.nix inputs) | ||
8 | ]; | ||
9 | |||
10 | services.prometheus = { | ||
11 | enable = true; | ||
12 | |||
13 | listenAddress = "127.0.0.1"; | ||
14 | |||
15 | # TODO: for NixOS 21.05 | ||
16 | extraFlags = [ "--storage.tsdb.retention=15w" ]; | ||
17 | #retentionTime = "15w"; | ||
18 | |||
19 | scrapeConfigs = [ | ||
20 | { | ||
21 | job_name = "prometheus"; | ||
22 | static_configs = [ | ||
23 | { targets = [ "localhost:${toString config.services.prometheus.port}" ]; } | ||
24 | ]; | ||
25 | } | ||
26 | |||
27 | { | ||
28 | job_name = "node_exporter"; | ||
29 | static_configs = [ | ||
30 | { targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ]; } | ||
31 | ]; | ||
32 | } | ||
33 | |||
34 | { | ||
35 | job_name = "grafana"; | ||
36 | static_configs = [ | ||
37 | { targets = [ "localhost:${toString config.services.grafana.port}" ]; } | ||
38 | ]; | ||
39 | } | ||
40 | ]; | ||
41 | }; | ||
42 | |||
43 | services.grafana = { | ||
44 | enable = true; | ||
45 | |||
46 | addr = config.topology.mainVpn.currentNodeIP; | ||
47 | port = 3001; | ||
48 | |||
49 | analytics.reporting.enable = false; | ||
50 | }; | ||
51 | |||
52 | networking.firewall.interfaces.${config.topology.mainVpn.interfaceName}.allowedTCPPorts = [ | ||
53 | config.services.grafana.port | ||
54 | ]; | ||
55 | } | ||