diff --git a/etc/alloy/alloy.conf b/etc/alloy/alloy.conf new file mode 100644 index 0000000..c741455 --- /dev/null +++ b/etc/alloy/alloy.conf @@ -0,0 +1,65 @@ +local.file_match "var_logs" { + path_targets = [ + { "__address__" = "localhost", "__path__" = "/var/log/messages", "job" = "var-logs", "instance" = constants.hostname }, + { "__address__" = "localhost", "__path__" = "/var/log/*.log", "job" = "var-logs", "instance" = constants.hostname }, + ] +} + +loki.relabel "var_logs_processing" { + rule { + source_labels = ["__path__"] + target_label = "filename" + regex = ".*/(?P[^/]+)\\$" + replacement = "$${name}" + } + + + forward_to = [loki.write.local_loki.receiver] +} + +loki.source.file "var_logs_source" { + targets = local.file_match.var_logs.targets + forward_to = [loki.relabel.var_logs_processing.receiver] +} + +loki.relabel "journald_processing" { + rule { + target_label = "hostname" + replacement = constants.hostname + } + + rule { + source_labels = ["__journal__systemd_unit"] + target_label = "systemd_unit" + } + + rule { + source_labels = ["__journal__transport"] + target_label = "transport" + } + + rule { + source_labels = ["__journal__priority_keyword"] + target_label = "level" + } + + forward_to = [loki.write.local_loki.receiver] +} + +loki.source.journal "debian_journald" { + path = "/var/log/journal" + max_age = "1h" + labels = { job = "journald", instance = constants.hostname } + forward_to = [loki.relabel.journald_processing.receiver] +} + +loki.write "local_loki" { + endpoint { + url = "http://grafana.narwain.home:3100/loki/api/v1/push" + } + + external_labels = { + cluster = "home-cluster", + env = "prod", + } +}