From 70b61a74ae8e97d66e2d3bee90351c20ad07d1de Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Tue, 29 Apr 2025 12:21:20 +0200 Subject: [PATCH] New `alloy` module --- modules/alloy/default.nix | 53 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 modules/alloy/default.nix diff --git a/modules/alloy/default.nix b/modules/alloy/default.nix new file mode 100644 index 0000000..728ca28 --- /dev/null +++ b/modules/alloy/default.nix @@ -0,0 +1,53 @@ +{ config, ... }: +{ + services.alloy = { + enable = true; + }; + environment.etc."alloy/config.alloy".text = '' + local.file_match "local_files" { + path_targets = [{ + __path__ = "/var/log/*.log", + }] + sync_period = "5s" + } + + loki.source.journal "systemd" { + max_age = "24h" + forward_to = [loki.write.default.receiver] + } + + loki.source.journal "kernel" { + max_age = "24h" + forward_to = [loki.write.default.receiver] + } + + loki.relabel "nixfleet_journal" { + forward_to = [] + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "systemd_unit" + } + rule { + source_labels = ["__journal_syslog_identifier"] + target_label = "syslog_identifier" + } + } + + loki.source.journal "nixfleet_journal" { + forward_to = [loki.write.default.receiver] + relabel_rules = loki.relabel.nixfleet_journal.rules + format_as_json = true + } + + loki.write "default" { + endpoint { + url = "http://sisko.wg.aciceri.dev:${ + builtins.toString config.services.loki.configuration.server.http_listen_port or 3100 + }/loki/api/v1/push" + } + external_labels = { + host = "${config.networking.hostName}", + } + } + ''; +}