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

Didactum Monitoring-Geräte und Sensoren – Integration in Andrisoft Wanguard

Diese Anleitung beschreibt die Integration von Didactum Monitoring-Geräten in Andrisoft Wanguard (Version 8.x). Sie erläutert die realistischen Möglichkeiten und Grenzen dieser Kombination, die empfohlene Integrationsarchitektur und die konkreten Konfigurationsschritte für SNMP-basiertes Monitoring, SNMP-Trap-Verarbeitung und ergänzende Alarmierung.

Wichtiger Hinweis zur Plattform: 

Andrisoft Wanguard ist primär eine Netzwerk-DDoS-Detection- und Bandbreitenmonitoring-Lösung. Der integrierte SNMP-Sensor ist für die Bandbreitenüberwachung von Netzwerkgeräten (Router, Switches) optimiert – nicht für Umweltsensoren wie Temperatur oder Leckage. Die vollständige Überwachung von Didactum-Sensoren erfordert daher eine hybride Architektur, die in dieser Anleitung beschrieben wird.

1. Grundlagen: Wanguard und Didactum – Architektur und Möglichkeiten

1.1 Was Wanguard kann – und was nicht

Andrisoft Wanguard ist eine Enterprise-Software für die Überwachung und den Schutz von WAN-Netzwerken gegen DDoS-Angriffe. Der integrierte SNMP-Sensor überwacht Netzwerkgeräte – primär deren Schnittstellenauslastung (Bandbreite, Traffic-Counters). Umweltsensoren wie Temperatur oder Leckage sind kein primärer Anwendungsfall von Wanguard.

FunktionWanguard SNMP-SensorFür Didactum geeignet?
Bandbreitenüberwachung (ifInOctets, ifOutOctets)Ja, primärer ZweckNein (Didactum hat keine Netzwerk-Interfaces)
Gerät als SNMP-Node registrierenJaJa – für Geräteverfügbarkeit (Ping/SNMP)
Benutzerdefinierte OID-AbfrageBegrenzt (via Skripte)Ja – für Temperatur, Leckage usw.
SNMP-Trap-EmpfangJa (via snmptrapd + Skript)Ja – für proaktive Didactum-Alarme
Schwellwert-Alarmierung für UmweltsensorenNur via externe SkripteBedingt – mit Custom Response Scripts
Grafische Trendanzeige für SensorwerteNein (nativ)Nein – externes Tool erforderlich
DDoS-Erkennung auf NetzwerkebeneJa, KernfunktionNicht relevant für Didactum

1.2 Empfohlene Integrationsarchitektur

Da Wanguard für Umweltsensor-Monitoring nicht primär ausgelegt ist, empfiehlt sich eine hybride Architektur:

  • Wanguard: Netzwerküberwachung, DDoS-Schutz, Bandbreitenmonitoring – Didactum-Gerät als SNMP-Node für Verfügbarkeitsüberwachung und Trap-Empfang
  • Ergänzendes Tool (Nagios, Icinga 2, Checkmk, NetXMS o.ä.): Vollständige Sensor-Überwachung mit Schwellwerten, Trendgrafiken und Alarmierung für Temperatur, Leckage, Feuchte usw.
  • SNMP-Traps: Didactum sendet Traps an beide Systeme – Wanguard reagiert auf netzwerkrelevante Ereignisse, das Monitoring-Tool auf Umweltereignisse

1.3 Wanguard-Komponenten

KomponenteFunktion
Wanguard ConsoleWeb-basierte Verwaltungsoberfläche, zentrale Konfiguration und Reports
Wanguard Sensor (SNMP)Abfrage von SNMP-Geräten, primär Bandbreitenmonitoring
Wanguard Sensor (Flow/Packet)NetFlow/sFlow-Analyse, Paketerfassung – nicht relevant für Didactum
Wanguard FilterDDoS-Mitigation – nicht relevant für Didactum
Response ScriptsBenutzerdefinierte Skripte bei Anomalieerkennung – nutzbar für Didactum-Integration
REST-APIVollständige programmatische Steuerung – nutzbar für Custom-Integration

2. Voraussetzungen

  • Andrisoft Wanguard 8.x (Wanguard oder Wansight Lizenz)
  • Linux-Server mit Wanguard Console und Sensor (Ubuntu 20.04/22.04 oder RHEL/CentOS 8+ empfohlen)
  • SNMP-Tools (snmpwalk, snmpget, snmptrapd) auf dem Wanguard-Server
  • Didactum Monitoring-Gerät im Netzwerk erreichbar, SNMP aktiviert
  • UDP Port 161 vom Wanguard-Server zum Didactum-Gerät freigegeben
  • UDP Port 162 auf dem Wanguard-Server für SNMP-Traps freigegeben
  • SNMP-Community-String bekannt (Standard: public)
  • Für vollständiges Sensor-Monitoring: Nagios, Icinga 2, Checkmk oder NetXMS als ergänzendes Tool

Beispiel-Netzwerkkonfiguration

GerätIP-AdresseRolle
Wanguard-Server192.168.1.95Netzwerkmonitoring, DDoS-Schutz, SNMP-Trap-Empfang
Didactum Monitoring Unit192.168.1.100Überwachtes Gerät (SNMP-Agent)

3. SNMP-Vorbereitung am Didactum-Gerät

