Telegraf ist ein Metrik-Collector aus dem InfluxData-Ökosystem. Er läuft als einzelnes Go-Binary ohne Abhängigkeiten direkt auf dem zu überwachenden System und sammelt Werte aus vielen Quellen – um sie anschließend an eine Zeitreihendatenbank, eine Warteschlange oder ein Monitoring-System weiterzureichen.

Aufbau: Input, Processor, Output

Telegraf ist als Pipeline aufgebaut und über eine einzige TOML-Konfiguration steuerbar. Drei Bausteintypen genügen:

[agent]
  interval = "10s"

[[inputs.cpu]]
  percpu = true

[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs"]

[[outputs.influxdb_v2]]
  urls = ["http://127.0.0.1:8086"]
  token = "$INFLUX_TOKEN"
  organization = "hanse"
  bucket = "hosts"
  • Inputs holen Daten – aus /proc, per SNMP, HTTP, MQTT, Kafka, Docker-Socket, Prometheus-Endpunkt oder Datenbankabfrage. Die Auswahl ist mit mehreren hundert Plugins sehr breit.
  • Processors verändern Werte unterwegs, etwa Skalierung, Umbenennung, Filterung oder Anonymisierung.
  • Outputs schreiben weiter, typischerweise nach InfluxDB, Prometheus, Graphite, Elasticsearch, Kafka oder in eine Datei.

Warum Telegraf weit verbreitet ist

Der große Vorteil ist die Rolle als Übersetzer: Ein System kann über viele Protokolle einsammeln und in ein anderes Format ausgeben. Wer etwa SNMP-Werte von Switches und Docker-Container-Statistiken in einer InfluxDB zusammenführen will, braucht dafür keine eigene Software. Praktisch ist auch der Modus --test, der eine Konfiguration einmalig ausführt und die Werte auf der Konsole zeigt.

Typische Fallstricke: Zu kurze Intervalle erzeugen unnötig Datenvolumen; das Format unterscheidet sich von Prometheus (Push statt Pull, Zeilen statt Exposition-Endpunkt), sodass man sich für eine Linie entscheiden sollte. Für Container-Umgebungen liefert Telegraf mit dem Prometheus-Input eine Brücke in die Pull-Welt.

Verwandte Grundlagen: Monitoring, Prometheus, Node Exporter, Zeitreihendatenbank.