fix(logs): inputs.journal existiert in offiziellen Builds nicht — tail auf /var/log/syslog, value->message
This commit is contained in:
1 parent
e1da311488
commit
49b5811d94
1 file changed
+26
-24
+26
-24
@@ -1,31 +1,33 @@
|
||||
# System-Logs (journald) → Loki
|
||||
# System-Logs (Syslog) → Loki
|
||||
#
|
||||
# Warum: inputs.docker_log deckt nur Container ab. PVE-Knoten und alle
|
||||
# Nicht-Docker-Hosts lieferten damit gar keine Logs — genau dort stehen aber
|
||||
# die relevanten Meldungen (pvedaemon, pveproxy, qemu, Kernel, Storage).
|
||||
#
|
||||
# Wichtig:
|
||||
# - Läuft nur auf systemd-Systemen (kein Alpine/OpenRC).
|
||||
# - Journal-Zugriff: Dienst läuft als root (Proxmox-Drop-in) bzw. braucht
|
||||
# Mitgliedschaft in "systemd-journal". Der Installer setzt das per
|
||||
# SupplementaryGroups, wenn als Benutzer "telegraf" gelaufen wird.
|
||||
# - PVE/Cluster-Meldungen sind im Journal unter diesen Units zu finden:
|
||||
# pvedaemon, pveproxy, pvestatd, pve-firewall, qmeventd, corosync, pmxcfs
|
||||
# Umsetzung: inputs.tail auf die Syslog-Dateien.
|
||||
# HINWEIS: inputs.journal existiert in den offiziellen Telegraf-Builds NICHT
|
||||
# (Docker-Image und InfluxData-Debian-Paket 1.40 wurden beide geprüft) — das
|
||||
# Plugin braucht einen Build mit systemd-Headern. Deshalb der Datei-Weg.
|
||||
#
|
||||
# Voraussetzung: rsyslog schreibt eine Datei. Auf PVE ist das /var/log/syslog
|
||||
# (pve-manager hängt an rsyslog). Prüfen mit: ls -la /var/log/syslog
|
||||
|
||||
[[inputs.journal]]
|
||||
# Nur Warnungen und schlimmer — sonst flutet das Journal Loki.
|
||||
# Für Debugging temporär auf "info" oder "debug" setzen.
|
||||
units = [
|
||||
"pvedaemon", "pveproxy", "pvestatd", "pve-firewall",
|
||||
"qmeventd", "corosync", "pmxcfs", "pve-cluster",
|
||||
"sshd", "systemd", "kernel", "smartd", "zfs-zed", "zfs",
|
||||
"netbird", "telegraf", "docker", "containerd", "cron",
|
||||
]
|
||||
# Einheiten ohne Einträge liefern einfach nichts — kein Fehler.
|
||||
priority = "warning" # warning, err, crit …
|
||||
# Kein Nachholen alter Einträge beim Start
|
||||
since = "-1h"
|
||||
# Felder, die als Log-Zeile nutzbar sind (sonst nur Structured-Log)
|
||||
fieldpass = ["MESSAGE", "PRIORITY", "SYSLOG_IDENTIFIER", "UNIT", "_HOSTNAME"]
|
||||
# Kein doppeltes Logging: docker_log deckt Container ab
|
||||
[[inputs.tail]]
|
||||
# Fehlende Dateien sind unkritisch (Debian hat kein /var/log/messages).
|
||||
files = ["/var/log/syslog", "/var/log/messages", "/var/log/kern.log", "/var/log/daemon.log"]
|
||||
name_override = "journal"
|
||||
# Default "saved-or-end": beim ersten Start nichts nachholen, danach merken.
|
||||
initial_read_offset = "saved-or-end"
|
||||
# Zeilen als Text durchreichen (kein Parsing nötig)
|
||||
data_format = "value"
|
||||
data_type = "string"
|
||||
# Pfad als Tag, damit man in Loki nach Datei filtern kann
|
||||
path_tag = "logfile"
|
||||
|
||||
# Feldname vereinheitlichen: tail/value liefert "value", das Logs-Panel
|
||||
# erwartet (wie docker_log) "message". Umbenennen statt Panel-Sonderfall.
|
||||
[[processors.rename]]
|
||||
namepass = ["journal"]
|
||||
[[processors.rename.replace]]
|
||||
field = "value"
|
||||
dest = "message"
|
||||
Reference in new issue
Block a user