3.1 SNMP aktivieren

  1. Didactum Web-Interface aufrufen: 192.168.1.100, Login mit Admin-Konto.
  2. Navigation: Einstellungen → Netzwerk → SNMP (oder: Settings → Network → SNMP).
  3. Folgende Parameter setzen:
    • SNMP aktiviert: Ja
    • SNMP-Version: v2c
    • Community-String: public (in Produktion ändern)
    • SNMP-Port: 161
    • Allowed Managers: IP des Wanguard-Servers (192.168.1.95) eintragen
    • SNMP Trap Receiver: IP des Wanguard-Servers, Port 162
  4. Einstellungen speichern.

3.2 Erreichbarkeit vom Wanguard-Server testen

# SNMP Walk – alle Didactum-OIDs:
snmpwalk -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854
 
# Temperatur Sensor 1:
snmpget -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1
 
# System-Beschreibung:
snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.1.1.0

Hinweis: 

Didactum gibt Temperatur- und Spannungswerte mit Faktor 10 zurück (235 = 23,5°C). In eigenen Skripten entsprechend dividieren.

4. Wanguard vorbereiten

4.1 Wanguard Console aufrufen

# Wanguard-Dienste prüfen:
sudo systemctl status wanguard-console
sudo systemctl status wanguard-sensor
 
# Web-Interface aufrufen:
# 192.168.1.95 (Standard-Port 443 oder konfigurierter Port)

4.2 SNMP-Tools installieren

# Debian / Ubuntu:
sudo apt update
sudo apt install snmp snmpd snmp-mibs-downloader snmptrapd -y
 
# RHEL / CentOS / Rocky Linux:
sudo dnf install net-snmp net-snmp-utils -y

4.3 Didactum MIB-Datei einbinden

# MIB-Datei ins System-MIB-Verzeichnis kopieren:
sudo cp DIDACTUM-RACKMONI2-MIB.mib /usr/share/snmp/mibs/
 
# In /etc/snmp/snmp.conf aktivieren:
echo "mibs +DIDACTUM-RACKMONI2-MIB" | sudo tee -a /etc/snmp/snmp.conf
 
# Test mit MIB-Namen:
snmpget -v2c -c public -m +DIDACTUM-RACKMONI2-MIB \
  192.168.1.100 tempValue.1

4.4 Wanguard-Server-Konfiguration prüfen

  1. Wanguard Console aufrufen.
  2. Navigation: Configuration → Servers.
  3. Server-Status prüfen – alle Komponenten sollten Online zeigen.
  4. Navigation: Configuration → IP Zones – vorhandene IP-Zone prüfen oder neue anlegen, die das Netzwerksegment des Didactum-Geräts enthält.

5. Didactum als SNMP-Sensor konfigurieren

Der Wanguard SNMP-Sensor ist primär für Bandbreitenmonitoring ausgelegt. Für das Didactum-Gerät nutzen wir ihn zur Verfügbarkeitsüberwachung und als Ankerpunkt für Custom-Skripte.

5.1 SNMP-Sensor anlegen

  1. Wanguard Console: Navigation: Configuration → Components → [+] Add.
  2. Typ: SNMP Sensor auswählen.
  3. Folgende Felder ausfüllen:
    • Sensor Name: Didactum-Rack01
    • Device Group: Rack-Monitoring (Organisationsbezeichnung)
    • Sensor Server: Wanguard-Server auswählen
    • Device IP:Port: 192.168.1.100:161
    • SNMP Protocol: SNMP version 2c
    • Community String: public
    • Polling Interval: 60 Sekunden
    • Timeout (ms): 2000
    • Retries: 3
  4. Unter Interface Discovery: Off auswählen (Didactum hat keine relevanten Netzwerk-Interfaces).
  5. Unter Sensor License: Wanguard oder Wansight je nach verfügbarer Lizenz.
  6. Speichern.

5.2 SNMP-Tester verwenden

Wanguard enthält einen integrierten SNMP-Tester. Über die Schaltfläche neben dem Feld Device IP:Port lässt sich ein SNMP-Walk des Didactum-Geräts direkt aus der Console starten. Dies dient der Überprüfung der Erreichbarkeit und zur Ermittlung verfügbarer OIDs.

5.3 Für SNMP v3

  1. SNMP Protocol: SNMP version 3 auswählen.
  2. Zusätzliche Felder:
    • Security Level: authPriv (empfohlen)
    • Security Name: SNMP-v3-Benutzername vom Didactum-Gerät
    • Authentication Protocol: SHA
    • Authentication Passphrase: Authentifizierungspasswort
    • Privacy Protocol: AES
    • Privacy Passphrase: Verschlüsselungspasswort

5.4 Sensor im Event-Log prüfen

  1. Navigation: Events → Event Log.
  2. Filter: Sensor-Name Didactum-Rack01.
  3. Eintrag SNMP Sensor started bestätigt erfolgreiche Konfiguration.
  4. Fehlermeldungen wie SNMP timeout oder No such object zeigen Konfigurationsprobleme an.

6. Benutzerdefinierte SNMP-Abfragen per Skript

Da der native Wanguard SNMP-Sensor Umweltsensor-OIDs nicht direkt auswertet, werden die Didactum-Sensorwerte über benutzerdefinierte Shell-Skripte abgefragt. Diese Skripte laufen als Cron-Jobs auf dem Wanguard-Server und können bei Grenzwertüberschreitungen Wanguard-Events erzeugen oder eigenständig Benachrichtigungen versenden.

6.1 Haupt-Überwachungsskript erstellen

