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

Didactum Monitoring & Monitorix Integration

Vollständige Schritt-für-Schritt-Anleitung zur Einbindung von Didactum Monitoring-Geräten und Sensoren in Monitorix via SNMP – inklusive SNMP-Test, Shell-Skripte, ambsens.pm-Konfiguration, MIB-Import-Vorlage, Alert-Konfiguration und Fehlerbehebung.

Produkthinweis: Monitorix ist ein leichtgewichtiges Open-Source-System-Monitoring-Tool für Linux. Es verfügt über kein natives SNMP-Modul, aber das Ambient-Sensor-Modul (ambsens.pm) kann beliebige Shell-Befehle als Datenquelle nutzen – ideal für SNMP-Polling via snmpget. Diese Anleitung deckt die vollständige Integration ab.

  • Software: Monitorix ≥ 3.9
  • 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

Monitorix-Host

  • Monitorix ≥ 3.9 installiert (Debian/Ubuntu/RHEL)
  • Paket snmp und bc installiert
  • UDP-Port 161 ausgehend zum Didactum-Gerät geöffnet
  • Netzwerkzugang zum Didactum-Gerät vorhanden

Didactum-Gerät

  • Monitoring System 100, 500, 500 II oder 550T
  • SNMP aktiviert (v2c empfohlen)
  • Gerät per ICMP vom Monitorix-Host erreichbar
  • MIB-Datei im Web-Interface verfügbar

Architektur & Datenfluss

[Monitorix Host]                        [Didactum Monitoring System]
  IP: 192.168.1.10                        IP: 192.168.1.50
  ambsens.pm (alle 5 Min.)
  Shell-Skript: didactum_sensor.sh
                    -- SNMP Polling UDP 161 (snmpget) -->
                    <-- INTEGER-Wert (z.B. 215 = 21,5 °C) ------

Benötigte Pakete installieren

# Debian / Ubuntu
sudo apt install snmp snmp-mibs-downloader bc monitorix

# RHEL / Rocky / AlmaLinux
sudo dnf install net-snmp-utils bc monitorix

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

Preferences → SNMP

Schritt 3 – Folgende Werte eintragen

Feld im Didactum Web-InterfaceWert
SNMP aktivierenAktiviert
SNMP-Versionv2c (empfohlen)
Community Stringdidactum_mon (nicht „public“ verwenden!)
SNMP-Port161

Einstellungen speichern. SNMP-Verbindung vorab vom Monitorix-Host testen:

snmpwalk -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1

MIB-Datei herunterladen und bereitstellen

# Im Didactum Web-Interface:
# Preferences → SNMP → Download MIB file

# Heruntergeladene MIB auf den Monitorix-Host kopieren
sudo cp DIDACTUM-MIB.mib /usr/share/snmp/mibs/

# MIB-Nutzung aktivieren
sudo sed -i 's/^mibs :#/mibs :/' /etc/snmp/snmp.conf

3. SNMP OID-Referenz

Alle Didactum-OIDs beginnen mit .1.3.6.1.4.1.46501 (ältere/aktuelle Firmware). 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 (String).1.3.6.1.4.1.46501.5.1.1.5.101001
.6.x.SENSOR_IDStatus (0=Normal, 1=Warnung, 2=Kritisch, 3=Fehler).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 Skalierung

