linux-ubuntu-debian monitoring telegraf influxdb metrics

Telegraf: Metrics Collection Agent (Artikel 047)

Installation und Konfiguration des Telegraf-Agenten zur Sammlung von System- und Applikationsmetriken. Erfahren Sie, wie Sie Daten an InfluxDB, Prometheus oder andere backends senden.

# Telegraf: Das Schweizer Taschenmesser für Metriken

TL;DR / Management Summary Während der Prometheus Node Exporter spezialisiert ist, ist Telegraf der Alleskönner. Er kann Daten von fast allem sammeln: Hardware-Sensoren, Logdateien, Docker-Stats, SNMP von Switches oder sogar SQL-Queries. Er transformiert diese Daten und sendet sie an beliebige Ziele. Empfehlung: Ideal, wenn Sie gemischte Backends (z.B. InfluxDB für Logs und Prometheus für Alerts) betreiben oder Legacy-Hardware via SNMP einbinden müssen.


# 1. Einführung & Architektur

Input, Processor, Aggregator, Output.

Telegraf arbeitet in einer Pipeline. Jede Stufe ist durch Plugins erweiterbar.

graph LR
    A[Inputs: CPU, Disk, SNMP, MQTT] --> B[Processors: Tags, Filtering]
    B --> C[Aggregators: Min/Max/Avg]
    C --> D[Outputs: InfluxDB, Prometheus, File]
    subgraph "Telegraf Engine"
        B
        C
    end

# 2. Installation & Grundsetup

Schnell konfiguriert.

# Installation via Repository

wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89451d468b9b433b5e17ff2a3258da18a3a05b871f0bc7596a030c9 influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/keyrings/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/keyrings/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install telegraf

# 3. Die Konfiguration: telegraf.conf

Metriken definieren.

Datei: /etc/telegraf/telegraf.conf

# Beispiel: System-Metriken an InfluxDB senden

[agent]
  interval = "10s"
  round_interval = true

[[outputs.influxdb_v2]]
  urls = ["http://localhost:8086"]
  token = "your-token"
  organization = "company"
  bucket = "server_metrics"

[[inputs.cpu]]
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = false

[[inputs.mem]]
[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

# 4. Telegraf als Prometheus-Exporter

Hybride Nutzung.

Telegraf kann sich wie ein Node Exporter verhalten. Anstatt Daten zu pushen, stellt er sie unter /metrics bereit.

[[outputs.prometheus_client]]
  listen = ":9273"
  path = "/metrics"

# 5. Troubleshooting & “War Stories”

Wenn der Agent schweigt.

# Story 1: “Der CPU-Dieb”

Symptom: Der Telegraf-Dienst verbraucht selbst 20-30% CPU. Ursache: Zu viele inputs.tail Plugins auf sehr aktiven Logfiles mit komplexen Regex-Filtern. Lösung: Nutzen Sie spezialisierte Shipper wie Filebeat für Logs oder optimieren Sie den flush_interval in der [agent] Sektion.

# Story 2: “Das SNMP-Loch”

Symptom: Metriken von Netzwerk-Switches fehlen sporadisch. Ursache: Der SNMP-Timeout ist zu niedrig für langsame Management-Prozessoren der Switches. Lösung: Erhöhen Sie den timeout im SNMP-Plugin und nutzen Sie agent_host Listen, um parallele Scans zu ermöglichen.


# 6. Sicherheit & Hardening

  • Berechtigungen: Telegraf sollte unter dem User telegraf laufen. Wenn er Docker-Metriken lesen soll, fügen Sie ihn der Gruppe docker hinzu.
  • Secrets: Nutzen Sie Umgebungsvariablen für Token/Passwörter in der Konfig: token = "$INFLUX_TOKEN"
  • Filtering: Senden Sie nur, was Sie brauchen. Jede Metrik kostet Storage und Geld (in der Cloud). Nutzen Sie fieldpass und tagdrop.

# Anhang: Cheatsheet

Aufgabe Befehl
Config testen (einmalig) telegraf --test
Spezifische Config laden telegraf --config custom.conf
Liste aller Plugins telegraf --inputs
Version prüfen telegraf version
Dienst-Status systemctl status telegraf