k8s/roles/logging/templates/alloy-values.yml.j2
2026-07-15 11:14:21 +03:00

106 lines
3.3 KiB
Django/Jinja
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

controller:
type: daemonset
tolerations:
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
alloy:
configMap:
create: true
content: |
// ── Обнаружение подов Kubernetes ─────────────────────────────
discovery.kubernetes "pods" {
role = "pod"
}
// ── Relabeling: namespace, pod, container, app ────────────────
discovery.relabel "pod_logs" {
targets = discovery.kubernetes.pods.targets
rule {
source_labels = ["__meta_kubernetes_namespace"]
target_label = "namespace"
}
rule {
source_labels = ["__meta_kubernetes_pod_name"]
target_label = "pod"
}
rule {
source_labels = ["__meta_kubernetes_pod_container_name"]
target_label = "container"
}
rule {
source_labels = ["__meta_kubernetes_pod_label_app"]
target_label = "app"
}
rule {
source_labels = ["__meta_kubernetes_pod_annotation_filter_debug"]
regex = "true"
action = "drop"
}
}
// ── Чтение файлов логов подов ─────────────────────────────────
loki.source.kubernetes "pods" {
targets = discovery.relabel.pod_logs.output
forward_to = [loki.process.parse.receiver]
}
// ── Парсинг JSON-логов, отброс debug ─────────────────────────
loki.process "parse" {
stage.json {
expressions = {level = "level", msg = "message"}
}
stage.labels {
values = {level = ""}
}
stage.drop {
expression = ".*level=\"debug\".*"
drop_counter_reason = "debug_dropped"
}
forward_to = [loki.write.local.receiver]
}
// ── Сбор journald (kubelet, containerd, sshd) ─────────────────
discovery.relabel "journal" {
targets = []
rule {
source_labels = ["__journal__systemd_unit"]
target_label = "unit"
}
rule {
source_labels = ["__journal__hostname"]
target_label = "node"
}
}
loki.source.journal "systemd" {
path = "/var/log/journal"
max_age = "12h"
labels = {job = "systemd-journal"}
forward_to = [loki.write.local.receiver]
relabel_rules = discovery.relabel.journal.rules
}
// ── Отправка в Loki ───────────────────────────────────────────
loki.write "local" {
endpoint {
url = "http://loki.{{ logging_namespace }}.svc.cluster.local:3100/loki/api/v1/push"
}
}
mounts:
varlog: true
dockercontainers: false
extraVolumes:
- name: journal
hostPath:
path: /var/log/journal
extraVolumeMounts:
- name: journal
mountPath: /var/log/journal
readOnly: true