SensortypSensor-IDOID MesswertSkalierungBeispiel
Temperatursensor Port 1101001.1.3.6.1.4.1.46501.5.1.1.7.101001Rohwert ÷ 10 = °C215 = 21,5 °C
Temperatursensor Port 2101002.1.3.6.1.4.1.46501.5.1.1.7.101002Rohwert ÷ 10 = °C235 = 23,5 °C
Luftfeuchtesensor Port 1102001.1.3.6.1.4.1.46501.5.1.1.7.102001Direktwert = %rH65 = 65 %rH
Kombisensor Temperatur (CAN)103001.1.3.6.1.4.1.46501.5.1.1.7.103001Rohwert ÷ 10 = °C220 = 22,0 °C
Kombisensor Luftfeuchte (CAN)103002.1.3.6.1.4.1.46501.5.1.1.7.103002Direktwert = %rH60 = 60 %rH
Türkontakt104001.1.3.6.1.4.1.46501.5.1.1.7.1040010 = geschlossen, 1 = geöffnet
Rauchmelder106001.1.3.6.1.4.1.46501.5.1.1.7.1060010 = OK, 1 = Alarm
Wassersensor / Leckage (Spot)107001.1.3.6.1.4.1.46501.5.1.1.7.1070010 = trocken, 1 = Wasser erkannt
Wassersensor / Leckage (Kabel)107002.1.3.6.1.4.1.46501.5.1.1.7.1070020 = trocken, 1 = Wasser erkannt
Systemzustand (Gerät).1.3.6.1.4.1.46501.1.1.00 = OK, 1 = Warnung, 2 = Kritisch

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

Alle Sensor-IDs per snmpwalk ermitteln:

# Alle Sensornamen auflisten
snmpwalk -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.5

# Alle Messwerte auflisten
snmpwalk -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7

4. SNMP-Abfrage testen

Bevor Monitorix konfiguriert wird, sollten einzelne OIDs manuell getestet werden.

# Temperaturwert von Sensor 101001 abfragen
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001

# Erwartete Ausgabe (Beispiel):
# iso.3.6.1.4.1.46501.5.1.1.7.101001 = INTEGER: 215
# Auswertung: 215 / 10 = 21,5 Grad Celsius

# Statuswert abfragen (0=Normal, 1=Warnung, 2=Kritisch)
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.6.101001

# Leckage-Sensor abfragen (0=trocken, 1=Wasser erkannt)
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.107001

Fehlermeldung „Timeout: No Response“? 

Prüfen Sie: Firewall (UDP Port 161 offen?), Community String korrekt, SNMP im Didactum Web-Interface aktiviert.

5. Shell-Skript für Monitorix erstellen

Das ambsens.pm-Modul erwartet, dass ein Shell-Befehl einen einzelnen numerischen Wert zurückgibt. Erstellen Sie folgendes universelles Wrapper-Skript:

/usr/local/bin/didactum_sensor.sh

#!/bin/bash
# Universelles Didactum-Sensor-Skript fuer Monitorix ambsens.pm
# Verwendung: didactum_sensor.sh [temp1|temp2|hum1|leak1|leak2|door1|smoke1]

DIDACTUM_IP="192.168.1.50"
COMMUNITY="didactum_mon"

case "$1" in
  temp1)  OID=".1.3.6.1.4.1.46501.5.1.1.7.101001"; SCALE=10 ;;
  temp2)  OID=".1.3.6.1.4.1.46501.5.1.1.7.101002"; SCALE=10 ;;
  hum1)   OID=".1.3.6.1.4.1.46501.5.1.1.7.102001"; SCALE=1  ;;
  leak1)  OID=".1.3.6.1.4.1.46501.5.1.1.7.107001"; SCALE=1  ;;
  leak2)  OID=".1.3.6.1.4.1.46501.5.1.1.7.107002"; SCALE=1  ;;
  door1)  OID=".1.3.6.1.4.1.46501.5.1.1.7.104001"; SCALE=1  ;;
  smoke1) OID=".1.3.6.1.4.1.46501.5.1.1.7.106001"; SCALE=1  ;;
  *)      echo "0"; exit 1 ;;
esac

VALUE=$(snmpget -v2c -c ${COMMUNITY} -Oqv ${DIDACTUM_IP} ${OID} 2>/dev/null)
[ -z "$VALUE" ] && echo "0" && exit 1

if [ "$SCALE" -gt 1 ]; then
  echo "scale=1; ${VALUE} / ${SCALE}" | bc
else
  echo "${VALUE}"
