Files
netbird-telegraf-installer/telegraf/base.conf
T
Kalina 63bc054371 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.
2026-09-20 09:17:05 +02:00

72 lines
2.7 KiB
Plaintext

# NetBird Observability — Basis-Konfiguration (alle Linux-Nodes)
# Variablen aus /etc/default/telegraf: NODE_NAME, PROM_URL, LOKI_URL
[global_tags]
node = "${NODE_NAME}"
[agent]
interval = "15s"
flush_interval = "15s"
metric_batch_size = 1000
# metric_buffer_limit: RAM-Puffer fuer noch nicht zugestellte Metriken.
# GEMESSEN (x22, rate ueber 5 min): der Host erzeugt 13,3 Log-Zeilen/s.
# Damit ergibt sich:
# 20.000 -> ~25 min Reserve (alter Wert — zu knapp fuer einen Ausfall)
# 200.000 -> ~4 h Reserve (~100-150 MB RAM, nur im Ausfall belegt)
# Telegraf puffert nur, solange der Push scheitert; im Normalbetrieb bleibt
# der Puffer leer. Die Reserve ist billiger als eine Luecke im Log.
#
# NICHT STILL: ein Ueberlauf wird geloggt
# [outputs.loki] Metric buffer overflow; N metrics have been dropped
# pruefen mit: journalctl -u telegraf | grep -i overflow
metric_buffer_limit = 200000
hostname = "${NODE_NAME}"
omit_hostname = false
# ---- Metriken → Prometheus Remote Write (imac) ----
[[outputs.http]]
url = "${PROM_URL}"
data_format = "prometheusremotewrite"
# 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.
namedrop = ["docker_log", "apache_log", "journal", "apache_error"]
[outputs.http.headers]
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
X-Prometheus-Remote-Write-Version = "0.1.0"
Authorization = "Bearer ${TELEGRAF_TOKEN}"
# ---- Logs → Loki (imac) ----
[[outputs.loki]]
domain = "${LOKI_URL}"
endpoint = "/loki/api/v1/push"
# 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`.
namepass = ["docker_log", "apache_log", "journal", "apache_error"]
sanitize_label_names = true
metric_name_label = ""
http_headers = { "Authorization" = "Bearer ${TELEGRAF_TOKEN}" }
# ---- Host-Metriken ----
[[inputs.cpu]]
percpu = false
totalcpu = true
[[inputs.mem]]
[[inputs.swap]]
[[inputs.system]]
fieldexclude = ["uptime_format"]
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs", "overlay", "squashfs", "fuse.lxcfs"]
[[inputs.diskio]]
[[inputs.net]]
[[inputs.processes]]
[[inputs.kernel]]