docs: System-Logs (journald) dokumentiert — warum nicht inputs.journal / syslog

This commit is contained in:
mm committed 2026-09-13 22:32:32 +02:00
1 parent 8ca06bd6d6
commit e6aa70d5c7
1 file changed
+36
+36
View File
@@ -5,6 +5,42 @@ Der Ausgang läuft über den **NetBird-Reverse-Proxy** (`imac-prometheus.x05.idx
mit **Bearer-Token** — dadurch funktioniert der Installer auch auf Maschinen, die **kein NetBird-Peer** sind mit **Bearer-Token** — dadurch funktioniert der Installer auch auf Maschinen, die **kein NetBird-Peer** sind
(Büro-LAN, Kundenlaptop, CGNAT, VM ohne Client). (Büro-LAN, Kundenlaptop, CGNAT, VM ohne Client).
## System-Logs (PVE und Nicht-Docker-Hosts)
Bis Version dieses Abschnitts lieferten nur **Docker-Container** Logs nach Loki
(`inputs.docker_log`) — PVE-Knoten und alle Hosts ohne Docker also gar nichts.
Jetzt werden zusätzlich **journald-Logs** übertragen.
**Wie:** `scripts/journal-tail.sh` liest `journalctl -o json` inkrementell und
gibt Influx Line Protocol aus (`inputs.exec`). Der Cursor steckt in jeder
Journal-Zeile (`__CURSOR`) und wird in `/var/lib/telegraf-journal/cursor`
gespeichert — keine Duplikate, kein Verlust bei Neustart oder Rotation.
**Warum nicht `inputs.journal`:** Das Plugin existiert in den offiziellen
Telegraf-Builds **nicht** (Docker-Image und InfluxData-Debian-Paket 1.40
geprüft; es braucht einen Build mit systemd-Headern).
**Warum nicht `/var/log/syslog`:** Auf PVE (Debian ohne rsyslog) existiert die
Datei nicht. `ls /var/log/` zeigt dort `journal/`, `pve/`, `pveproxy/`,
`pve-firewall.log`, `ceph/`, `corosync/` — aber kein `syslog`.
**Feintuning** in `/etc/default/telegraf`:
| Variable | Default | Bedeutung |
|---|---|---|
| `JOURNAL_PRIORITY` | `warning` | `warning`, `err`, `info`, `debug` |
| `JOURNAL_MAX_LINES` | `500` | Obergrenze pro Lauf (Flutschutz) |
| `JOURNAL_BUDGET` | `15` | Sekunden, die `journalctl` lesen darf |
| `JOURNAL_SINCE` | — | nur beim **ersten** Lauf, z. B. `-1h` |
Standardmäßig werden **Warnungen und schlimmer** übertragen. Für Debugging
`JOURNAL_PRIORITY=info` setzen und Telegraf neu starten.
**Labels in Loki:** `unit` (z. B. `pvedaemon.service`), `ident`, `priority`,
`jhost` (Journal-Hostname), dazu `host`/`node` von Telegraf. Das `jhost`-Label
heißt bewusst nicht `host` — dieser Name gehört Telegrafs global_tag, sonst
filtert das Dashboard nach dem falschen Knoten.
## Der Token — zuerst lesen ## Der Token — zuerst lesen
Jeder Aufruf braucht `--token <TOKEN>`. Ohne Token bricht das Script mit Jeder Aufruf braucht `--token <TOKEN>`. Ohne Token bricht das Script mit