fi
# Skript ausfuehrbar machen und testen
sudo chmod +x /usr/local/bin/didactum_sensor.sh

/usr/local/bin/didactum_sensor.sh temp1
# Erwartete Ausgabe: 21.5

/usr/local/bin/didactum_sensor.sh leak1
# Erwartete Ausgabe: 0

6. Monitorix konfigurieren (ambsens.pm)

Schritt 1 – Modul aktivieren

In /etc/monitorix/monitorix.conf im Abschnitt <graph_enable>:

<graph_enable>
    ...
    ambsens = y
    ...
</graph_enable>

Schritt 2 – Grafiktitel setzen

<graph_name>
    ambsens = Didactum_Sensoren
</graph_name>

<graph_title>
    ambsens = Didactum Umgebungsueberwachung
</graph_title>

Schritt 3 – ambsens-Block konfigurieren

Neue Datei anlegen: /etc/monitorix/conf.d/didactum.conf

# -------------------------------------------------------
# Didactum Monitoring Integration fuer Monitorix ambsens.pm
# Monitorix >= 3.9 erforderlich
# -------------------------------------------------------

<ambsens>
    # Sensor-Gruppen (kommagetrennte Liste)
    list = Temperatur, Luftfeuchte, Leckage, Kontakte

    # Sensor-Namen je Gruppe
    <desc>
        0 = Serverraum Nord, Serverraum Sued, Rack 3
        1 = Feuchte Serverraum, Feuchte Keller
        2 = Leckage Unterflur, Leckage Klimaanlage
        3 = Tuerkontakt, Rauchmelder
    </desc>

    # Shell-Befehle je Sensor (Gruppe_Sensorindex)
    <cmd>
        # Gruppe 0: Temperatursensoren
        0_0 = /usr/local/bin/didactum_sensor.sh temp1
        0_1 = /usr/local/bin/didactum_sensor.sh temp2

        # Gruppe 1: Luftfeuchtesensoren
        1_0 = /usr/local/bin/didactum_sensor.sh hum1

        # Gruppe 2: Leckage-Sensoren
        2_0 = /usr/local/bin/didactum_sensor.sh leak1
        2_1 = /usr/local/bin/didactum_sensor.sh leak2

        # Gruppe 3: Kontaktsensoren
        3_0 = /usr/local/bin/didactum_sensor.sh door1
        3_1 = /usr/local/bin/didactum_sensor.sh smoke1
    </cmd>

    # Anzeigeeinheiten je Gruppe
    <unit>
        0 = Grad C
        1 = %
        2 = Status
        3 = Status
    </unit>

    # Wertebereiche fuer RRD-Graphen (min, max)
    <limit>
        0 = -10, 60
        1 = 0, 100
        2 = 0, 1
        3 = 0, 1
    </limit>

    # Alarmierung: Schwelle, Intervall (Sek.), Skript
    <alerts>
        0_0 = 30, 300, /usr/local/bin/didactum-alert.sh
        0_1 = 30, 300, /usr/local/bin/didactum-alert.sh
        2_0 = 1, 60,  /usr/local/bin/didactum-alert.sh
        2_1 = 1, 60,  /usr/local/bin/didactum-alert.sh
        3_1 = 1, 60,  /usr/local/bin/didactum-alert.sh
    </alerts>

    graphs_per_row = 2
</ambsens>

Schritt 4 – Monitorix neu starten

# Konfiguration pruefen
sudo monitorix --check-config

# Dienst neu starten
sudo systemctl restart monitorix

# Logs beobachten
sudo journalctl -u monitorix -f

Hinweis: 

Nach dem ersten Start kann es bis zu 5 Minuten dauern, bevor Graphen erscheinen – Monitorix muss zunächst genügend Datenpunkte in der RRD-Datenbank sammeln.

7. MIB-Import-Konfiguration (fertige Vorlage)

Diese MIB-Datei kann direkt in iReasoning MIB Browser, PRTG, Zabbix oder Nagios importiert werden. Als DIDACTUM-ENV-MIB.mib speichern.

