diff --git a/k8s-peterg/alloy/configmap.yaml b/k8s-peterg/alloy/configmap.yaml index 66d60c5..823a84f 100644 --- a/k8s-peterg/alloy/configmap.yaml +++ b/k8s-peterg/alloy/configmap.yaml @@ -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",