Linuxguide

InfluxDB + Telegraf – Metriken und IoT-Daten 2025

Zeitreihendatenbank für Server-Metriken und IoT-Sensoren

S
SeeColors IT
11. Juni 20264 Min. Lesezeit60 Aufrufe

InfluxDB mit Docker installieren

# docker-compose.yml
services:
  influxdb:
    image: influxdb:2.7
    container_name: influxdb
    ports:
      - "8086:8086"
    volumes:
      - influxdb-data:/var/lib/influxdb2
    environment:
      DOCKER_INFLUXDB_INIT_MODE: setup
      DOCKER_INFLUXDB_INIT_USERNAME: admin
      DOCKER_INFLUXDB_INIT_PASSWORD: sicherespasswort
      DOCKER_INFLUXDB_INIT_ORG: firma
      DOCKER_INFLUXDB_INIT_BUCKET: metriken
      DOCKER_INFLUXDB_INIT_RETENTION: 30d
    restart: unless-stopped

volumes:
  influxdb-data:

Telegraf – Metriken-Agent

# Telegraf installieren
apt install -y telegraf
# /etc/telegraf/telegraf.conf

# InfluxDB v2 Output
[[outputs.influxdb_v2]]
  urls = ["http://influxdb:8086"]
  token = "mein-api-token"
  organization = "firma"
  bucket = "metriken"

# CPU-Metriken
[[inputs.cpu]]
  percpu = true
  totalcpu = true

# RAM
[[inputs.mem]]

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

# Netzwerk
[[inputs.net]]

# Docker Container
[[inputs.docker]]
  endpoint = "unix:///var/run/docker.sock"

# Nginx Status
[[inputs.nginx]]
  urls = ["http://localhost/nginx_status"]

# MySQL
[[inputs.mysql]]
  servers = ["root:passwort@tcp(localhost:3306)/"]

# SNMP (Switches)
[[inputs.snmp]]
  agents = ["192.168.1.1", "192.168.1.2"]
  community = "public"
  version = 2

  [[inputs.snmp.field]]
    name = "hostname"
    oid = "RFC1213-MIB::sysName.0"

  [[inputs.snmp.table]]
    name = "interface"
    oid = "IF-MIB::ifTable"

Flux Abfragen

// Letzte CPU-Auslastung
from(bucket: "metriken")
  |> range(start: -1h)
  |> filter(fn: (r) => r._measurement == "cpu")
  |> filter(fn: (r) => r._field == "usage_user")
  |> mean()
  |> yield(name: "cpu-mean")

// Top 5 RAM-verbrauchende Container
from(bucket: "metriken")
  |> range(start: -15m)
  |> filter(fn: (r) => r._measurement == "docker_container_mem")
  |> filter(fn: (r) => r._field == "usage_percent")
  |> sort(columns: ["_value"], desc: true)
  |> limit(n: 5)

InfluxDB Dashboard in Grafana

Grafana → Data Sources → Add:
  Type: InfluxDB
  Query Language: Flux
  URL: http://influxdb:8086
  Organization: firma
  Token: [API-Token aus InfluxDB]
  Default Bucket: metriken

Dashboard Panel:
  Data Source: InfluxDB
  Query: [Flux-Abfrage]

InfluxDB vs. Prometheus

InfluxDB:
+ Push-Modell (Telegraf pusht Daten)
+ Flexiblere Retention-Policies
+ Nativer IoT/Sensor-Fokus
+ Flux-Sprache mächtiger als PromQL

Prometheus:
+ Pull-Modell (besser für Service-Discovery)
+ Standard in Cloud/Kubernetes
+ Größeres Exporter-Ökosystem

FAQ

Kann InfluxDB Prometheus-Metriken empfangen?
Ja. InfluxDB 2.x hat einen nativen Prometheus Remote Write Endpoint.

Fazit

InfluxDB + Telegraf ist ideal für gemischte Umgebungen: Server, Netzwerkgeräte und IoT-Sensoren in einer einheitlichen Zeitreihendatenbank.

Metriken und IoT-Monitoring für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel