feat(alloy): Push logs to loki

This commit is contained in:
Peter 2025-12-14 20:29:37 +01:00
parent a4b460ad43
commit 11df835631
Signed by: Peter
SSH key fingerprint: SHA256:B5tYaxBExaDm74r1px9iVeZ6F/ZDiyiy9SbBqfZYrvg

View file

@ -41,6 +41,10 @@ data:
role = "pod"
}
discovery.kubernetes "pod_logs" {
role = "pod"
}
discovery.relabel "kubernetes_apiservers" {
targets = discovery.kubernetes.kubernetes_apiservers.targets
@ -401,6 +405,59 @@ data:
}
}
discovery.relabel "pod_logs" {
targets = discovery.kubernetes.pod_logs.targets
rule {
source_labels = ["__meta_kubernetes_pod_node_name"]
action = "replace"
target_label = "__host__"
}
rule {
regex = "__meta_kubernetes_pod_label_(.+)"
action = "labelmap"
}
rule {
source_labels = ["__meta_kubernetes_namespace", "__meta_kubernetes_pod_name"]
action = "replace"
separator = "/"
target_label = "job"
replacement = "$1"
}
rule {
source_labels = ["__meta_kubernetes_namespace"]
action = "replace"
target_label = "namespace"
}
rule {
source_labels = ["__meta_kubernetes_pod_name"]
action = "replace"
target_label = "pod"
}
rule {
source_labels = ["__meta_kubernetes_pod_container_name"]
action = "replace"
target_label = "container"
}
rule {
source_labels = ["__meta_kubernetes_pod_uid", "__meta_kubernetes_pod_container_name"]
action = "replace"
separator = "/"
target_label = "__path__"
replacement = "/var/log/pods/*$1/*.log"
}
}
local.file_match "pod_logs" {
path_targets = discovery.relabel.pod_logs.output
}
prometheus.scrape "prometheus" {
targets = [{
__address__ = "localhost:9090",
@ -510,6 +567,47 @@ data:
scrape_timeout = "30s"
}
loki.process "pod_logs" {
forward_to = [loki.write.default.receiver]
stage.static_labels {
values = {
cluster = "k8s-peterg",
}
}
stage.template {
source = "merged_cluster-namespace-container_string"
template = "k8s-peterg;{{`{{.namespace}};{{.container}}`}}"
}
}
loki.source.file "pod_logs" {
targets = local.file_match.pod_logs.targets
forward_to = [loki.process.pod_logs.receiver]
legacy_positions_file = "/tmp/positions.yaml"
}
local.file_match "auditlogs" {
path_targets = [{
__address__ = "localhost",
__path__ = "/var/log/audit/kube/kube-apiserver.log",
host = env("HOSTNAME"),
logtype = "audit",
}]
}
loki.source.file "auditlogs" {
targets = local.file_match.auditlogs.targets
forward_to = [loki.write.default.receiver]
}
loki.write "default" {
tenant_id = "wheatley"
endpoint {
url = "https://loki.peterg.nl/loki/api/v1/push"
}
prometheus.remote_write "default" {
external_labels = {
cluster = "k8s-peterg",