fix(logs): journald via exec+Cursor statt inputs.journal (existiert nicht) bzw. syslog (fehlt auf PVE)
This commit is contained in:
1 parent
49b5811d94
commit
258157c943
3 files changed
+107
-32
No files matched your search
+18
-29
@@ -1,33 +1,22 @@
|
||||
# System-Logs (Syslog) → Loki
|
||||
# System-Logs (journald) -> 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).
|
||||
# Warum dieses Script statt eines Plugins:
|
||||
# * inputs.journal existiert in den offiziellen Telegraf-Builds NICHT
|
||||
# (Docker-Image UND InfluxData-Debian-Paket 1.40 geprueft, Web-Recherche
|
||||
# bestaetigt: Plugin braucht einen Build mit systemd-Headern).
|
||||
# * Auf PVE gibt es KEIN rsyslog -> /var/log/syslog existiert dort nicht.
|
||||
# * Der JSON-Parser von inputs.exec liest nur ein Objekt, keine NDJSON-Zeilen.
|
||||
# * Line Protocol direkt ist dasselbe bewaehrte Muster wie gpu-rocm.sh.
|
||||
#
|
||||
# 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.
|
||||
# Cursor-Zustand liegt in /var/lib/telegraf-journal/cursor -> keine Duplikate,
|
||||
# kein Verlust bei Neustart oder Journal-Rotation.
|
||||
#
|
||||
# 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
|
||||
# Feintuning per Umgebungsvariable in /etc/default/telegraf:
|
||||
# JOURNAL_PRIORITY=warning (warning|err|info|debug)
|
||||
# JOURNAL_MAX_LINES=500
|
||||
|
||||
[[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"
|
||||
[[inputs.exec]]
|
||||
interval = "30s"
|
||||
timeout = "25s"
|
||||
data_format = "influx"
|
||||
commands = ["/etc/telegraf/journal-tail.sh"]
|
||||
Reference in new issue
Block a user