diff --git a/common/metrics-exporters.nix b/common/metrics-exporters.nix new file mode 100644 index 0000000..8c4e199 --- /dev/null +++ b/common/metrics-exporters.nix @@ -0,0 +1,56 @@ +{ config, pkgs, values, ... }: + +{ + services.prometheus.exporters.node = { + enable = true; + port = 9100; + enabledCollectors = [ "systemd" ]; + }; + + systemd.services.prometheus-node-exporter.serviceConfig = { + # TODO: Define allowed IPs + # IPAddressDeny = "any"; + # IPAddressAllow = [ + # values.chapel.ipv4 + # values.chapel.ipv6 + # ]; + }; + + services.promtail = { + enable = true; + configuration = { + server = { + http_listen_port = 28183; + grpc_listen_port = 0; + }; + clients = [ + { + url = "http://chapel.home.feal.no:3100/loki/api/v1/push"; + } + ]; + scrape_configs = [ + { + job_name = "systemd-journal"; + journal = { + max_age = "12h"; + labels = { + job = "systemd-journal"; + host = config.networking.hostName; + }; + }; + relabel_configs = [ + { + source_labels = [ "__journal__systemd_unit" ]; + target_label = "unit"; + } + { + source_labels = [ "__journal_priority_keyword" ]; + target_label = "level"; + } + ]; + } + ]; + }; + }; + +} diff --git a/hosts/chapel/configuration.nix b/hosts/chapel/configuration.nix index 17f04b0..c085532 100644 --- a/hosts/chapel/configuration.nix +++ b/hosts/chapel/configuration.nix @@ -4,7 +4,10 @@ imports = [ ../../base.nix + ../../common/metrics-exporters.nix + ./hardware-configuration.nix + ./services/nginx.nix ./services/metrics ./services/cloudflared.nix