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

Didactum Monitoring & Zenoss Integration

Vollständige Schritt-für-Schritt-Anleitung zur Einbindung von Didactum Monitoring-Geräten und Sensoren in Zenoss Core / Zenoss Service Dynamics (ZSD) via SNMP – inklusive Device-Discovery, ZenPack-Konfiguration, MIB-Import, SNMP-Datenquellen (Datasources) und Schwellwert-Konfiguration (Thresholds) im Monitoring-Template, vollständiger OID-Referenz für alle Sensortypen (Temperatur, Leckage, Luftfeuchtigkeit, Türkontakt, Rauch), SNMP-Trap-Verarbeitung sowie Event-Klassen- und Benachrichtigungs-Konfiguration.

Architektur-Hinweis: Zenoss arbeitet mit Monitoring-Templates und ZenPacks. Das Didactum-Gerät wird als Device in Zenoss angelegt und einer Device-Klasse zugeordnet. Ein Monitoring-Template definiert, welche OIDs (Datasources) abgefragt und welche Schwellwerte (Thresholds) überwacht werden. SNMP-Traps werden vom Didactum-Gerät an den Zenoss-Server gesendet (UDP-Port 162) und über Event-Klassen-Mappings in Zenoss-Events umgewandelt. Der Zenoss-Server sendet SNMP-GET-Anfragen (UDP-Port 161) aktiv an das Didactum-Gerät.

  • Software: Zenoss Core 6.x oder Zenoss Service Dynamics (ZSD)
  • Komponenten: Zenoss Server, zenhub, zenperfsnmp, zentrap, zenactions
  • Protokoll: SNMP v1 / v2c / v3
  • Geräte: Didactum Monitoring System 100T / 300T / 500T / 550T
  • Sensoren: Temperatur, Leckage, Luftfeuchtigkeit, Türkontakt, Rauch

1. Voraussetzungen & Systemüberblick

Zenoss Server

KomponenteAnforderung / Details
Zenoss VersionZenoss Core 6.x oder Zenoss Service Dynamics; ältere Versionen (4.x / 5.x) funktionieren analog
Daemon zenperfsnmpMuss aktiv sein – zuständig für SNMP-Polling; zenoss status prüfen
Daemon zentrapMuss aktiv sein – zuständig für SNMP-Trap-Empfang auf UDP-Port 162
Daemon zenactionsMuss aktiv sein – zuständig für E-Mail-Benachrichtigungen
Netzwerk (ausgehend)UDP-Port 161 vom Zenoss-Server zum Didactum-Gerät (SNMP-Polling)
Netzwerk (eingehend)UDP-Port 162 vom Didactum-Gerät zum Zenoss-Server (SNMP-Traps)
NetzwerkzugangIP-Erreichbarkeit vom Zenoss-Server zum Didactum-Gerät erforderlich

Didactum-Gerät