sudo nano /opt/wanguard-didactum/didactum_monitor.sh
#!/bin/bash
# =============================================================================
# Didactum Sensor Monitor für Wanguard
# Abfrage von Temperatur, Leckage, Luftfeuchtigkeit, Spannung via SNMP
# Erzeugt bei Grenzwertüberschreitung E-Mail-Alarme und Wanguard-Events
# =============================================================================
 
# Konfiguration
DIDACTUM_IP="192.168.1.100"
SNMP_COMMUNITY="public"
SNMP_VERSION="2c"
LOG_FILE="/var/log/wanguard/didactum_monitor.log"
ALERT_EMAIL="admin@example.com"
WANGUARD_API_URL="https://192.168.1.95/wanguard-api/v3"
WANGUARD_API_KEY="IHR-API-KEY"
 
# Schwellwerte
TEMP_WARN=30        # Warnung bei 30 °C (Rohwert: 300)
TEMP_CRIT=35        # Kritisch bei 35 °C (Rohwert: 350)
HUM_WARN_HIGH=70    # Warnung Feuchte hoch
HUM_WARN_LOW=20     # Warnung Feuchte niedrig
VOLT_WARN_LOW=207   # Warnung Spannung niedrig (V, nach Div. durch 10)
VOLT_WARN_HIGH=253  # Warnung Spannung hoch
 
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
 
# Hilfsfunktion: SNMP-OID abfragen
snmp_get() {
    local oid="$1"
    snmpget -v${SNMP_VERSION} -c ${SNMP_COMMUNITY} \
        -Oqv ${DIDACTUM_IP} ${oid} 2>/dev/null
}
 
# Hilfsfunktion: Alarm senden
send_alert() {
    local severity="$1"
    local message="$2"
    echo "${TIMESTAMP} [${severity}] ${message}" >> "${LOG_FILE}"
    echo -e "Subject: [Wanguard/Didactum] ${severity}: ${message}\n\n${message}\n\nZeit: ${TIMESTAMP}\nGerät: ${DIDACTUM_IP}" \
        | sendmail "${ALERT_EMAIL}" 2>/dev/null
}
 
# ── TEMPERATUR SENSOR 1 ───────────────────────────────────────────────────────
TEMP_RAW=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1")
if [ -n "${TEMP_RAW}" ] && [ "${TEMP_RAW}" -eq "${TEMP_RAW}" ] 2>/dev/null; then
    TEMP=$(echo "scale=1; ${TEMP_RAW} / 10" | bc)
    echo "${TIMESTAMP} Temperatur S1: ${TEMP} °C (Rohwert: ${TEMP_RAW})" >> "${LOG_FILE}"
 
    if [ "${TEMP_RAW}" -ge $((TEMP_CRIT * 10)) ]; then
        send_alert "CRITICAL" "Temperatur Sensor 1 KRITISCH: ${TEMP} °C (Grenzwert: ${TEMP_CRIT} °C) auf ${DIDACTUM_IP}"
    elif [ "${TEMP_RAW}" -ge $((TEMP_WARN * 10)) ]; then
        send_alert "WARNING" "Temperatur Sensor 1 WARNUNG: ${TEMP} °C (Grenzwert: ${TEMP_WARN} °C) auf ${DIDACTUM_IP}"
    fi
fi
 
# ── LECKAGE SENSOR 1 ──────────────────────────────────────────────────────────
LEAK=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1")
if [ "${LEAK}" = "1" ]; then
    send_alert "CRITICAL" "LECKAGE ERKANNT auf ${DIDACTUM_IP} – Sensor 1! Sofortiger Handlungsbedarf!"
fi
 
# ── LECKAGE SENSOR 2 ──────────────────────────────────────────────────────────
LEAK2=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.18.1.4.2")
if [ "${LEAK2}" = "1" ]; then
    send_alert "CRITICAL" "LECKAGE ERKANNT auf ${DIDACTUM_IP} – Sensor 2! Sofortiger Handlungsbedarf!"
fi
 
# ── LUFTFEUCHTIGKEIT SENSOR 1 ─────────────────────────────────────────────────
HUM=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.17.1.3.1")
if [ -n "${HUM}" ] && [ "${HUM}" -eq "${HUM}" ] 2>/dev/null; then
    echo "${TIMESTAMP} Luftfeuchtigkeit S1: ${HUM} % rF" >> "${LOG_FILE}"
    if [ "${HUM}" -gt "${HUM_WARN_HIGH}" ] || [ "${HUM}" -lt "${HUM_WARN_LOW}" ]; then
        send_alert "WARNING" "Luftfeuchtigkeit außerhalb Grenzwert auf ${DIDACTUM_IP}: ${HUM} % rF (OK: ${HUM_WARN_LOW}–${HUM_WARN_HIGH} %)"
    fi
fi
 
# ── SPANNUNG SENSOR 1 ─────────────────────────────────────────────────────────
VOLT_RAW=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.15.1.3.1")
if [ -n "${VOLT_RAW}" ] && [ "${VOLT_RAW}" -eq "${VOLT_RAW}" ] 2>/dev/null; then
    VOLT=$(echo "scale=1; ${VOLT_RAW} / 10" | bc)
    VOLT_INT=$(echo "${VOLT_RAW} / 10" | bc)
    if [ "${VOLT_INT}" -lt "${VOLT_WARN_LOW}" ] || [ "${VOLT_INT}" -gt "${VOLT_WARN_HIGH}" ]; then
        send_alert "WARNING" "Spannung außerhalb Grenzwert auf ${DIDACTUM_IP}: ${VOLT} V (OK: ${VOLT_WARN_LOW}–${VOLT_WARN_HIGH} V)"
    fi