-- ============================================================
-- DIDACTUM-ENV-MIB
-- Vereinfachte MIB-Vorlage fuer Umgebungssensoren
-- Enterprise OID: 1.3.6.1.4.1.46501
-- ============================================================

DIDACTUM-ENV-MIB DEFINITIONS ::= BEGIN

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

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

didactumSensors     OBJECT IDENTIFIER ::= { didactum 5 }
didactumSensorTable OBJECT IDENTIFIER ::= { didactumSensors 1 }
didactumSensorEntry OBJECT IDENTIFIER ::= { didactumSensorTable 1 }

sensorID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Eindeutige Sensor-ID"
    ::= { didactumSensorEntry 1 }

sensorName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Bezeichnung des Sensors (konfigurierbar im WebGUI)"
    ::= { didactumSensorEntry 5 }

sensorStatus OBJECT-TYPE
    SYNTAX      Integer32 (0..3)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Status: 0=Normal 1=Warnung 2=Kritisch 3=Fehler"
    ::= { didactumSensorEntry 6 }

sensorValue OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Messwert: Temp/Hum Rohwert div 10, Leckage 0 oder 1"
    ::= { didactumSensorEntry 7 }

-- Haeufige OIDs:
-- Temperatursensor Port 1: .1.3.6.1.4.1.46501.5.1.1.7.101001
-- Temperatursensor Port 2: .1.3.6.1.4.1.46501.5.1.1.7.101002
-- Luftfeuchte Port 1:      .1.3.6.1.4.1.46501.5.1.1.7.102001
-- Kombisensor Temp:        .1.3.6.1.4.1.46501.5.1.1.7.103001
-- Kombisensor Hum:         .1.3.6.1.4.1.46501.5.1.1.7.103002
-- Leckage Spot:            .1.3.6.1.4.1.46501.5.1.1.7.107001
-- Leckage Kabel:           .1.3.6.1.4.1.46501.5.1.1.7.107002
-- Tuerkonakt:              .1.3.6.1.4.1.46501.5.1.1.7.104001
-- Rauchmelder:             .1.3.6.1.4.1.46501.5.1.1.7.106001
-- Systemstatus:            .1.3.6.1.4.1.46501.1.1.0

END

Net-SNMP Konfiguration

# /etc/snmp/snmp.conf
mibdirs /usr/share/snmp/mibs:/etc/snmp/mibs
mibs ALL
# Mit symbolischen Namen abfragen (nach MIB-Import)
snmpget -v2c -c didactum_mon 192.168.1.50 DIDACTUM-ENV-MIB::sensorValue.101001

# Alternativ numerische OID -- funktioniert immer ohne MIB-Import
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001

8. Alert-Konfiguration

Monitorix führt bei Schwellenwertüberschreitung ein externes Skript aus. Die Parameter werden als Argumente übergeben.

Empfohlene Schwellenwerte je Sensortyp

Sensor / EventSchwellenwert (ambsens-Konfiguration)Empfohlenes Intervall
Temperatur > 28 °C28 (nach Skalierung durch Skript)300 Sekunden
Temperatur > 35 °C (kritisch)35300 Sekunden
Leckage erkannt (Wert = 1)0.5 (ab Wert 1 = Alarm)60 Sekunden
Rauchmelder (Wert = 1)0.560 Sekunden
Türkontakt geöffnet (Wert = 1)0.560 Sekunden
Luftfeuchtigkeit > 80 %80300 Sekunden

/usr/local/bin/didactum-alert.sh

#!/bin/bash
# Monitorix Alert-Skript fuer Didactum Sensoren
# Parameter: $1=Zeitintervall $2=Schwelle $3=aktueller Wert $4=Richtung

INTERVAL=$1
THRESHOLD=$2
VALUE=$3
DIRECTION=$4

TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
LOGFILE="/var/log/didactum-alerts.log"
MAIL_TO="admin@ihredomain.de"

