Add module to configure monitoring clients
This commit is contained in:
parent
9a7f0a7700
commit
16354f076b
51
modules/monitoring/default.nix
Normal file
51
modules/monitoring/default.nix
Normal file
@ -0,0 +1,51 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.clerie.monitoring;
|
||||
|
||||
monitoring-network-base = "fd00:327:327:327::";
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
clerie.monitoring = {
|
||||
enable = mkEnableOption "clerie's Monitoring";
|
||||
id = mkOption {
|
||||
type = types.str;
|
||||
description = "ID of the Monitoring Interface (it is actually a part of an ip address)";
|
||||
};
|
||||
pubkey = mkOption {
|
||||
type = types.str;
|
||||
description = "Public Key of the monitoring wireguard interface of this host";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
networking.wireguard.enable = true;
|
||||
networking.wireguard.interfaces = {
|
||||
wg-monitoring = {
|
||||
ips = [ "${monitoring-network-base}${cfg.id}/64" ];
|
||||
peers = [
|
||||
{
|
||||
endpoint = "[2001:638:904:ffca::7]:54523";
|
||||
persistentKeepalive = 25;
|
||||
allowedIPs = [ "${monitoring-network-base}/64" ];
|
||||
publicKey = "eyhJKV41E1F0gZHBNqyzUnj72xg5f3bdDduVtpPN4AY=";
|
||||
}
|
||||
];
|
||||
privateKeyFile = "/var/src/secrets/wireguard/wg-monitoring";
|
||||
};
|
||||
};
|
||||
|
||||
services.prometheus.exporters.node = {
|
||||
enable = true;
|
||||
#listenAddress = "${monitoring-network-base}${cfg.id}";
|
||||
openFirewall = true;
|
||||
firewallFilter = "-i wg-monitoring -p tcp -m tcp --dport 9100";
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user