fi
 
# ── TÜRKONTAKT SENSOR 1 ───────────────────────────────────────────────────────
DOOR=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.10.1.3.1")
if [ "${DOOR}" = "1" ]; then
    send_alert "WARNING" "Türkontakt geöffnet auf ${DIDACTUM_IP} – Rack-Tür vorne"
fi
 
# ── RAUCHMELDER SENSOR 1 ──────────────────────────────────────────────────────
SMOKE=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.14.1.3.1")
if [ "${SMOKE}" = "1" ]; then
    send_alert "CRITICAL" "RAUCHMELDER ausgelöst auf ${DIDACTUM_IP}!"
fi
 
exit 0
sudo chmod +x /opt/wanguard-didactum/didactum_monitor.sh
sudo mkdir -p /opt/wanguard-didactum
sudo mkdir -p /var/log/wanguard

6.2 Cron-Job für regelmäßige Abfrage einrichten

sudo crontab -e
# Didactum Sensor-Monitoring alle 5 Minuten:
*/5 * * * * /opt/wanguard-didactum/didactum_monitor.sh
 
# Leckage und Sicherheitssensoren jede Minute:
* * * * * /opt/wanguard-didactum/didactum_leakcheck.sh

6.3 Separates Leckage-Schnellskript (jede Minute)

sudo nano /opt/wanguard-didactum/didactum_leakcheck.sh
#!/bin/bash
# Schnellabfrage für zeitkritische Sensoren (Leckage, Rauch, Tür)
DIDACTUM_IP="192.168.1.100"
SNMP_COMMUNITY="public"
ALERT_EMAIL="admin@example.com"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
 
snmp_get() { snmpget -v2c -c ${SNMP_COMMUNITY} -Oqv ${DIDACTUM_IP} "$1" 2>/dev/null; }
 
# Leckage S1 und S2
for sensor in 1 2; do
    OID=".1.3.6.1.4.1.3854.1.2.2.1.18.1.4.${sensor}"
    VAL=$(snmp_get "${OID}")
    if [ "${VAL}" = "1" ]; then
        echo -e "Subject: [CRITICAL] LECKAGE Sensor ${sensor} auf ${DIDACTUM_IP}\n\nLECKAGE erkannt – Sensor ${sensor} – Sofortiger Handlungsbedarf!\nZeit: ${TIMESTAMP}" \
            | sendmail "${ALERT_EMAIL}"
    fi
done
 
# Rauchmelder
SMOKE=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.14.1.3.1")
if [ "${SMOKE}" = "1" ]; then
    echo -e "Subject: [CRITICAL] RAUCHMELDER auf ${DIDACTUM_IP}\n\nRauchmelder ausgelöst!\nZeit: ${TIMESTAMP}" \
        | sendmail "${ALERT_EMAIL}"
fi
sudo chmod +x /opt/wanguard-didactum/didactum_leakcheck.sh

6.4 Wanguard REST-API für Event-Erzeugung nutzen

Wanguard bietet eine REST-API, über die externe Events in die Console eingespeist werden können:

# Wanguard Event per REST-API anlegen (Beispiel: Leckage-Alarm):
curl -s -X POST \
  "https://192.168.1.95/wanguard-api/v3/events" \
  -H "Authorization: Bearer IHR-API-KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "Custom",
    "severity": "critical",
    "description": "Didactum LECKAGE erkannt auf 192.168.1.100 – Sensor 1",
    "component": "Didactum-Rack01",
    "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
  }'

Diesen API-Aufruf in das Monitoring-Skript integrieren, damit Didactum-Alarme auch in der Wanguard-Console sichtbar sind.

7. OID-Referenz für Wanguard / Didactum

Alle OIDs basieren auf der Didactum Enterprise OID-Basis 1.3.6.1.4.1.3854. Der Platzhalter {n} steht für den Sensorindex (1 = erster Sensor usw.).

7.1 Temperatursensoren

OIDBeschreibungRohwertSkript-FormelSchwellwert (Rohwert)
1.3.6.1.4.1.3854.1.2.2.1.16.1.3.{n}Temperaturwert Sensor n°C × 10$RAW / 10300 = 30 °C, 350 = 35 °C
1.3.6.1.4.1.3854.1.2.2.1.16.1.4.{n}Temperatur-Status Sensor nEnum 0/1/2≥ 1 = Problem
1.3.6.1.4.1.3854.1.2.2.1.16.1.7.{n}Oberer Grenzwert Sensor n°C × 10$RAW / 10Informativ
1.3.6.1.4.1.3854.1.2.2.1.16.1.8.{n}Unterer Grenzwert Sensor n°C × 10$RAW / 10Informativ
1.3.6.1.4.1.3854.1.2.2.1.16.1.2.{n}Sensor-Name nText

7.2 Leckagesensoren

OIDBeschreibungRohwertAlarm-Bedingung
1.3.6.1.4.1.3854.1.2.2.1.18.1.4.{n}Leckage-Status Sensor n0=OK, 1=Leckage= 1 → CRITICAL
1.3.6.1.4.1.3854.1.2.2.1.18.1.3.{n}Leckage-Wert Sensor n0=trocken≥ 1 → CRITICAL
1.3.6.1.4.1.3854.1.2.2.1.18.1.2.{n}Sensor-Name nText