echo "[${TIMESTAMP}] ALARM! Wert=${VALUE} Schwelle=${THRESHOLD} Richtung=${DIRECTION}" >> ${LOGFILE}

echo "DIDACTUM SENSOR ALARM
Zeitpunkt:   ${TIMESTAMP}
Sensor-Wert: ${VALUE}
Schwelle:    ${THRESHOLD}
Richtung:    ${DIRECTION}

Bitte sofort pruefen!" | mail -s "[ALARM] Didactum Sensor - Serverraum" ${MAIL_TO}

exit 0
sudo chmod +x /usr/local/bin/didactum-alert.sh

9. Test & Fehlerbehebung

SNMP-Verbindung testen

# Vom Monitorix-Host aus:
snmpwalk -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1

# Temperaturwert (Rohwert / 10 = Grad Celsius)
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001

# Leckage-Status (0=trocken, 1=Wasser)
snmpget -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.107001

# Skript manuell testen
/usr/local/bin/didactum_sensor.sh temp1
/usr/local/bin/didactum_sensor.sh leak1

Fehlermeldungen und Lösungen

ProblemUrsache & Lösung
Timeout / No ResponseCommunity String falsch; SNMP am Didactum nicht aktiv; UDP 161 blockiert → snmpwalk testen
snmpget: Unknown OIDMIB nicht geladen → numerische OID verwenden oder MIB in /usr/share/snmp/mibs/ ablegen
Keine Graphen in MonitorixZu wenige Datenpunkte oder Konfigurationsfehler → journalctl -u monitorix -f beobachten, 5–10 Min. warten
Falscher Temperaturwert (10× zu hoch)Skalierung vergessen → Skript gibt Rohwert aus, bc-Berechnung im Skript prüfen
Leckage zeigt immer 0Falsche Sensor-ID → snmpwalk ausführen und korrekte OID ermitteln
Skript hat keine BerechtigungMonitorix läuft als anderer User → chmod +x und ggf. sudo-Regel anlegen
RRD-Daten fehlen nach NeukonfigurationRRD-Datei neu erstellen → rm /var/lib/monitorix/ambsens.rrd und Monitorix neu starten

Monitorix Logs einsehen

# Monitorix-Status
sudo systemctl status monitorix

# Live-Logs
sudo journalctl -u monitorix -n 50

# Alle Sensoren auf einen Blick
snmpwalk -v2c -c didactum_mon 192.168.1.50 .1.3.6.1.4.1.46501.5

# RRD-Datenbank pruefen
rrdtool info /var/lib/monitorix/ambsens.rrd | head -30

10. Abschluss-Checkliste

Didactum-Gerät

  • SNMP aktiviert (v2c oder v3)
  • Community String gesetzt (nicht „public“): didactum_mon
  • Gerät per Ping vom Monitorix-Host erreichbar
  • MIB-Datei heruntergeladen und in /usr/share/snmp/mibs/ abgelegt
  • snmpwalk vom Monitorix-Host erfolgreich

Shell-Skript

  • /usr/local/bin/didactum_sensor.sh angelegt
  • Skript ist ausführbar (chmod +x)
  • Manueller Aufruf liefert korrekte Zahlenwerte
  • IP-Adresse und Community String im Skript angepasst

Monitorix-Konfiguration

  • ambsens = y in graph_enable gesetzt
  • /etc/monitorix/conf.d/didactum.conf angelegt
  • Sensor-Gruppen und Shell-Befehle konfiguriert
  • Monitorix-Dienst neu gestartet
  • Graphen erscheinen im Web-Interface nach 5–10 Minuten

Alerting & Benachrichtigung

  • Alert-Skript /usr/local/bin/didactum-alert.sh angelegt und ausführbar
  • E-Mail-Adresse im Alert-Skript angepasst
  • Schwellenwerte in <alerts>-Block konfiguriert
  • Test-Alarm ausgelöst und 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.