diff --git a/.vscode/settings.json b/.vscode/settings.json index de0607f..327ddd3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,7 @@ "maillog", "missingok", "postrotate", - "sharedscripts" + "sharedscripts", + "syslogs" ] } \ No newline at end of file diff --git a/templates/config.alloy.erb b/templates/config.alloy.erb index d7e62e6..d510ef1 100644 --- a/templates/config.alloy.erb +++ b/templates/config.alloy.erb @@ -1,25 +1,33 @@ <% if @ay_manage_loki == true -%> -logging { - level = "info" - format = "logfmt" -} -loki.source.file "system_logs" { - targets = [ +// Define file discovery for your logs +local.file_match "system_logs" { + path_targets = [ <% @log_targets_array.each do |target| -%> {__path__ = "<%= target %>"}, <% end -%> ] - forward_to = [loki.write.loki.receiver] + sync_period = "5s" } -loki.process "enrich_server_logs" { - stage.static_labels { - values = { - hostname = sys.env("HOSTNAME"), - } - } - forward_to = [loki.write.loki.receiver] +// Scrape the logs from the matched files +loki.source.file "system_logs" { + targets = local.file_match.system_logs.targets + forward_to = [loki.relabel.add_labels.receiver] +} + +// Add hostname and job labels +loki.relabel "add_labels" { + forward_to = [loki.write.loki_endpoint.receiver] + rule { + source_labels = ["__host__"] // Internal hostname from constants.hostname + target_label = "hostname" + } + rule { + action = "replace" + target_label = "job" + replacement = "syslogs" // Or any name you prefer, e.g., "syslogs" + } } loki.write "loki" {