7.3 Luftfeuchtigkeit und weitere Sensoren

OIDBeschreibungRohwertAlarm-Bedingung
1.3.6.1.4.1.3854.1.2.2.1.17.1.3.{n}Luftfeuchtigkeitswert Sensor n% rF> 70 oder < 20 → WARNING
1.3.6.1.4.1.3854.1.2.2.1.17.1.4.{n}Luftfeuchtigkeits-Status nEnum 0/1/2≥ 1 → WARNING
1.3.6.1.4.1.3854.1.2.2.1.15.1.3.{n}Spannungswert Sensor nV × 10< 2070 oder > 2530 → WARNING
1.3.6.1.4.1.3854.1.2.2.1.10.1.3.{n}Türkontakt-Status n0=zu, 1=offen= 1 → WARNING
1.3.6.1.4.1.3854.1.2.2.1.11.1.3.{n}Erschütterung / Bewegung n0=keine, 1=Alarm= 1 → WARNING
1.3.6.1.4.1.3854.1.2.2.1.14.1.3.{n}Rauchmelder-Status n0=OK, 1=Alarm= 1 → CRITICAL
1.3.6.1.2.1.1.3.0System UptimeHundertstelsekunden
1.3.6.1.2.1.1.1.0Gerätebeschreibung (sysDescr)Text

8. Events und Alert-Skripte konfigurieren

8.1 Wanguard Response Scripts für Didactum-Alarme

Wanguard unterstützt benutzerdefinierte Response Scripts, die bei erkannten Anomalien ausgeführt werden. Diese können genutzt werden, um bei netzwerkrelevanten Ereignissen gleichzeitig SNMP-Checks des Didactum-Geräts auszulösen:

  1. Navigation: Configuration → Response Scripts → Add.
  2. Einstellungen:
    • Script Name: Didactum-Status-Check
    • Description: Prüft Didactum-Sensoren bei Netzwerkereignis
    • Execution: Run on anomaly detection
  3. Script-Inhalt: Aufruf des Monitoring-Skripts /opt/wanguard-didactum/didactum_monitor.sh.
  4. Speichern und dem gewünschten Sensor oder IP-Zone zuweisen.

8.2 E-Mail-Benachrichtigung in Wanguard konfigurieren

  1. Navigation: Configuration → Notifications → Email.
  2. SMTP-Server eintragen: Host, Port, Absender, Authentifizierung.
  3. Test-E-Mail senden.
  4. Benachrichtigungsregel für Sensor-Ereignisse anlegen:
    • Trigger: SNMP Sensor Offline (Didactum-Gerät nicht erreichbar)
    • Empfänger: admin@example.com

8.3 Wanguard-interne Ereignisse für Didactum

Wanguard-EreignisUrsacheKonfigurationsort
SNMP Sensor startedSensor erfolgreich gestartetEvent Log
SNMP Sensor stoppedSensor gestoppt oder FehlerEvent Log, Benachrichtigung
SNMP TimeoutDidactum-Gerät nicht erreichbarBenachrichtigung konfigurieren
Custom Script executedResponse Script wurde ausgelöstEvent Log
SNMP Trap receivedTrap vom Didactum-Gerät eingegangenEvent Log (wenn Trap-Handler aktiv)

8.4 Empfohlene Schwellwerte für Skripte

SensorWarning-SchwelleCritical-SchwelleNorm
Temperatur (Rohwert × 10)≥ 300 (30 °C)≥ 350 (35 °C)ASHRAE A1: 15–32 °C
Luftfeuchtigkeit (% rF)> 70 oder < 20> 80 oder < 10ASHRAE: 20–80 % rF
Leckage (0/1)= 1Sofortalarm
Spannung (Rohwert × 10)< 2070 oder > 2530< 1960 oder > 2600EN 50160 ±10 %
Türkontakt / Rauch= 1Policy-abhängig

9. SNMP-Trap-Integration

Wanguard unterstützt SNMP-Traps für eigene Anomaliemeldungen (Wanguard sendet Traps aus). Für den Empfang von Didactum-Traps wird snmptrapd auf dem Wanguard-Server konfiguriert.

9.1 snmptrapd auf dem Wanguard-Server konfigurieren

sudo nano /etc/snmp/snmptrapd.conf
# Didactum-Traps annehmen:
authCommunity log,execute,net public
 
# Trap-Handler für alle Didactum-Traps:
traphandle .1.3.6.1.4.1.3854 /opt/wanguard-didactum/didactum_trap_handler.sh
 
# Logging aktivieren:
doNotLogTraps no
outputOption fq
# snmptrapd aktivieren:
sudo systemctl enable snmptrapd
sudo systemctl start snmptrapd
 
# Firewall-Port freigeben:
sudo ufw allow 162/udp

9.2 Trap-Handler-Skript

sudo nano /opt/wanguard-didactum/didactum_trap_handler.sh
#!/bin/bash
# Didactum SNMP Trap Handler
# Wird von snmptrapd bei eingehenden Didactum-Traps aufgerufen
 
ALERT_EMAIL="admin@example.com"
LOG_FILE="/var/log/wanguard/didactum_traps.log"
WANGUARD_API_URL="https://192.168.1.95/wanguard-api/v3"
WANGUARD_API_KEY="IHR-API-KEY"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
 
# Trap-Informationen lesen:
SOURCE_IP="${1}"
TRAP_OID="${2:-unbekannt}"
 
