fix: Output-Timeouts 10s->60s; docker-events-Watcher fuer Docker-Nodes

Die 10-s-Timeouts waren kuerzer als die gemessene Zustellzeit (11-19 s durch
den NetBird-Reverse-Proxy auf x05) -> jeder Batch brach ab. Gemessen: 702
abgelehnte Requests in 20 min, Metriken fehlten still.

Neu: scripts/docker-events-loki.py + Wrapper + systemd-Unit. Docker-Events
(Neustart/OOM/Stop) gehen nach Loki, Spool-Datei + Cursor statt RAM-Puffer.
This commit is contained in:
Kalina committed 2026-09-20 09:17:05 +02:00
1 parent 1fe25163d5
commit 63bc054371
4 files changed
+322 -2

No files matched your search

+6 -2
View File
@@ -27,7 +27,10 @@
[[outputs.http]]
url = "${PROM_URL}"
data_format = "prometheusremotewrite"
timeout = "10s"
# 60s, NICHT 10s: laeuft die Node hinter dem NetBird-Reverse-Proxy (x05),
# dauert ein POST 11-19 s. Ein 10-s-Timeout bricht dann JEDEN Batch ab —
# gemessen 702 abgelehnte Requests in 20 min, die Metriken fehlen still.
timeout = "60s"
# Roh-Logs gehoeren NICHT in Prometheus — sie sind Text, keine Zeitreihen.
# `apache_error` hier ergaenzen, sonst versucht der Remote-Write-Output
# Textzeilen als Metriken zu senden.
@@ -42,7 +45,8 @@
[[outputs.loki]]
domain = "${LOKI_URL}"
endpoint = "/loki/api/v1/push"
timeout = "10s"
# 60s aus demselben Grund wie oben: der Proxy-Weg braucht 11-19 s.
timeout = "60s"
# `apache_error` MUSS hier stehen: ohne den Namen sammelt der Input die
# Error-Logs ein und dieser Output verwirft sie wieder — kein Fehler, keine
# Meldung, die Panels bleiben leer. Derselbe stille Fehler wie bei `journal`.
+26
View File
@@ -0,0 +1,26 @@
[Unit]
Description=Docker-Events nach Loki (Neustart/OOM/Stop sichtbar machen)
Documentation=file:///usr/local/bin/docker-events-loki.py
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Type=simple
Restart=always
RestartSec=10
# Kein Timeout: der Prozess ist ein Stream, kein Job.
TimeoutStopSec=15
ExecStart=/usr/local/bin/docker-events-watcher.sh
# Schutz: der Forwarder darf nie die Ursache des naechsten OOM werden.
# Auf Nodes mit wenig RAM (x05: 967 MB) ist das keine Formalie — dort hat ein
# OOM-Kill bereits netbird-proxy erwischt.
MemoryMax=128M
MemorySwapMax=0
Nice=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=docker-events-loki
[Install]
WantedBy=multi-user.target