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.