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", } }