AnforderungDetails
ModellMonitoring System 100T, 300T, 500T oder 550T
SNMPSNMP aktiviert (v2c empfohlen)
Community StringIndividueller Community String (nicht „public" verwenden)
Trap-ZielIP-Adresse des Zenoss-Servers
MIB-DateiUnter Systemeinstellungen → SNMP herunterladbar

Enterprise OIDs je Firmware-Generation

Gerät / FirmwareEnterprise OID (Basis)
Ältere Modelle / ältere Firmware.1.3.6.1.4.1.46501
Neuere Modelle / aktuelle Firmware.1.3.6.1.4.1.39052

Hinweis: Welche Enterprise OID Ihr Gerät verwendet, ermitteln Sie per:
snmpwalk -v 2c -c public 192.168.1.50 .1.3.6.1.2.1.1.2.0

2. SNMP auf dem Didactum-Gerät aktivieren

Schritt 1 – Web-Interface öffnen

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-InterfaceEmpfohlener Wert
SNMP aktivierenAktiviert
SNMP-Versionv2c (empfohlen)
Community String (Read)didactum_zenoss (nicht „public" verwenden!)
SNMP-Port161
Trap-Ziel (Trap Destination)IP-Adresse des Zenoss-Servers
Trap-Communitydidactum_trap
Trap-Port162

Schritt 4 – MIB-Datei herunterladen

Systemeinstellungen → SNMP → "MIB-Datei herunterladen"
Datei wird als didactum.mib gespeichert.
Diese Datei wird in Schritt 3 in Zenoss importiert.

Einstellungen speichern. Das Gerät sendet SNMP-Traps ab sofort an den Zenoss-Server.

3. MIB-Datei in Zenoss importieren

Zenoss speichert MIB-Dateien auf dem Server im Dateisystem und lädt sie über die Kommandozeile oder das Webinterface. Nach dem Import löst Zenoss OID-Nummern in SNMP-Trap-Events mit symbolischen Namen auf.

Schritt 1 – MIB-Datei auf den Zenoss-Server kopieren

Standard MIB-Verzeichnis Zenoss Core (Linux):
  /opt/zenoss/share/mibs/site/

Datei hochladen (z. B. per SCP vom Admin-Rechner):
  scp didactum.mib zenoss@192.168.1.100:/opt/zenoss/share/mibs/site/

Alternativ direkt auf dem Server:
  cp didactum.mib /opt/zenoss/share/mibs/site/

Schritt 2 – MIB kompilieren (als zenoss-Benutzer)

su - zenoss
cd /opt/zenoss

# MIB kompilieren
python $ZENHOME/bin/zenmib run /opt/zenoss/share/mibs/site/didactum.mib

# Erfolgsmeldung:
# INFO zen.ZenMib: Loaded MIB DIDACTUM-MIB
# INFO zen.ZenMib: Saved X OIDs to ZODB

Schritt 3 – MIB-Import über die Zenoss-Weboberfläche (alternative Methode)

Zenoss Web UI → Advanced → MIBs → Add MIB
  → "Upload MIB File" → didactum.mib auswählen
  → "Add" klicken
  → MIB erscheint in der MIB-Liste als DIDACTUM-MIB

Schritt 4 – MIB-Import verifizieren

Zenoss Web UI → Advanced → MIBs → DIDACTUM-MIB
  → OID-Baum wird angezeigt
  → sensorValue (.1.3.6.1.4.1.46501.5.1.1.7) erscheint mit symbolischem Namen

Fertige MIB-Importkonfiguration (DIDACTUM-MIB.txt)

Falls keine MIB-Datei aus dem Gerät verfügbar ist, folgende minimale MIB-Struktur als DIDACTUM-MIB.txt in das Zenoss-MIB-Verzeichnis kopieren und wie oben kompilieren:

-- ================================================================
-- DIDACTUM-MIB – Minimale MIB für Zenoss Import
-- Datei: DIDACTUM-MIB.txt
-- Für ältere Geräte: enterprises.46501
-- Für neuere Geräte: enterprises.39052 (OID anpassen)
-- ================================================================

DIDACTUM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32, enterprises
        FROM SNMPv2-SMI
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI;

didactum MODULE-IDENTITY
    LAST-UPDATED "202401010000Z"
    ORGANIZATION "Didactum Security GmbH"
    CONTACT-INFO "support@didactum-security.com"
    DESCRIPTION  "Didactum Monitoring System MIB"
    ::= { enterprises 46501 }

sensorTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Tabelle aller angeschlossenen Sensoren"
    ::= { didactum 5 1 1 }

sensorEntry OBJECT-TYPE
    SYNTAX      SensorEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Einzelner Sensor-Eintrag"
    INDEX { sensorIndex }
    ::= { sensorTable 1 }

SensorEntry ::= SEQUENCE {
    sensorIndex    Integer32,
    sensorID       Integer32,
    sensorType     Integer32,
    sensorName     OCTET STRING,
    sensorStatus   Integer32,
    sensorValue    Integer32
}

sensorIndex  OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current
    DESCRIPTION "Index"                        ::= { sensorEntry 1 }
sensorID     OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current
    DESCRIPTION "Sensor ID"                    ::= { sensorEntry 2 }
sensorType   OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current
    DESCRIPTION "Sensor-Typ"                   ::= { sensorEntry 3 }
sensorName   OBJECT-TYPE SYNTAX OCTET STRING  MAX-ACCESS read-only STATUS current
    DESCRIPTION "Sensor-Name"                  ::= { sensorEntry 5 }
sensorStatus OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current
    DESCRIPTION "0=OK 1=Alarm 2=Kein Signal"   ::= { sensorEntry 6 }
sensorValue  OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current
    DESCRIPTION "Messwert (Temperatur: x10)"   ::= { sensorEntry 7 }

didactumAlarmTrap NOTIFICATION-TYPE
    OBJECTS { sensorName, sensorStatus, sensorValue }
    STATUS  current
    DESCRIPTION "Alarm-Trap bei Sensor-Statusänderung"
    ::= { didactum 1 1 }

END

4. Device-Klasse und Didactum-Gerät anlegen

Schritt 1 – Device-Klasse anlegen

Zenoss Web UI → Infrastructure → Device Classes → Add Device Class

  Class Path:   /Devices/Environmental/Didactum
  Description:  Didactum Environmental Monitoring Devices

Schritt 2 – SNMP-Einstellungen der Device-Klasse setzen

Zenoss Web UI → Infrastructure → Device Classes → /Devices/Environmental/Didactum
  → Configuration Properties (zProperties)

  zSnmpCommunity:   didactum_zenoss
  zSnmpVer:         v2c
  zSnmpPort:        161
  zSnmpTimeout:     5
  zSnmpTries:       3
  → Speichern

Schritt 3 – Didactum-Gerät hinzufügen

Zenoss Web UI → Infrastructure → Devices → Add Device

  Device Name / IP:  192.168.1.50
  Device Class:      /Devices/Environmental/Didactum
  Title:             Didactum-Monitor-01
  Collector:         localhost  (oder Remote-Collector falls vorhanden)
  → "Add" klicken
  → Zenoss startet automatisch Device-Modeling

Schritt 4 – Device-Modeling prüfen

Zenoss Web UI → Infrastructure → Devices → Didactum-Monitor-01
  → Reiter "Details"
  → sysDescr: Didactum Monitoring System (wird automatisch aus SNMP ausgelesen)
  → sysUpTime, sysContact, sysLocation erscheinen nach erfolgreichem Modeling

Falls Modeling fehlschlägt:
  → Zenoss CLI: zenmodeler run -d 192.168.1.50
  → Log prüfen: tail -f /opt/zenoss/log/zenmodeler.log

5. Monitoring-Template mit Datasources und Thresholds anlegen

In Zenoss definiert ein Monitoring-Template vollständig, welche OIDs abgefragt (Datasources / Datapoints) und welche Schwellwerte überwacht (Thresholds) werden. Das Template wird der Device-Klasse /Devices/Environmental/Didactum zugewiesen und gilt automatisch für alle Geräte dieser Klasse.

Wichtig – Temperaturschwellwerte: Das Didactum-Gerät liefert Temperaturwerte als Rohwert × 10. 25,5 °C = OID-Wert 255. Alle Temperaturschwellen im Monitoring-Template müssen ebenfalls × 10 angegeben werden.

Schritt 1 – Neues Monitoring-Template anlegen

Zenoss Web UI → Advanced → Monitoring Templates → Add Template

  Template Name:  DidactumSensors
  Device Class:   /Devices/Environmental/Didactum
  Description:    SNMP-Monitoring für Didactum Umweltsensoren
  → "Add" klicken

Schritt 2 – Datasources (OID-Abfragen) anlegen

Zenoss Web UI → Advanced → Monitoring Templates → DidactumSensors
  → Datasources → Add Datasource

-- ================================================================
-- Datasource 1: Temperatursensor Messwert (Sensor-ID 101001)
-- ================================================================
  Name:          temperature_value_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.7.101001
  Component:     (leer lassen)
  Enabled:       Ja
  → Speichern

  Datapoint temperature_value_01_value:
    RRD Type:    GAUGE
    Description: Temperatur Sensor 01 Rohwert x10 (235 = 23,5 Grad C)

-- ================================================================
-- Datasource 2: Temperatursensor Status
-- ================================================================
  Name:          temperature_status_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.6.101001
  Enabled:       Ja

  Datapoint temperature_status_01_value:
    RRD Type:    GAUGE
    Description: 0=OK, 1=Alarm, 2=Kein Signal

-- ================================================================
-- Datasource 3: Wassersensor / Leckage (Sensor-ID 107001)
-- ================================================================
  Name:          leakage_value_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.7.107001
  Enabled:       Ja

  Datapoint leakage_value_01_value:
    RRD Type:    GAUGE
    Description: 0=trocken/OK, 1=Wasser erkannt/CRITICAL

-- ================================================================
-- Datasource 4: Luftfeuchtigkeit (Sensor-ID 102001)
-- ================================================================
  Name:          humidity_value_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.7.102001
  Enabled:       Ja

  Datapoint humidity_value_01_value:
    RRD Type:    GAUGE
    Description: Luftfeuchtigkeit in %

-- ================================================================
-- Datasource 5: Türkontakt (Sensor-ID 104001)
-- ================================================================
  Name:          door_contact_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.7.104001
  Enabled:       Ja

  Datapoint door_contact_01_value:
    RRD Type:    GAUGE
    Description: 0=geschlossen/OK, 1=geöffnet/Warning

-- ================================================================
-- Datasource 6: Rauchmelder (Sensor-ID 106001)
-- ================================================================
  Name:          smoke_detector_01
  Type:          SNMP
  OID:           .1.3.6.1.4.1.46501.5.1.1.7.106001
  Enabled:       Ja

  Datapoint smoke_detector_01_value:
    RRD Type:    GAUGE
    Description: 0=kein Rauch/OK, 1=Alarm/CRITICAL

Schritt 3 – Thresholds (Schwellwerte) anlegen

Zenoss Web UI → Advanced → Monitoring Templates → DidactumSensors
  → Thresholds → Add Threshold

-- ================================================================
-- Threshold 1: Temperatur Warning
-- ================================================================
  Name:       Temperatur_Warning
  Type:       MinMaxThreshold
  Datapoints: temperature_value_01_value
  Max Value:  280       (Rohwert 280 = 28,0 Grad C)
  Min Value:  (leer)
  Severity:   Warning
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 2: Temperatur Critical
-- ================================================================
  Name:       Temperatur_Critical
  Type:       MinMaxThreshold
  Datapoints: temperature_value_01_value
  Max Value:  350       (Rohwert 350 = 35,0 Grad C)
  Severity:   Critical
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 3: Temperatur Sensor kein Signal
-- ================================================================
  Name:       Temperatur_NoSignal
  Type:       MinMaxThreshold
  Datapoints: temperature_status_01_value
  Max Value:  1
  Severity:   Warning
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 4: Leckage Critical
-- ================================================================
  Name:       Leckage_Critical
  Type:       MinMaxThreshold
  Datapoints: leakage_value_01_value
  Max Value:  0         (Alarm wenn Wert > 0, also ab 1)
  Severity:   Critical
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 5: Luftfeuchtigkeit Warning
-- ================================================================
  Name:       Humidity_Warning
  Type:       MinMaxThreshold
  Datapoints: humidity_value_01_value
  Max Value:  80
  Severity:   Warning
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 6: Luftfeuchtigkeit Critical
-- ================================================================
  Name:       Humidity_Critical
  Type:       MinMaxThreshold
  Datapoints: humidity_value_01_value
  Max Value:  90
  Severity:   Critical
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 7: Türkontakt geöffnet
-- ================================================================
  Name:       Door_Open_Warning
  Type:       MinMaxThreshold
  Datapoints: door_contact_01_value
  Max Value:  0         (Alarm wenn Wert > 0)
  Severity:   Warning
  Event Class: /Environmental/Didactum
  → Speichern

-- ================================================================
-- Threshold 8: Rauchmelder Critical
-- ================================================================
  Name:       Smoke_Critical
  Type:       MinMaxThreshold
  Datapoints: smoke_detector_01_value
  Max Value:  0         (Alarm wenn Wert > 0)
  Severity:   Critical
  Event Class: /Environmental/Didactum
  → Speichern

Schritt 4 – Template dem Gerät zuweisen und binden

Zenoss Web UI → Infrastructure → Devices → Didactum-Monitor-01
  → Reiter "Monitoring Templates"
  → Template "DidactumSensors" erscheint (durch Device-Klassen-Zuweisung automatisch)
  → Falls nicht: "Add Template" → DidactumSensors wählen → Apply

  → Zenoss startet SNMP-Polling gemäß Template-Definition
  → Nach dem ersten Polling-Zyklus (Standard: 5 Minuten) erscheinen Graphen

6. Event-Klassen für Didactum-Alarme konfigurieren

Zenoss ordnet alle Ereignisse (Events) in Event-Klassen ein. Für Didactum wird eine eigene Event-Klasse angelegt, die Threshold-Alarme und SNMP-Trap-Events zusammenfasst und einheitlich behandelt.

Schritt 1 – Event-Klasse anlegen

Zenoss Web UI → Events → Event Classes → Add Event Class

  Class Path:   /Environmental/Didactum
  Description:  Didactum Environmental Monitoring Alarme

Schritt 2 – Event-Klassen-Mapping für SNMP-Traps anlegen

Zenoss Web UI → Events → Event Classes → /Environmental/Didactum
  → Event Class Mappings → Add Mapping

  -- Mapping 1: Allgemeiner Didactum Alarm-Trap --
  Mapping Name:   DidactumAlarmTrap
  Event Class:    /Environmental/Didactum
  Rule:           oid.startswith(".1.3.6.1.4.1.46501.1.1")
  Severity:       Critical
  Summary:        Didactum Sensor-Alarm: ${evt/oid}
  Message:        Didactum SNMP-Trap von ${evt/device}: ${evt/summary}
  → Speichern

  -- Mapping 2: Trap von neuerem Gerät (Enterprise OID 39052) --
  Mapping Name:   DidactumAlarmTrap_39052
  Rule:           oid.startswith(".1.3.6.1.4.1.39052.1.1")
  Severity:       Critical
  Summary:        Didactum Sensor-Alarm (39052): ${evt/oid}
  → Speichern

Schritt 3 – Event-Transforms konfigurieren (optional)

Zenoss Web UI → Events → Event Classes → /Environmental/Didactum → Transform

  # Python-Transform: Severity nach Sensor-Typ anpassen
  if "leakage" in evt.component.lower() or "smoke" in evt.component.lower():
      evt.severity = 5   # Critical
  elif "temperature" in evt.component.lower():
      if int(evt.current) >= 350:
          evt.severity = 5   # Critical
      else:
          evt.severity = 3   # Warning
  → Speichern

7. SNMP-Trap-Empfang konfigurieren

Schritt 1 – zentrap-Daemon prüfen

Als zenoss-Benutzer auf dem Zenoss-Server:

  zenoss status | grep zentrap
  # Erwartetes Ergebnis: zentrap ... running

Falls zentrap nicht läuft:
  zenoss start zentrap
  # oder:
  supervisorctl start zentrap  (bei Zenoss 6.x / ZSD)

Schritt 2 – Trap-Community in Zenoss konfigurieren

Zenoss Web UI → Advanced → Settings → SNMP Traps

  Trap Port:        162
  Community String: didactum_trap   (muss mit Didactum-Gerät übereinstimmen)
  → Speichern
  → zentrap neu starten: zenoss restart zentrap

Schritt 3 – Trap-Weiterleitung im Didactum Web-Interface setzen

Didactum Web-Interface → Systemeinstellungen → SNMP → Trap-Ziele

  Trap Destination: 192.168.1.100   (IP des Zenoss-Servers)
  Trap Community:   didactum_trap
  Trap Version:     v2c
  Trap Port:        162
  → Speichern

Schritt 4 – Trap-Empfang testen

Im Didactum Web-Interface Test-Trap auslösen:
  Systemeinstellungen → SNMP → "Test Trap senden"

In Zenoss prüfen:
  Zenoss Web UI → Events → Event Console
  → Neues Event mit Device 192.168.1.50 erscheint
  → Event Class: /Environmental/Didactum
  → Severity: Critical
  → Summary: Didactum Sensor-Alarm

zentrap-Log auf dem Server prüfen:
  tail -f /opt/zenoss/log/zentrap.log

8. Benachrichtigungen (Notifications) konfigurieren

Action anlegen (E-Mail)

Zenoss Web UI → Events → Triggers → Actions → Add Action

  Action Name:   Didactum_Email_Admin
  Action Type:   Email
  Host (SMTP):   mail.ihredomain.de
  From:          zenoss@ihredomain.de
  To:            admin@ihredomain.de
  Subject:       [Zenoss] Didactum Alarm: ${evt/device} – ${evt/summary}
  Body:
    Zeitpunkt:   ${evt/firstTime}
    Gerät:       ${evt/device} (${evt/ipAddress})
    Schwere:     ${evt/severity}
    Event Class: ${evt/eventClass}
    Zusammenfassung: ${evt/summary}
    Meldung:     ${evt/message}
    OID:         ${evt/oid}
  → Speichern

Trigger anlegen

Zenoss Web UI → Events → Triggers → Add Trigger

  Trigger Name:   Didactum_Critical_Trigger
  Enabled:        Ja
  Rule:           (evt/eventClass).startswith("/Environmental/Didactum")
                  and evt/severity >= 4   (4=Error / 5=Critical)
  → Speichern

Notification anlegen und Trigger verknüpfen

Zenoss Web UI → Events → Triggers → Notifications → Add Notification

  Notification Name:  Didactum_Sensor_Alert
  Action:             Didactum_Email_Admin
  Trigger:            Didactum_Critical_Trigger
  Delay:              0 Sekunden (sofort)
  Repeat:             300 Sekunden (alle 5 Minuten wiederholen solange Alarm aktiv)
  → Speichern

  Zweite Notification für Warning:
  Trigger:            Didactum_Warning_Trigger  (analog; evt/severity >= 3)
  Delay:              0 Sekunden
  Repeat:             600 Sekunden
  → Speichern

9. Graphen und Dashboard konfigurieren

Graph-Definition im Monitoring-Template anlegen

Zenoss Web UI → Advanced → Monitoring Templates → DidactumSensors → Graph Definitions
  → Add Graph Definition

  -- Graph 1: Temperatur-Trend --
  Graph Name:    Temperatur Sensor 01
  Units:         Rohwert (÷10 = Grad C)
  Graph Points:
    - Datapoint: temperature_value_01_value
      Legend:    Temperatur (Rohwert x10)
      Color:     #e05050
  Threshold Lines:
    - 280 (Warning) / 350 (Critical)
  → Speichern

  -- Graph 2: Luftfeuchtigkeit --
  Graph Name:    Luftfeuchtigkeit Sensor 01
  Units:         %
  Graph Points:
    - Datapoint: humidity_value_01_value
      Legend:    Luftfeuchtigkeit %
  → Speichern

Dashboard-Portlets konfigurieren

Zenoss Web UI → Dashboard → Add Portlet

  Portlet 1: Device Issues
    Filter: Device Class = /Devices/Environmental/Didactum
    Zeigt: Gerätestatus und aktive Events

  Portlet 2: Event View
    Filter: Event Class = /Environmental/Didactum
    Severity: Warning und Critical
    Zeigt: Alle aktiven Didactum-Alarme

  Portlet 3: Network Map
    Filter: /Devices/Environmental/Didactum
    Zeigt: Didactum-Geräte mit Status-Farbkodierung

  Portlet 4: Device Performance (Pro-Version)
    Device: Didactum-Monitor-01
    Template: DidactumSensors
    Graph: Temperatur Sensor 01

10. SNMP OID-Referenz für Didactum-Sensoren

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

FeldOID-SuffixBedeutungBeispiel (Sensor 101001)
Sensor-Index.5.1.1.1.SENSOR_IDInterner Index.1.3.6.1.4.1.46501.5.1.1.1.101001
Sensor-ID.5.1.1.2.SENSOR_IDNumerische Sensor-ID.1.3.6.1.4.1.46501.5.1.1.2.101001
Sensor-Typ.5.1.1.3.SENSOR_IDTyp-Kennziffer.1.3.6.1.4.1.46501.5.1.1.3.101001
Sensor-Name.5.1.1.5.SENSOR_IDBezeichnung (String).1.3.6.1.4.1.46501.5.1.1.5.101001
Sensor-Status.5.1.1.6.SENSOR_ID0=OK, 1=Alarm, 2=Kein Signal.1.3.6.1.4.1.46501.5.1.1.6.101001
Sensor-Messwert.5.1.1.7.SENSOR_IDAktueller Messwert.1.3.6.1.4.1.46501.5.1.1.7.101001

Sensortypen mit vollständigen OIDs und Zenoss-Threshold-Werten

SensortypSensor-IDOID MesswertOID StatusZenoss Threshold (Max Value)
Temperatursensor (digital)101001.1.3.6.1.4.1.46501.5.1.1.7.101001.1.3.6.1.4.1.46501.5.1.1.6.101001Warning Max 280 / Critical Max 350 (Rohwert × 10)
Temperatursensor (analog)201001.1.3.6.1.4.1.39052.5.2.1.7.201001.1.3.6.1.4.1.39052.5.2.1.6.201001Warning Max 280 / Critical Max 350 (× 10)
Wassersensor / Leckage107001.1.3.6.1.4.1.46501.5.1.1.7.107001.1.3.6.1.4.1.46501.5.1.1.6.107001Critical Max 0 (Alarm wenn Wert > 0)
Luftfeuchtigkeit102001.1.3.6.1.4.1.46501.5.1.1.7.102001.1.3.6.1.4.1.46501.5.1.1.6.102001Warning Max 80 / Critical Max 90 (direkt %)
Potentialfreier Kontakt101003.1.3.6.1.4.1.39052.5.1.1.7.101003.1.3.6.1.4.1.39052.5.1.1.6.101003Warning Max 0 (Alarm wenn Wert > 0)
Türkontakt104001.1.3.6.1.4.1.46501.5.1.1.7.104001.1.3.6.1.4.1.46501.5.1.1.6.104001Warning Max 0 (Alarm wenn Wert > 0)
Rauchmelder106001.1.3.6.1.4.1.46501.5.1.1.7.106001.1.3.6.1.4.1.46501.5.1.1.6.106001Critical Max 0 (Alarm wenn Wert > 0)

Sensor-ID ermitteln: Im Didactum Web-Interface unter Systembaum → Sensor auswählen → Details. Die angezeigte Sensor-ID wird als letztes Element an die OID angehängt. Bei mehreren gleichartigen Sensoren erhöht sich die letzte Stelle: 101001, 101002, 101003 usw.

Zenoss Threshold-Logik: MinMaxThreshold löst einen Alarm aus, wenn der Wert den Max Value überschreitet. Für binäre Sensoren (Leckage, Türkontakt, Rauch) daher Max Value = 0 setzen: Alarm sobald Wert > 0. Für Temperatur: Max Value = 280 (Warning) bzw. 350 (Critical) als Rohwert × 10.

11. Nützliche Zenoss-CLI-Befehle

Daemon-Status prüfen

su - zenoss
zenoss status

# Relevante Daemons für Didactum-Integration:
# zenperfsnmp  – SNMP-Polling
# zentrap      – SNMP-Trap-Empfang
# zenactions   – E-Mail-Benachrichtigungen
# zenmodeler   – Device-Modeling

SNMP-Verbindung testen

# snmpwalk – alle Sensor-Werte auflisten
snmpwalk -v 2c -c didactum_zenoss 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1

# snmpget – Temperaturwert abfragen (Rohwert ÷ 10 = °C)
snmpget -v 2c -c didactum_zenoss 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1.7.101001
# Erwartete Ausgabe: INTEGER: 235  (= 23,5 °C)

# snmpget – Leckage-Status
snmpget -v 2c -c didactum_zenoss 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1.7.107001
# Erwartete Ausgabe (trocken): INTEGER: 0

# snmpget – Sensor-Status
snmpget -v 2c -c didactum_zenoss 192.168.1.50 \
    .1.3.6.1.4.1.46501.5.1.1.6.101001
# Erwartete Ausgabe (OK): INTEGER: 0

Device-Modeling manuell anstoßen

zenmodeler run -d 192.168.1.50 --debug
tail -f /opt/zenoss/log/zenmodeler.log

SNMP-Polling-Status prüfen

zenperfsnmp run -d 192.168.1.50 --debug
tail -f /opt/zenoss/log/zenperfsnmp.log

MIB manuell laden

zenmib run /opt/zenoss/share/mibs/site/didactum.mib --debug

12. Fehlersuche und Lösungen

ProblemUrsache & Lösung
Device-Modeling schlägt fehlSNMP auf dem Didactum-Gerät nicht aktiviert; Community String in zProperties falsch; UDP-Port 161 durch Firewall blockiert → snmpwalk direkt vom Zenoss-Server aus testen; zProperties der Device-Klasse prüfen
zenmib meldet Fehler beim MIB-ImportAbhängige MIBs fehlen (SNMPv2-SMI, RFC1213-MIB) → Basis-MIBs aus /opt/zenoss/share/mibs/ referenzieren; alternativ DIDACTUM-MIB.txt aus Abschnitt 3 verwenden; zenmib run --debug für Details
OID liefert „No Such Object"Falsche Enterprise OID (46501 vs. 39052) → sysObjectID per snmpwalk prüfen: snmpwalk -v 2c -c COMMUNITY IP .1.3.6.1.2.1.1.2.0
Temperaturwert erscheint 10× zu hochKein Fehler – Didactum liefert Rohwert × 10. Zenoss MinMaxThreshold Max Value als × 10-Wert setzen (28 °C = 280). Graph-Label auf ÷10 = °C anpassen.
Threshold löst keinen Event ausMinMaxThreshold-Logik: Alarm wenn Wert > Max Value. Für binäre Sensoren Max Value = 0 setzen. zenperfsnmp läuft? → zenoss status | grep zenperfsnmp
SNMP-Traps kommen nicht in der Event Console anzentrap-Daemon nicht aktiv → zenoss start zentrap; Trap-Ziel-IP im Didactum-Gerät falsch; UDP-Port 162 durch Firewall blockiert; Trap-Community stimmt nicht überein → tail -f /opt/zenoss/log/zentrap.log
Trap-Event ohne Event-Klassen-MappingEvent landet in /Unknown statt /Environmental/Didactum → Event Class Mapping für Trap-OID .1.3.6.1.4.1.46501.1.1 anlegen (Abschnitt 6)
Keine E-Mail bei Alarmzenactions-Daemon nicht aktiv; SMTP-Konfiguration fehlt; Trigger-Regel trifft nicht zu; Notification nicht aktiv → zenoss status | grep zenactions; Trigger-Regel in der Web UI testen
Graphen zeigen keine DatenErstes Polling-Intervall (Standard: 5 Minuten) noch nicht abgelaufen; Datasource-OID falsch → zenperfsnmp-Log prüfen; Datasource-OID im Template verifizieren
Monitoring-Template wird nicht angewendetTemplate der falschen Device-Klasse zugewiesen; Gerät in falscher Device-Klasse → Devices → Didactum-Monitor-01 → Device Class prüfen; Template explizit binden

13. Abschluss-Checkliste

Didactum-Gerät

  • SNMP aktiviert (v2c)
  • Community String gesetzt (nicht „public"): didactum_zenoss
  • Trap-Ziel auf IP des Zenoss-Servers gesetzt
  • Trap-Community gesetzt: didactum_trap
  • MIB-Datei heruntergeladen (didactum.mib)
  • snmpwalk vom Zenoss-Server erfolgreich

Zenoss Server

  • DIDACTUM-MIB in /opt/zenoss/share/mibs/site/ kopiert und per zenmib kompiliert
  • MIB-Auflösung in der Zenoss Web UI unter Advanced → MIBs verifiziert
  • Device-Klasse /Devices/Environmental/Didactum angelegt
  • zProperties der Device-Klasse gesetzt (Community, Version, Port)
  • Gerät Didactum-Monitor-01 angelegt und Device-Modeling erfolgreich
  • Monitoring-Template DidactumSensors angelegt
  • Alle 6 Datasources (OIDs) im Template angelegt
  • Alle 8 Thresholds im Template angelegt
  • Temperaturschwellen als Rohwert × 10 gesetzt (Warning Max 280 / Critical Max 350)
  • Binäre Sensor-Thresholds mit Max Value 0 gesetzt (Alarm wenn Wert > 0)
  • Template der Device-Klasse zugewiesen und am Gerät gebunden
  • Event-Klasse /Environmental/Didactum angelegt
  • Event-Klassen-Mappings für Trap-OIDs angelegt
  • zentrap-Daemon aktiv (UDP-Port 162)
  • Trap-Community in Zenoss Advanced → Settings gesetzt
  • Trigger und Notification für E-Mail-Benachrichtigung konfiguriert
  • zenactions-Daemon aktiv

Tests & Verifizierung

  • Device-Modeling abgeschlossen (sysDescr erscheint in Device-Details)
  • Erste Graphen-Daten nach einem Polling-Zyklus (5 Minuten) vorhanden
  • Temperatur-Graph zeigt Rohwerte (÷10 = °C)
  • Test-Trap über Didactum Web-Interface ausgelöst → Event in Event Console erscheint
  • Event-Klasse: /Environmental/Didactum (durch Mapping korrekt zugeordnet)
  • E-Mail bei Test-Alarm empfangen
  • Dashboard-Portlets zeigen Didactum-Gerätestatus und Events
  • Threshold-Test: snmpwalk bestätigt Rohwert; Schwellwert manuell über Testwert setzen → Event wird erzeugt

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.