# 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" timeout = "10s" # 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" timeout = "10s" # `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]]