1
0

Feed prometheus from hostconfigs

This commit is contained in:
clerie 2021-02-24 00:16:30 +01:00
parent 7682e01479
commit 79dc192662

View File

@ -1,6 +1,29 @@
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
{ with lib;
let
hosts = (import ../../lib/hosts.nix { inherit pkgs; }).hosts;
monitoringHosts = filterAttrs (name: host:
attrByPath ["clerie" "monitoring" "enable"] false host.config)
hosts;
monitoringHostsNames = mapAttrs' (name: host:
nameValuePair "fd00:327:327:327::${host.config.clerie.monitoring.id}" ["${host.config.networking.hostName}.mon.clerie.de"])
monitoringHosts;
monitoringPeers = mapAttrsToList (name: host: {
allowedIPs = [ "fd00:327:327:327::${host.config.clerie.monitoring.id}/128" ];
publicKey = host.config.clerie.monitoring.pubkey;
})
monitoringHosts;
monitoringTargets = mapAttrsToList (name: host:
"${host.config.networking.hostName}.mon.clerie.de:9100")
monitoringHosts;
in {
imports = imports =
[ [
./hardware-configuration.nix ./hardware-configuration.nix
@ -23,21 +46,15 @@
networking.hosts = { networking.hosts = {
"fd00:327:327:327::1" = [ "monitoring-3.mon.clerie.de" ]; "fd00:327:327:327::1" = [ "monitoring-3.mon.clerie.de" ];
"fd00:327:327:327::102" = [ "porter.mon.clerie.de" ]; }
}; // monitoringHostsNames;
networking.wireguard.enable = true; networking.wireguard.enable = true;
networking.wireguard.interfaces = { networking.wireguard.interfaces = {
wg-monitoring = { wg-monitoring = {
ips = [ "fd00:327:327:327::1/64" ]; ips = [ "fd00:327:327:327::1/64" ];
listenPort = 54523; listenPort = 54523;
peers = [ peers = monitoringPeers;
{
# porter
allowedIPs = [ "fd00:327:327:327::102/128" ];
publicKey = "+mJN+ustPo2ehP0wqajYs3nTdJ0SPuIDyiZQSHFIK3o=";
}
];
privateKeyFile = "/var/src/secrets/wireguard/wg-monitoring"; privateKeyFile = "/var/src/secrets/wireguard/wg-monitoring";
}; };
}; };
@ -69,8 +86,8 @@
{ {
targets = [ targets = [
"monitoring-3.mon.clerie.de:9100" "monitoring-3.mon.clerie.de:9100"
"porter.mon.clerie.de:9100" ]
]; ++ monitoringTargets;
} }
]; ];
} }