diff --git a/nixos/roles/monitoring-server/grafana.nix b/nixos/roles/monitoring-server/grafana.nix new file mode 100644 index 00000000..6833a8d9 --- /dev/null +++ b/nixos/roles/monitoring-server/grafana.nix @@ -0,0 +1,12 @@ +{ + config, + pkgs, + ... +}: { + services.grafana = { + enable = true; + domain = "mon.kittywit.ch"; + port = 2342; + addr = "127.0.0.1"; + }; +} diff --git a/nixos/roles/monitoring-server/nginx.nix b/nixos/roles/monitoring-server/nginx.nix new file mode 100644 index 00000000..db27270b --- /dev/null +++ b/nixos/roles/monitoring-server/nginx.nix @@ -0,0 +1,8 @@ +{config, ...}: { + services.nginx.virtualHosts.${config.services.grafana.domain} = { + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.services.grafana.port}"; + proxyWebsockets = true; + }; + }; +} diff --git a/nixos/roles/monitoring-server/prometheus.nix b/nixos/roles/monitoring-server/prometheus.nix new file mode 100644 index 00000000..6bfce084 --- /dev/null +++ b/nixos/roles/monitoring-server/prometheus.nix @@ -0,0 +1,23 @@ +{config, ...}: { + services.prometheus = { + enable = true; + port = 9001; + exporters = { + node = { + enable = true; + enabledCollectors = ["systemd"]; + port = 9002; + }; + }; + scrapeConfigs = [ + { + job_name = "${config.networking.hostName}"; + static_configs = [ + { + targets = ["127.0.0.1:${toString config.services.prometheus.exporters.node.port}"]; + } + ]; + } + ]; + }; +} diff --git a/systems/yukari.nix b/systems/yukari.nix index 11dc71a8..1923c91c 100644 --- a/systems/yukari.nix +++ b/systems/yukari.nix @@ -15,6 +15,7 @@ _: let postgres-server matrix-homeserver vaultwarden-server + monitoring-server irc-client ]); diff --git a/tf/kw-mon.tf b/tf/kw-mon.tf new file mode 100644 index 00000000..50bf588e --- /dev/null +++ b/tf/kw-mon.tf @@ -0,0 +1,8 @@ +resource "cloudflare_record" "mon" { + name = "mon" + proxied = false + ttl = 3600 + type = "CNAME" + value = "yukari.gensokyo.zone" + zone_id = local.zone_ids.kittywitch +} \ No newline at end of file