Sprachauswahl:
Skip to main navigation Skip to main content Skip to page footer

Didactum Monitoring und collectd Integration

Vollständige Schritt-für-Schritt-Anleitung zur Einbindung von Didactum Monitoring-Geräten und Sensoren in collectd via SNMP – inklusive Plugin-Konfiguration, RRDtool-Ausgabe, Grafana-Anbindung, Threshold-Alarme und InfluxDB-Integration.

  • Software: collectd 5.x (Ubuntu / Debian)
  • Plugin: SNMP Plugin (collectd-snmp)
  • Ausgabe: RRDtool, InfluxDB oder Graphite (wahlweise)
  • Visualisierung: Grafana (empfohlen)
  • Geräte: Didactum Monitoring System 100T / 300T / 500T / 550T
  • Sensoren: Temperatur, Leckage, Luftfeuchtigkeit, Türkontakt, Rauch

1. Voraussetzungen und Systemüberblick

collectd-Server

  • Ubuntu 20.04 / 22.04 LTS oder Debian 11/12
  • collectd 5.x installiert
  • Pakete: collectd, collectd-utils, snmp, snmp-mibs-downloader
  • UDP-Port 161 ausgehend für SNMP-Polling geöffnet
  • Netzwerkzugang zum Didactum-Gerät

Didactum-Gerät

  • Monitoring System 100T, 300T, 500T oder 550T
  • SNMP aktiviert (v1 oder v2c – collectd-snmp unterstützt kein v3 nativ)
  • MIB-Datei im Web-Interface verfügbar zum Download

Architektur & Datenfluss

[Didactum Monitoring System]
  IP: 192.168.1.50
       |
       | SNMP Polling (UDP 161) alle 60 Sekunden
       v
[collectd Daemon]
  /etc/collectd/collectd.conf
       |
       |-- RRDtool  --> /var/lib/collectd/rrd/  (Datei-Speicherung)
       |-- InfluxDB --> localhost    (Zeitreihen-DB)
       |-- Graphite --> localhost:2003           (alternativ)
       v
[Grafana Dashboard]
  localhost

Wichtige collectd-Verzeichnisse

/etc/collectd/collectd.conf        <-- Hauptkonfiguration
/etc/collectd/collectd.conf.d/     <-- Modulare Konfigurationsdateien
/var/lib/collectd/rrd/             <-- RRD-Datenbankdateien
/usr/lib/collectd/                 <-- Plugin-Binaries
/usr/share/doc/collectd-core/      <-- Beispielkonfigurationen

2. SNMP auf dem Didactum-Gerät aktivieren

Schritt 1 – Web-Interface öffnen

Im Browser aufrufen: 192.168.1.50 (IP des Didactum-Geräts anpassen)

Schritt 2 – SNMP-Einstellungen aufrufen

Systemeinstellungen → SNMP

Schritt 3 – Folgende Werte eintragen