echo "${TIMESTAMP} TRAP von ${SOURCE_IP}: OID=${TRAP_OID}" >> "${LOG_FILE}"
 
# Leckage-Trap:
if echo "${TRAP_OID}" | grep -q "3854.1.7.2"; then
    MSG="LECKAGE ERKANNT via SNMP Trap von ${SOURCE_IP}!"
    echo -e "Subject: [CRITICAL] Didactum Leckage-Alarm\n\n${MSG}\nZeit: ${TIMESTAMP}" \
        | sendmail "${ALERT_EMAIL}"
    # Wanguard-Event erzeugen:
    curl -s -X POST "${WANGUARD_API_URL}/events" \
      -H "Authorization: Bearer ${WANGUARD_API_KEY}" \
      -H "Content-Type: application/json" \
      -d "{\"type\":\"Custom\",\"severity\":\"critical\",\"description\":\"${MSG}\"}" \
      >> "${LOG_FILE}" 2>&1
fi
 
# Temperatur-Alarm-Trap:
if echo "${TRAP_OID}" | grep -q "3854.1.7.1"; then
    MSG="Temperatur-Alarm via SNMP Trap von ${SOURCE_IP}!"
    echo -e "Subject: [HIGH] Didactum Temperatur-Alarm\n\n${MSG}\nZeit: ${TIMESTAMP}" \
        | sendmail "${ALERT_EMAIL}"
fi
 
# Türkontakt-Trap:
if echo "${TRAP_OID}" | grep -q "3854.1.7.10"; then
    MSG="Türkontakt geöffnet via SNMP Trap von ${SOURCE_IP}!"
    echo -e "Subject: [WARNING] Didactum Türkontakt\n\n${MSG}\nZeit: ${TIMESTAMP}" \
        | sendmail "${ALERT_EMAIL}"
fi
 
# Rauchmelder-Trap:
if echo "${TRAP_OID}" | grep -q "3854.1.7.14"; then
    MSG="RAUCHMELDER ausgelöst via SNMP Trap von ${SOURCE_IP}!"
    echo -e "Subject: [CRITICAL] Didactum Rauchmelder\n\n${MSG}\nZeit: ${TIMESTAMP}" \
        | sendmail "${ALERT_EMAIL}"
fi
sudo chmod +x /opt/wanguard-didactum/didactum_trap_handler.sh

9.3 Wichtige Didactum Trap-OIDs

Trap-OIDEreignisEmpfohlene Reaktion
1.3.6.1.4.1.3854.1.7.1Temperatur-AlarmE-Mail + Wanguard-Event
1.3.6.1.4.1.3854.1.7.2Leckage-AlarmE-Mail + SMS + Wanguard-Event
1.3.6.1.4.1.3854.1.7.3Luftfeuchtigkeits-AlarmE-Mail + Wanguard-Event
1.3.6.1.4.1.3854.1.7.4Spannungs-AlarmE-Mail + Wanguard-Event
1.3.6.1.4.1.3854.1.7.10Türkontakt geöffnetE-Mail
1.3.6.1.4.1.3854.1.7.14Rauchmelder-AlarmE-Mail + SMS + Wanguard-Event
1.3.6.1.4.1.3854.1.7.99Gerät-NeustartLogging

9.4 Trap-Test durchführen

# Test-Trap für Leckage senden:
snmptrap -v2c -c public 192.168.1.95 '' \
  .1.3.6.1.4.1.3854.1.7.2 \
  .1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1 i 1
 
# Trap-Empfang im Log prüfen:
sudo tail -f /var/log/wanguard/didactum_traps.log
 
# snmptrapd-Log:
sudo journalctl -u snmptrapd -f

10. Reports und Dashboards

10.1 Wanguard-Console – Verfügbare Ansichten für Didactum

Wanguard bietet in der Console folgende Ansichten, die für das Didactum-Gerät nutzbar sind:

  • Reports → Devices → Overview: SNMP-Sensor-Status, Geräteverfügbarkeit des Didactum-Nodes
  • Events → Event Log: Alle Wanguard-Events inkl. Custom-Events aus dem Monitoring-Skript
  • Reports → Tools → SNMP Graphs: Bandbreitengrafiken (primär für Netzwerkgeräte, nicht für Umweltsensoren relevant)

10.2 Eigenes Monitoring-Dashboard (HTML) erstellen

Da Wanguard keine nativen Umweltsensor-Dashboards bietet, kann ein einfaches HTML-Dashboard die aktuellen Sensorwerte anzeigen:

sudo nano /opt/wanguard-didactum/dashboard.sh
#!/bin/bash
# Generiert eine einfache HTML-Statusseite für Didactum-Sensoren
 
DIDACTUM_IP="192.168.1.100"
COMMUNITY="public"
OUTPUT="/var/www/html/didactum-status.html"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
 
snmp_get() { snmpget -v2c -c ${COMMUNITY} -Oqv ${DIDACTUM_IP} "$1" 2>/dev/null; }
 
TEMP1_RAW=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1")
TEMP1=$(echo "scale=1; ${TEMP1_RAW:-0} / 10" | bc)
TEMP2_RAW=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.16.1.3.2")
TEMP2=$(echo "scale=1; ${TEMP2_RAW:-0} / 10" | bc)
HUM=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.17.1.3.1")
LEAK1=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1")
LEAK2=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.18.1.4.2")
DOOR=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.10.1.3.1")
VOLT_RAW=$(snmp_get ".1.3.6.1.4.1.3854.1.2.2.1.15.1.3.1")
VOLT=$(echo "scale=1; ${VOLT_RAW:-0} / 10" | bc)
 
# Farben je Status
color_status() {
    [ "$1" = "0" ] && echo "green" || echo "red"
}
temp_color() {
    [ "$1" -ge 350 ] 2>/dev/null && { echo "red"; return; }
    [ "$1" -ge 300 ] 2>/dev/null && { echo "orange"; return; }
    echo "green"
}
 
cat > "${OUTPUT}" <<HTML
<!DOCTYPE html>
<html lang="de">
<head><meta charset="UTF-8">
<meta http-equiv="refresh" content="60">
<title>Didactum Status – Wanguard</title>
<style>
body { font-family: Arial, sans-serif; background: #1a1a2e; color: #eee; padding: 20px; }
h1 { color: #00d4ff; }
.card { background: #16213e; border-radius: 8px; padding: 16px; margin: 8px; display: inline-block; min-width: 180px; }
.ok { color: #00ff88; }
.warn { color: #ffaa00; }
.crit { color: #ff4444; }
.label { font-size: 12px; color: #888; }
.value { font-size: 28px; font-weight: bold; }
.ts { color: #888; font-size: 12px; margin-top: 20px; }
</style>
</head>
<body>
<h1>Didactum Rack Monitoring</h1>
<p class="label">${DIDACTUM_IP} | Letzte Aktualisierung: ${TIMESTAMP}</p>
<div class="card">
  <div class="label">Temperatur Sensor 1</div>
  <div class="value $([ ${TEMP1_RAW:-0} -ge 300 ] && echo warn || echo ok)">${TEMP1} °C</div>
</div>
<div class="card">
  <div class="label">Temperatur Sensor 2</div>
  <div class="value $([ ${TEMP2_RAW:-0} -ge 300 ] && echo warn || echo ok)">${TEMP2} °C</div>
</div>
<div class="card">
  <div class="label">Luftfeuchtigkeit</div>
  <div class="value ok">${HUM} % rF</div>
</div>
<div class="card">
  <div class="label">Leckage Sensor 1</div>
  <div class="value $([ "${LEAK1}" = "0" ] && echo ok || echo crit)">$([ "${LEAK1}" = "0" ] && echo OK || echo ALARM)</div>
</div>
<div class="card">
  <div class="label">Leckage Sensor 2</div>
  <div class="value $([ "${LEAK2}" = "0" ] && echo ok || echo crit)">$([ "${LEAK2}" = "0" ] && echo OK || echo ALARM)</div>
</div>
<div class="card">
  <div class="label">Türkontakt</div>
  <div class="value $([ "${DOOR}" = "0" ] && echo ok || echo warn)">$([ "${DOOR}" = "0" ] && echo Zu || echo OFFEN)</div>
</div>
<div class="card">
  <div class="label">Spannung</div>
  <div class="value ok">${VOLT} V</div>
</div>
</body></html>
HTML
 
echo "Dashboard aktualisiert: ${OUTPUT}"
sudo chmod +x /opt/wanguard-didactum/dashboard.sh
 
# Dashboard alle 5 Minuten aktualisieren:
echo "*/5 * * * * /opt/wanguard-didactum/dashboard.sh" | sudo crontab -

Das Dashboard ist dann unter 192.168.1.95/didactum-status.html erreichbar und aktualisiert sich automatisch alle 60 Sekunden.

11. Empfohlene Hybridarchitektur mit Nagios / Icinga

Für eine vollständige, professionelle Überwachung der Didactum-Sensoren empfiehlt sich die folgende Hybridarchitektur, bei der Wanguard und ein spezialisiertes Monitoring-Tool parallel betrieben werden:

11.1 Aufgabenteilung

AufgabeWanguardNagios / Icinga / Checkmk
DDoS-Erkennung und -MitigationJa (Kernfunktion)Nein
Netzwerkbandbreite (Router, Switches)JaBedingt
Didactum-Geräteverfügbarkeit (Ping/SNMP)JaJa
Temperatur-/Feuchte-/Leckage-ChecksNur via SkriptJa (nativ)
Schwellwert-Alarmierung für UmweltsensorenNur via SkriptJa (nativ)
Trendgrafiken für SensorwerteNeinJa
SNMP-Trap-EmpfangVia snmptrapdVia snmptrapd oder nativ
Langzeitdatenspeicherung (90 Tage+)Nein (Umweltsensoren)Ja (RRD/InfluxDB)

11.2 Didactum SNMP-Traps an beide Systeme senden

Das Didactum-Gerät kann Traps an mehrere Empfänger gleichzeitig senden. Im Didactum Web-Interface unter Einstellungen → Netzwerk → SNMP → Trap Receiver beide IPs eintragen:

  • Trap Receiver 1: 192.168.1.95 (Wanguard-Server, Port 162)
  • Trap Receiver 2: 192.168.1.50 (Nagios/Icinga-Server, Port 162)

11.3 Wanguard-Alert beim Didactum-Trap auslösen

Im Trap-Handler-Skript (Abschnitt 9.2) wird per REST-API ein Wanguard-Custom-Event erzeugt. Gleichzeitig sendet das Nagios/Icinga-System einen eigenen Alert – so sind beide Systeme informiert.

11.4 Verweise auf vollständige Monitoring-Anleitungen

Für die vollständige Integration der Didactum-Sensoren in ein spezialisiertes Monitoring-Tool stehen separate Anleitungen zur Verfügung:

  • Didactum-Integration in Nagios – mit vollständigen check_snmp-Definitionen und SNMP-Trap-Empfang
  • Didactum-Integration in Icinga 2 – mit DSL-Konfiguration, apply-Regeln und Grafite-Integration
  • Didactum-Integration in Checkmk – mit automatischer Service-Discovery und Python-Plugin
  • Didactum-Integration in NetXMS – mit DCI-Templates und Dashboard-Visualisierung

12. Fehlerbehebung (Troubleshooting)

ProblemMögliche Ursache / Lösung
SNMP-Sensor zeigt Timeout im Event-LogFirewall: UDP Port 161 freigegeben? Community-String korrekt? IP des Didactum-Geräts in Device IP:Port korrekt? Test: snmpwalk -v2c -c public 192.168.1.100 vom Wanguard-Server.
Skript erzeugt keine E-Mailssendmail installiert? (apt install sendmail). SMTP-Relay konfiguriert? Skript manuell testen: bash /opt/wanguard-didactum/didactum_monitor.sh. Log prüfen: cat /var/log/wanguard/didactum_monitor.log.
Cron-Job läuft nichtCrontab-Eintrag korrekt? (crontab -l). Cron-Dienst läuft? (systemctl status cron). Skript ausführbar? (ls -l /opt/wanguard-didactum/). Cron-Log prüfen: journalctl -u cron.
Temperaturrohwert falsch (235 statt 23,5)Im Skript: TEMP=$(echo "scale=1; ${TEMP_RAW} / 10" | bc). bc installiert? (apt install bc). Schwellwerte im Skript als Rohwerte (× 10) definiert?
SNMP-Traps kommen nicht anUDP Port 162 freigegeben? (ufw allow 162/udp). snmptrapd läuft? (systemctl status snmptrapd). Trap-Receiver-IP im Didactum-Gerät korrekt? Community-String stimmt?
Wanguard REST-API-Aufruf schlägt fehlAPI-Key gültig? (Configuration → Users → API Keys in Wanguard). SSL-Zertifikat des Wanguard-Servers vertrauenswürdig? (curl -k für Test). API-URL korrekt? (https://... /wanguard-api/v3/).
Dashboard zeigt keine WerteSkript ausführbar? Web-Server (apache2 oder nginx) läuft? Schreibrechte auf /var/www/html/? Skript manuell ausführen und Ausgabe prüfen.
Wanguard-Event-Log zeigt keine Custom-EventsAPI-Key und URL im Skript korrekt? Wanguard-Server erreichbar? Curl-Ausgabe im Log prüfen. Wanguard-API-Dokumentation unter Help → API in der Console.

Diagnose-Befehle Übersicht

# Wanguard-Dienste prüfen:
sudo systemctl status wanguard-console
sudo systemctl status wanguard-sensor
 
# Wanguard-Log:
sudo tail -f /var/log/wanguard/wanguard.log
 
# SNMP-Erreichbarkeit testen:
snmpwalk -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854
 
# Einzelne OID abfragen:
snmpget -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1
 
# Monitoring-Skript manuell ausführen:
bash /opt/wanguard-didactum/didactum_monitor.sh
 
# Didactum-Monitor-Log prüfen:
sudo tail -f /var/log/wanguard/didactum_monitor.log
 
# Trap-Log prüfen:
sudo tail -f /var/log/wanguard/didactum_traps.log
 
# snmptrapd-Log:
sudo journalctl -u snmptrapd -f
 
# Test-Trap senden:
snmptrap -v2c -c public 192.168.1.95 '' \
  .1.3.6.1.4.1.3854.1.7.2 \
  .1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1 i 1
 
# Cron-Log prüfen:
sudo journalctl -u cron | tail -20
 
# Wanguard REST-API testen:
curl -s -k \
  -H "Authorization: Bearer IHR-API-KEY" \
  "https://192.168.1.95/wanguard-api/v3/events" | python3 -m json.tool
 
# Firewall-Status:
sudo ufw status verbose

Anhang: Datei- und Skript-Übersicht

Datei / PfadZweckAusführung
/opt/wanguard-didactum/didactum_monitor.shHaupt-Monitoring: Temperatur, Feuchte, Spannung, TürCron: alle 5 Minuten
/opt/wanguard-didactum/didactum_leakcheck.shSchnellcheck: Leckage, RauchCron: jede Minute
/opt/wanguard-didactum/didactum_trap_handler.shSNMP-Trap-Handler für snmptrapdAutomatisch via snmptrapd
/opt/wanguard-didactum/dashboard.shHTML-Dashboard-GeneratorCron: alle 5 Minuten
/var/log/wanguard/didactum_monitor.logLog-Datei für Monitoring-SkriptAutomatisch befüllt
/var/log/wanguard/didactum_traps.logLog-Datei für SNMP-TrapsAutomatisch befüllt
/var/www/html/didactum-status.htmlHTML-Statusseite (Dashboard)Automatisch generiert
/etc/snmp/snmptrapd.confsnmptrapd-KonfigurationEinmalige Konfiguration

Für firmware-spezifische OIDs und unterstützte Sensortypen immer die aktuelle Didactum-Gerätedokumentation konsultieren. Wanguard-API-Details sind in der Wanguard-Console unter Help → API dokumentiert.

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.