Feld im Didactum Web-InterfaceWert
SNMP aktivierenAktiviert
SNMP-Versionv2c (collectd-snmp unterstützt v1 und v2c)
Community Stringdidactum_collectd (nicht „public" verwenden!)
SNMP-Port161
Trap-Empfänger IP192.168.1.10 (IP des collectd-Servers, optional)
Trap-Port162

Hinweis: 

Das collectd SNMP-Plugin unterstützt nativ nur SNMPv1 und v2c. Für SNMPv3 muss ein externes Wrapper-Skript über das exec-Plugin genutzt werden.

3. collectd installieren

Schritt 1 – Pakete installieren

sudo apt update
sudo apt install -y collectd collectd-utils \
    snmp snmp-mibs-downloader \
    librrd-dev rrdtool

Schritt 2 – collectd-Version prüfen

collectd -h | head -5
# oder:
dpkg -l collectd

Schritt 3 – collectd-Dienst beim Systemstart aktivieren

sudo systemctl enable collectd
sudo systemctl start collectd
sudo systemctl status collectd

4. MIB-Datei installieren und SNMP testen

Schritt 1 – MIB-Datei aus dem Didactum Web-Interface laden

Systemeinstellungen → SNMP → "MIB-Datei herunterladen" → didactum.mib

Schritt 2 – MIB auf dem collectd-Server installieren

sudo cp didactum.mib /usr/share/snmp/mibs/

# SNMP-Konfiguration für MIB-Nutzung
echo "mibdirs /usr/share/snmp/mibs" | sudo tee -a /etc/snmp/snmp.conf
echo "mibs ALL" | sudo tee -a /etc/snmp/snmp.conf

Schritt 3 – SNMP-Verbindung testen

# Alle Sensorwerte auflisten
snmpwalk -v 2c -c didactum_collectd 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1

# Einzelnen Temperaturwert abfragen (Rohwert ÷ 10 = Grad Celsius)
snmpget -v 2c -c didactum_collectd 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1.7.101001

# Leckage-Status abfragen (0=trocken, 1=Wasser erkannt)
snmpget -v 2c -c didactum_collectd 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1.7.107001

Erscheinen Werte ohne Fehlermeldung, ist die SNMP-Verbindung bereit für collectd.

5. SNMP-Plugin konfigurieren

Schritt 1 – Konfigurationsdatei für Didactum anlegen

sudo nano /etc/collectd/collectd.conf.d/didactum-snmp.conf

Schritt 2 – Folgenden Inhalt eintragen

# ================================================================
# collectd SNMP-Plugin – Didactum Monitoring System
# Datei: /etc/collectd/collectd.conf.d/didactum-snmp.conf
# ================================================================

LoadPlugin snmp

<Plugin snmp>

  # --------------------------------------------------------------
  # DATA-Blöcke: Definition der abzufragenden Messwerte
  # Diese Blöcke beschreiben WAS abgefragt wird.
  # Der Host-Block legt fest, WO abgefragt wird.
  # --------------------------------------------------------------

  # --- Temperatursensor (digital, Sensor-ID 101001) -------------
  # Scale 0.1: Rohwert ÷ 10 = Grad Celsius (235 = 23,5 °C)
  <Data "didactum_temp_01">
    Type        "temperature"
    Table       false
    Instance    "sensor_temperatur_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.7.101001"
    Scale       0.1
  </Data>

  # --- Temperatursensor-Status (0=OK, 1=Alarm, 2=Kein Signal) --
  <Data "didactum_temp_status_01">
    Type        "gauge"
    Table       false
    Instance    "sensor_temp_status_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.6.101001"
  </Data>

  # --- Leckagesensor (0=trocken, 1=Wasser erkannt) --------------
  <Data "didactum_leak_01">
    Type        "gauge"
    Table       false
    Instance    "sensor_leckage_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.7.107001"
  </Data>

  # --- Leckagesensor-Status -------------------------------------
  <Data "didactum_leak_status_01">
    Type        "gauge"
    Table       false
    Instance    "sensor_leckage_status_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.6.107001"
  </Data>

  # --- Luftfeuchtigkeitssensor (Wert in %) ----------------------
  <Data "didactum_hum_01">
    Type        "humidity"
    Table       false
    Instance    "sensor_feuchte_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.7.102001"
  </Data>

  # --- Türkontakt (0=geschlossen, 1=geöffnet) -------------------
  <Data "didactum_door_01">
    Type        "gauge"
    Table       false
    Instance    "sensor_tuer_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.7.104001"
  </Data>

  # --- Rauchmelder (0=OK, 1=Alarm) ------------------------------
  <Data "didactum_smoke_01">
    Type        "gauge"
    Table       false
    Instance    "sensor_rauch_01"
    Values      ".1.3.6.1.4.1.46501.5.1.1.7.106001"
  </Data>

  # --- Analoger Temperatursensor (neuere Modelle OID 39052) -----
  <Data "didactum_temp_analog_01">
    Type        "temperature"
    Table       false
    Instance    "sensor_temp_analog_01"
    Values      ".1.3.6.1.4.1.39052.5.2.1.7.201001"
    Scale       0.1
  </Data>

  # --------------------------------------------------------------
  # HOST-Block: Verbindungsparameter zum Didactum-Gerät
  # Dieser Block legt fest, WO und WIE abgefragt wird.
  # --------------------------------------------------------------

  <Host "didactum-monitor-01">
    Address     "192.168.1.50"
    Version     2
    Community   "didactum_collectd"
    Interval    60           # Abfrageintervall in Sekunden
    Timeout     5            # Timeout in Sekunden
    Retries     3            # Anzahl Wiederholungsversuche

    # Alle definierten Data-Blöcke abfragen:
    Collect "didactum_temp_01"
    Collect "didactum_temp_status_01"
    Collect "didactum_leak_01"
    Collect "didactum_leak_status_01"
    Collect "didactum_hum_01"
    Collect "didactum_door_01"
    Collect "didactum_smoke_01"
    Collect "didactum_temp_analog_01"
  </Host>

  # --------------------------------------------------------------
  # Zweites Gerät (auskommentiert – bei Bedarf aktivieren)
  # --------------------------------------------------------------
  # <Host "didactum-monitor-02">
  #   Address   "192.168.1.51"
  #   Version   2
  #   Community "didactum_collectd"
  #   Interval  60
  #   Collect   "didactum_temp_01"
  #   Collect   "didactum_leak_01"
  # </Host>

</Plugin>

Schritt 3 – Sicherstellen, dass das SNMP-Plugin in der Hauptkonfiguration geladen wird

sudo nano /etc/collectd/collectd.conf

Prüfen, ob folgende Zeile vorhanden und nicht auskommentiert ist:

LoadPlugin snmp

Falls die modulare Konfiguration aktiv ist, sicherstellen, dass das conf.d-Verzeichnis eingebunden wird:

Include "/etc/collectd/collectd.conf.d/*.conf"

Schritt 4 – Eigene Typen für Leckage und Status registrieren (optional)

collectd kennt den Typ gauge bereits. Für sauberere Bezeichnungen kann eine eigene types.db-Ergänzung angelegt werden:

sudo nano /etc/collectd/didactum-types.db
# Didactum eigene Typen
# Format: type_name  ds_name:ds_type:min:max
leakage_status   value:GAUGE:0:2
door_status      value:GAUGE:0:1
smoke_status     value:GAUGE:0:1
sensor_status    value:GAUGE:0:2

In der collectd.conf einbinden:

TypesDB "/usr/share/collectd/types.db"
TypesDB "/etc/collectd/didactum-types.db"

6. Ausgabe-Plugins konfigurieren

Option A – RRDtool (lokale Datei-Speicherung)

sudo nano /etc/collectd/collectd.conf
# RRDtool-Plugin aktivieren
LoadPlugin rrdtool

<Plugin rrdtool>
  DataDir     "/var/lib/collectd/rrd"
  CacheTimeout 120
  CacheFlush   900
  WritesPerSecond 50
</Plugin>

Verzeichnis anlegen:

sudo mkdir -p /var/lib/collectd/rrd
sudo chown collectd:collectd /var/lib/collectd/rrd

RRD-Dateien werden automatisch unter folgendem Pfad angelegt:

/var/lib/collectd/rrd/didactum-monitor-01/snmp/
  temperature-sensor_temperatur_01.rrd
  gauge-sensor_leckage_01.rrd
  humidity-sensor_feuchte_01.rrd
  gauge-sensor_tuer_01.rrd
  gauge-sensor_rauch_01.rrd

Option B – InfluxDB (empfohlen für Grafana)

# collectd-Plugin für InfluxDB-Ausgabe
LoadPlugin network

<Plugin network>
  <Server "192.168.1.10" "25826">
    SecurityLevel "None"
  </Server>
</Plugin>

In der InfluxDB-Konfiguration den collectd-Input aktivieren:

# /etc/influxdb/influxdb.conf
[[collectd]]
  enabled = true
  bind-address = ":25826"
  database = "collectd"
  typesdb = "/usr/share/collectd/types.db"

Option C – CSV-Ausgabe (für einfache Auswertung)

LoadPlugin csv

<Plugin csv>
  DataDir "/var/lib/collectd/csv"
  StoreRates true
</Plugin>

Option D – Write-HTTP (für externe Systeme)

LoadPlugin write_http

<Plugin write_http>
  <Node "didactum-backend">
    URL "http://192.168.1.20:9999/collectd"
    Format "JSON"
    StoreRates false
  </Node>
</Plugin>

7. Threshold-Plugin: Alarme konfigurieren

Das Threshold-Plugin überwacht gesammelte Werte gegen Grenzwerte und sendet Benachrichtigungen wenn Schwellen überschritten werden.

Schritt 1 – Threshold-Plugin aktivieren

sudo nano /etc/collectd/collectd.conf
LoadPlugin threshold

Schritt 2 – Threshold-Konfigurationsdatei erstellen

sudo nano /etc/collectd/collectd.conf.d/didactum-thresholds.conf
# ================================================================
# collectd Threshold-Konfiguration – Didactum Sensoren
# Datei: /etc/collectd/collectd.conf.d/didactum-thresholds.conf
# ================================================================

LoadPlugin threshold

<Plugin threshold>

  # --------------------------------------------------------------
  # Host-spezifische Schwellwerte für Didactum Monitor 01
  # --------------------------------------------------------------
  <Host "didactum-monitor-01">

    # --- Temperatursensor ---------------------------------------
    # Scale wurde bereits in der SNMP-Konfiguration auf 0.1 gesetzt
    # Daher arbeiten wir hier direkt mit Celsius-Werten
    <Type "temperature">
      Instance        "sensor_temperatur_01"
      WarningMax      28.0    # Warnung ab 28,0 °C
      FailureMax      35.0    # Kritisch ab 35,0 °C
      WarningMin      5.0     # Warnung unter 5,0 °C (zu kalt)
      FailureMin      2.0     # Kritisch unter 2,0 °C
      Persist         true    # Alarm bei jedem Messwert wiederholen
      PersistOK       false   # Keine OK-Meldung bei jedem Wert
    </Type>

    # --- Leckagesensor ------------------------------------------
    # Wert 1 = Wasser erkannt = sofort kritisch
    <Type "gauge">
      Instance        "sensor_leckage_01"
      FailureMax      0.5     # Ab 0.5 (= Wasser erkannt) kritisch
      Persist         true    # Alarm wiederholen solange Wasser
      Invert          false
    </Type>

    # --- Leckage-Status -----------------------------------------
    <Type "gauge">
      Instance        "sensor_leckage_status_01"
      FailureMax      0.5     # Status > 0 = Alarm oder Fehler
      Persist         true
    </Type>

    # --- Luftfeuchtigkeit ---------------------------------------
    <Type "humidity">
      Instance        "sensor_feuchte_01"
      WarningMax      80.0    # Warnung ab 80 %
      FailureMax      90.0    # Kritisch ab 90 %
      WarningMin      20.0    # Warnung unter 20 %
      FailureMin      10.0    # Kritisch unter 10 %
      Persist         false
    </Type>

    # --- Türkontakt ---------------------------------------------
    # 1 = Tür geöffnet = Warnung
    <Type "gauge">
      Instance        "sensor_tuer_01"
      WarningMax      0.5     # Ab 0.5 (= geöffnet) Warnung
      Persist         true    # Solange offen: Alarm wiederholen
    </Type>

    # --- Rauchmelder --------------------------------------------
    # 1 = Rauch = sofort kritisch
    <Type "gauge">
      Instance        "sensor_rauch_01"
      FailureMax      0.5     # Ab 0.5 (= Alarm) kritisch
      Persist         true
    </Type>

    # --- Temperatursensor-Status --------------------------------
    # 0=OK, 1=Alarm, 2=Kein Signal
    <Type "gauge">
      Instance        "sensor_temp_status_01"
      FailureMax      0.5     # Jeder Wert > 0 ist ein Problem
      Persist         true
    </Type>

  </Host>

</Plugin>

8. Alarmierung per E-Mail (exec- und notify_email-Plugin)

Option A – notify_email-Plugin (direkt, einfach)

sudo nano /etc/collectd/collectd.conf.d/didactum-notify.conf
# E-Mail-Benachrichtigung bei Threshold-Überschreitung
LoadPlugin notify_email

<Plugin notify_email>
  SMTPServer    "mail.ihredomain.de"
  SMTPPort      587
  SMTPUser      "collectd@ihredomain.de"
  SMTPPassword  "IhrMailPasswort"
  From          "collectd@ihredomain.de"
  # Empfänger (mehrere möglich):
  Recipient     "admin@ihredomain.de"
  # Betreff-Präfix:
  Subject       "[Didactum ALARM] %s"
</Plugin>

Option B – exec-Plugin mit eigenem Benachrichtigungs-Skript

sudo nano /etc/collectd/collectd.conf.d/didactum-exec.conf
LoadPlugin exec

<Plugin exec>
  # Notification-Skript aufrufen wenn Threshold ausgelöst wird
  NotificationExec "collectd" "/etc/collectd/scripts/didactum-alarm.sh"
</Plugin>

Alarm-Skript erstellen:

sudo mkdir -p /etc/collectd/scripts
sudo nano /etc/collectd/scripts/didactum-alarm.sh
#!/bin/bash
# ================================================================
# Didactum Alarm-Skript für collectd
# Wird aufgerufen wenn ein Threshold überschritten wird
# ================================================================

# Notification-Variablen werden von collectd gesetzt:
# NOTIF_SEVERITY  = FAILURE | WARNING | OKAY
# NOTIF_HOST      = Hostname
# NOTIF_PLUGIN    = Plugin-Name
# NOTIF_TYPE      = Metric-Typ
# NOTIF_INSTANCE  = Instanz-Name
# NOTIF_MESSAGE   = Fehlermeldung

# Nur bei FAILURE oder WARNING eine Mail senden
if [ "$NOTIF_SEVERITY" = "OKAY" ]; then
  exit 0
fi

EMPFAENGER="admin@ihredomain.de"
ABSENDER="collectd@ihredomain.de"
BETREFF="[Didactum $NOTIF_SEVERITY] $NOTIF_HOST – $NOTIF_TYPE ($NOTIF_INSTANCE)"

NACHRICHT="
Didactum Sensor-Alarm
=====================
Zeitpunkt:  $(date '+%Y-%m-%d %H:%M:%S')
Schwere:    $NOTIF_SEVERITY
Host:       $NOTIF_HOST
Plugin:     $NOTIF_PLUGIN
Typ:        $NOTIF_TYPE
Instanz:    $NOTIF_INSTANCE
Meldung:    $NOTIF_MESSAGE
"

echo "$NACHRICHT" | mail -s "$BETREFF" -r "$ABSENDER" "$EMPFAENGER"
sudo chmod +x /etc/collectd/scripts/didactum-alarm.sh
sudo chown collectd:collectd /etc/collectd/scripts/didactum-alarm.sh

Mailversand (Postfix) auf dem Server sicherstellen:

sudo apt install postfix mailutils -y
echo "Testmail collectd" | mail -s "Test" admin@ihredomain.de

9. Grafana-Dashboard einrichten

Schritt 1 – Grafana installieren (falls noch nicht vorhanden)

sudo apt install -y software-properties-common
sudo apt install -y grafana
sudo systemctl enable grafana-server
sudo systemctl start grafana-server
# Grafana erreichbar unter: 192.168.1.10
# Standard-Login: admin / admin

Schritt 2 – Datenquelle konfigurieren

Variante A: RRDtool-Datenquelle

Grafana → Configuration → Data Sources → Add data source
→ SimpleJSON oder collectd-RRD-Plugin wählen
→ URL: localhost (RRD-Proxy installieren)

Variante B: InfluxDB-Datenquelle (empfohlen)

Grafana → Configuration → Data Sources → Add data source → InfluxDB
  URL:        localhost
  Database:   collectd
  HTTP-Method: GET
→ Save & Test

Schritt 3 – Neues Dashboard anlegen

Grafana → + → Dashboard → Add new panel

Schritt 4 – Panel für Temperaturverlauf

InfluxDB-Query für Grafana:

SELECT mean("value") FROM "temperature"
WHERE ("host" = 'didactum-monitor-01'
  AND "type_instance" = 'sensor_temperatur_01')
  AND $timeFilter
GROUP BY time($__interval) fill(null)
Panel-EinstellungWert
Panel-TypTime series (Liniengraph)
Panel-TitelRaumtemperatur – Didactum Sensor 01
Einheit (Unit)Temperature → Celsius (°C)
Threshold Warning28
Threshold Critical35
Y-Achse Min0
Y-Achse Max50

Schritt 5 – Panel für Leckage-Status

SELECT last("value") FROM "gauge"
WHERE ("host" = 'didactum-monitor-01'
  AND "type_instance" = 'sensor_leckage_01')
  AND $timeFilter
Panel-EinstellungWert
Panel-TypStat (Einzelwert-Anzeige)
Panel-TitelLeckage Status
Value Mapping 0✅ Trocken / OK
Value Mapping 1? Wasser erkannt!
Threshold 0Grün (OK)
Threshold 1Rot (Alarm)

Schritt 6 – Panel für Luftfeuchtigkeit

SELECT mean("value") FROM "humidity"
WHERE ("host" = 'didactum-monitor-01'
  AND "type_instance" = 'sensor_feuchte_01')
  AND $timeFilter
GROUP BY time($__interval) fill(null)

Schritt 7 – Dashboard speichern

Oben rechts: Speichern-Symbol → Name: "Didactum Monitoring" → Save

10. SNMP OID-Referenz

Alle Didactum-OIDs beginnen mit .1.3.6.1.4.1.46501 (ältere Firmware) bzw. .1.3.6.1.4.1.39052 (neuere Modelle). Die Sensor-ID wird am Ende angehängt.

OID-Felder je Sensor

FeldBedeutungBeispiel
.1.x.SENSOR_IDSensor-ID.1.3.6.1.4.1.46501.5.1.1.1.101001
.5.x.SENSOR_IDSensor-Name.1.3.6.1.4.1.46501.5.1.1.5.101001
.6.x.SENSOR_IDStatus (0=OK, 1=Alarm, 2=Kein Signal).1.3.6.1.4.1.46501.5.1.1.6.101001
.7.x.SENSOR_IDMesswert (aktuell).1.3.6.1.4.1.46501.5.1.1.7.101001

Sensortypen mit OIDs und collectd-Konfiguration

SensortypSensor-IDOID Messwertcollectd TypeScale / Hinweis
Temperatursensor (digital)101001.1.3.6.1.4.1.46501.5.1.1.7.101001temperatureScale 0.1 (255 = 25,5 °C)
Temperatursensor (analog)201001.1.3.6.1.4.1.39052.5.2.1.7.201001temperatureScale 0.1
Wassersensor / Leckage107001.1.3.6.1.4.1.46501.5.1.1.7.107001gauge0=trocken, 1=Wasser
Sensor-Status allg.beliebig.1.3.6.1.4.1.46501.5.1.1.6.SENSOR_IDgauge0=OK, 1=Alarm, 2=Kein Signal
Luftfeuchtigkeit102001.1.3.6.1.4.1.46501.5.1.1.7.102001humidityWert in % (65 = 65 %)
Potentialfreier Kontakt101003.1.3.6.1.4.1.39052.5.1.1.7.101003gauge0=offen, 1=geschlossen
Türkontakt104001.1.3.6.1.4.1.46501.5.1.1.7.104001gauge0=geschlossen, 1=geöffnet
Rauchmelder106001.1.3.6.1.4.1.46501.5.1.1.7.106001gauge0=kein Rauch, 1=Alarm

Sensor-ID herausfinden: 

Im Didactum Web-Interface unter Systembaum → Sensor auswählen → Details. Diese ID wird ans Ende der OID angehängt.

Scale-Option in collectd: 

Der Parameter Scale 0.1 im Data-Block bewirkt, dass collectd den Rohwert automatisch durch 10 dividiert. So wird 235 direkt als 23,5 gespeichert – korrekte Darstellung in Grafana ohne manuelle Umrechnung.

MIB-Prefix je Modell: 

Ältere Geräte verwenden .1.3.6.1.4.1.46501, neuere Modelle eventuell .1.3.6.1.4.1.39052. Die genauen OIDs entnehmen Sie der MIB-Datei Ihres Geräts.

11. Test und Fehlersuche

Konfiguration testen ohne Daemon-Start

# Konfiguration auf Syntaxfehler prüfen
sudo collectd -t -C /etc/collectd/collectd.conf

# collectd im Vordergrund mit ausführlicher Ausgabe starten
sudo collectd -f -C /etc/collectd/collectd.conf
# Mit Strg+C beenden

collectd-Dienst neu starten & Status prüfen

sudo systemctl restart collectd
sudo systemctl status collectd
sudo journalctl -u collectd -f --since "5 minutes ago"

RRD-Dateien prüfen

# Prüfen ob RRD-Dateien angelegt wurden
ls -la /var/lib/collectd/rrd/didactum-monitor-01/

# Letzten Wert einer RRD-Datei anzeigen
rrdtool lastupdate \
    /var/lib/collectd/rrd/didactum-monitor-01/snmp/\
temperature-sensor_temperatur_01.rrd

# Schnellen Graph generieren (letzte Stunde)
rrdtool graph /tmp/temp_test.png \
    --start -3600 \
    --title "Didactum Temperatur" \
    --vertical-label "Grad Celsius" \
    DEF:temp=/var/lib/collectd/rrd/didactum-monitor-01/snmp/\
temperature-sensor_temperatur_01.rrd:value:AVERAGE \
    LINE1:temp#FF0000:"Temperatur"

SNMP-Verbindung direkt testen

snmpwalk -v 2c -c didactum_collectd 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1

Fehlermeldungen und Lösungen

ProblemUrsache & Lösung
collectd startet nichtSyntaxfehler in collectd.conf → collectd -t ausführen und Fehler lesen
Keine RRD-Dateien für DidactumSNMP-Plugin nicht geladen; Community String falsch; Gerät nicht erreichbar
snmp plugin: host "..." reported a failureGerät nicht erreichbar; Firewall blockiert UDP 161; Community String falsch
Temperaturwert 10× zu hoch in GrafanaScale 0.1 im Data-Block vergessen → SNMP-Konfiguration ergänzen
Threshold-Alarme kommen nichtnotify_email-Plugin nicht geladen; SMTP-Daten falsch; Alarm-Skript nicht ausführbar
Keine Daten in Grafana/InfluxDBnetwork-Plugin nicht konfiguriert; InfluxDB collectd-Input nicht aktiviert
"Unknown type" FehlermeldungTyp "humidity" oder "temperature" nicht in types.db → TypesDB-Eintrag prüfen
Data-Block vor Host-Block?Data-Blöcke müssen VOR dem Host-Block definiert sein (top-down Parsing)

collectd-Log einsehen

# Systemd-Journal
sudo journalctl -u collectd -f

# Logfile direkt (falls syslog-Plugin aktiv)
sudo tail -f /var/log/syslog | grep collectd

# Verbose-Logging in collectd.conf aktivieren:
# LoadPlugin logfile
# <Plugin logfile>
#   LogLevel debug
#   File "/var/log/collectd.log"
# </Plugin>

12. Abschluss-Checkliste

Didactum-Gerät

  • SNMP aktiviert (v2c)
  • Community String gesetzt (nicht „public")
  • Trap-Empfänger-IP eingetragen (optional)
  • MIB-Datei heruntergeladen
  • snmpwalk-Test vom collectd-Server erfolgreich

collectd-Server – Pakete & MIB

  • Pakete collectd, collectd-utils, snmp, snmp-mibs-downloader installiert
  • MIB-Datei unter /usr/share/snmp/mibs/ gespeichert
  • /etc/snmp/snmp.conf: mibs ALL eingetragen
  • collectd-Dienst läuft: systemctl status collectd

SNMP-Plugin-Konfiguration

  • Datei /etc/collectd/collectd.conf.d/didactum-snmp.conf angelegt
  • Data-Blöcke für alle Sensortypen definiert
  • Scale 0.1 für Temperatursensoren gesetzt
  • Host-Block mit korrekter IP und Community eingetragen
  • Collect-Anweisungen für alle Data-Blöcke vorhanden
  • Konfiguration mit collectd -t validiert (kein Fehler)

Ausgabe & Visualisierung

  • RRDtool-Plugin konfiguriert und RRD-Dateien werden angelegt
  • Alternativ: InfluxDB-Integration eingerichtet
  • Grafana-Datenquelle verbunden
  • Dashboard mit Temperatur- und Leckage-Panel erstellt
  • Temperaturanzeige in °C korrekt (Scale 0.1 wirkt)

Alarme & Benachrichtigung

  • Threshold-Plugin aktiviert und konfiguriert
  • Schwellwerte für Temperatur (Warnung 28°C, Kritisch 35°C)
  • Schwellwert für Leckage gesetzt (ab 0.5 = kritisch)
  • E-Mail-Plugin (notify_email oder exec) konfiguriert
  • Testmeldung per E-Mail empfangen

Diese Webseite nutzt Cookies

Diese Webseite nutzt Cookies zur Verbesserung des Erlebnisses unserer Besucher. Indem Sie weiterhin auf dieser Webseite navigieren, erklären Sie sich mit unserer Verwendung von Cookies einverstanden.

Essenzielle Cookies ermöglichen grundlegende Funktionen und sind für die einwandfreie Funktion der Website erforderlich.
Statistik Cookies erfassen Informationen anonym. Diese Informationen helfen uns zu verstehen, wie unsere Besucher unsere Website nutzen.
Marketing-Cookies werden von Drittanbietern oder Publishern verwendet, um personalisierte Werbung anzuzeigen. Sie tun dies, indem sie Besucher über Websites hinweg verfolgen.