Didactum Monitoring-Geräte und Sensoren – Integration in Nagios
Diese Anleitung beschreibt die vollständige Integration von Didactum Monitoring-Geräten in Nagios (Nagios Core und Nagios XI). Ziel ist die zentrale Überwachung aller angeschlossenen Sensoren – Temperatur, Luftfeuchtigkeit, Leckage, Spannung, Türkontakte und weitere – über das Nagios-Monitoring-System per SNMP.
1. Grundlagen und Architektur
Nagios überwacht das Didactum-Gerät über das SNMP-Protokoll (Simple Network Management Protocol).
Nagios fragt dabei in konfigurierbaren Intervallen bestimmte OIDs (Object Identifiers) vom Gerät ab und wertet die zurückgegebenen Werte gegen definierte Schwellwerte aus.
Überwachungsablauf
- Nagios-Scheduler löst einen Check aus (z.Bsp. alle 5 Minuten).
- Das Nagios-Plugin check_snmp sendet eine SNMP-Abfrage an das Didactum-Gerät (UDP Port 161).
- Das Didactum-Gerät antwortet mit dem aktuellen Sensorwert.
- Das Plugin vergleicht den Wert mit den konfigurierten Warning- und Critical-Schwellwerten.
- Nagios setzt den Service-Status auf OK, WARNING, CRITICAL oder UNKNOWN.
- Bei Statuswechsel werden Benachrichtigungen (E-Mail, SMS, Ticket) ausgelöst.
Nagios Service-Zustände
| Zustand | Bedeutung | Typischer Auslöser |
|---|---|---|
| OK (0) | Alles in Ordnung | Wert innerhalb beider Schwellwerte |
| WARNING (1) | Warnschwelle überschritten | Wert zwischen Warning- und Critical-Schwelle |
| CRITICAL (2) | Kritischer Zustand | Wert jenseits der Critical-Schwelle |
| UNKNOWN (3) | Kein Ergebnis | SNMP Timeout, OID nicht gefunden, Plugin-Fehler |
2. Voraussetzungen
- Nagios Core 4.x oder Nagios XI (aktuelle Version) mit Administrator-Zugriff
- Nagios-Server: Linux (Debian/Ubuntu oder RHEL/CentOS)
- Pakete nagios-plugins und snmp auf dem Nagios-Server installiert
- Didactum Monitoring-Gerät im Netzwerk erreichbar, SNMP aktiviert
- Netzwerkkommunikation: UDP Port 161 vom Nagios-Server zum Didactum-Gerät freigegeben
- SNMP-Community-String bekannt (Standard: public)
- Optional: Didactum MIB-Datei für lesbare OID-Namen
Beispiel-Netzwerkkonfiguration
| Gerät | IP-Adresse | Rolle |
|---|---|---|
| Nagios-Server | 192.168.1.20 | Monitoring-Server |
| Didactum Monitoring Unit | 192.168.1.100 | Überwachtes Gerät |
3. SNMP-Vorbereitung am Didactum-Gerät
3.1 SNMP aktivieren
- Didactum Web-Interface aufrufen: 192.168.1.100, Login mit Admin-Konto.
- Navigation: Einstellungen → Netzwerk → SNMP (oder: Settings → Network → SNMP).
- Folgende Parameter setzen:
- SNMP aktiviert: Ja
- SNMP-Version: v2c (empfohlen) oder v3
- Community-String: public (in Produktion ändern)
- SNMP-Port: 161
- Allowed Managers: IP des Nagios-Servers (192.168.1.20) eintragen
- Einstellungen speichern.
Achtung: Den Standard-Community-String public in Produktivumgebungen ändern. Den gleichen String später in allen Nagios-Check-Kommandos verwenden.
3.2 Erreichbarkeit vom Nagios-Server testen
# SNMP Walk – alle verfügbaren OIDs auflisten: snmpwalk -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854 # Einzelwert abfragen (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 abfragen (Grundtest): snmpget -v2c -c public 192.168.1.100 1.3.6.1.2.1.1.1.0
4. SNMP-Plugins für Nagios installieren
4.1 Benötigte Pakete installieren
# Debian / Ubuntu: sudo apt update sudo apt install nagios-plugins nagios-plugins-extra snmp snmpd snmp-mibs-downloader -y # RHEL / CentOS / Rocky Linux: sudo dnf install nagios-plugins-all net-snmp net-snmp-utils -y
4.2 check_snmp-Plugin testen
# Plugin direkt aufrufen (Pfad je nach Distribution): /usr/lib/nagios/plugins/check_snmp \ -H 192.168.1.100 \ -C public \ -o 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1 \ -w 300 -c 350 \ --label="Temperatur S1"
Erwartete Ausgabe bei 23,5°C (Rohwert 235):
OK - Temperatur S1: 235 | Temperatur S1=235;300;350
4.3 Didactum MIB-Datei einbinden (optional)
# MIB-Datei ins SNMP-MIB-Verzeichnis kopieren: sudo cp DIDACTUM-RACKMONI2-MIB.mib /usr/share/snmp/mibs/ # MIBs in /etc/snmp/snmp.conf aktivieren: echo "mibs +DIDACTUM-RACKMONI2-MIB" | sudo tee -a /etc/snmp/snmp.conf # Test mit MIB-Namen statt OID-Nummer: snmpget -v2c -c public -m +DIDACTUM-RACKMONI2-MIB 192.168.1.100 tempValue.1
Hinweis:
Name der .mib-Datei (auf dem Didactum Gerät nachschauen) kann varieren
5. Host-Definition in Nagios
5.1 Konfigurationsdatei anlegen
Neue Konfigurationsdatei für das Didactum-Gerät erstellen:
sudo nano /etc/nagios/conf.d/didactum.cfg
5.2 Host-Definition
define host {
use generic-host
host_name didactum-rack01
alias Didactum Rack Monitoring Unit – Serverraum A
address 192.168.1.100
check_command check-host-alive
max_check_attempts 3
check_interval 5
retry_interval 1
check_period 24x7
notification_interval 60
notification_period 24x7
notifications_enabled 1
contact_groups admins
notes Didactum Rack Monitoring Unit II – SNMP v2c
icon_image server.png
statusmap_image server.gd2
}5.3 Host-Gruppe für alle Didactum-Geräte
define hostgroup {
hostgroup_name didactum-devices
alias Didactum Monitoring Geräte
members didactum-rack01, didactum-rack02
}
6. Service-Definitionen für Sensoren
6.1 Command-Definition für SNMP-Checks
Zuerst ein wiederverwendbares Check-Kommando definieren. In /etc/nagios/conf.d/didactum.cfg oder commands.cfg einfügen:
# Allgemeines SNMP-Check-Kommando:
define command {
command_name check_snmp_didactum
command_line $USER1$/check_snmp \
-H $HOSTADDRESS$ \
-C $ARG1$ \
-o $ARG2$ \
-w $ARG3$ \
-c $ARG4$ \
$ARG5$
}
# SNMP-Check mit Faktor (für Temperatur × 10):
define command {
command_name check_snmp_didactum_factor
command_line $USER1$/check_snmp \
-H $HOSTADDRESS$ \
-C $ARG1$ \
-o $ARG2$ \
-w $ARG3$ \
-c $ARG4$ \
--label="$ARG5$" \
-u "$ARG6$"
}
# SNMP-Status-Check (0 = OK, alles andere = Problem):
define command {
command_name check_snmp_status
command_line $USER1$/check_snmp \
-H $HOSTADDRESS$ \
-C $ARG1$ \
-o $ARG2$ \
-w 0:0 \
-c 1:
}}Hinweis:
$USER1$ ist typischerweise /usr/lib/nagios/plugins – in /etc/nagios/resource.cfg nachsehen oder anpassen.
6.2 Temperatursensoren überwachen
Didactum gibt Temperaturwerte mit Faktor 10 zurück (235 = 23,5°C).
Die Warning-/Critical-Werte in den Checks müssen daher ebenfalls × 10 angegeben werden:
# Temperatur Sensor 1 (Warning bei 30 °C, Critical bei 35 °C):
define service {
use generic-service
host_name didactum-rack01
service_description Temperatur Sensor 1 – Rack-Front
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1!300!350!--label="Temp S1 (×10)"
check_interval 5
retry_interval 1
max_check_attempts 3
check_period 24x7
notification_period 24x7
contact_groups admins
notes Rohwert × 10 – Wert 300 = 30 °C, 350 = 35 °C
}
# Temperatur Sensor 2 – Rack-Rückseite:
define service {
use generic-service
host_name didactum-rack01
service_description Temperatur Sensor 2 – Rack-Rückseite
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.16.1.3.2!300!350!--label="Temp S2 (×10)"
check_interval 5
retry_interval 1
max_check_attempts 3
check_period 24x7
notification_period 24x7
contact_groups admins
}
# Temperatur-Status Sensor 1 (0=OK, 1=Warn, 2=Alarm):
define service {
use generic-service
host_name didactum-rack01
service_description Temperatur Status Sensor 1
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.16.1.4.1
check_interval 2
retry_interval 1
max_check_attempts 2
check_period 24x7
notification_period 24x7
contact_groups admins
}6.3 Leckagesensoren überwachen
Leckage-Status: Wert 0 = kein Wasser, Wert 1 = Leckage erkannt. Sofortige Alarmierung ohne Warning-Stufe empfohlen:
# Leckage Sensor 1 – Sofortalarm bei Wert > 0:
define service {
use generic-service
host_name didactum-rack01
service_description Leckage Sensor 1 – Bodenbereich
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1
check_interval 1
retry_interval 1
max_check_attempts 1
check_period 24x7
notification_period 24x7
contact_groups admins
notes 0 = trocken, 1 = Leckage erkannt – SOFORTALARM
first_notification_delay 0
}
# Leckage Sensor 2:
define service {
use generic-service
host_name didactum-rack01
service_description Leckage Sensor 2 – Kabelkanal
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.18.1.4.2
check_interval 1
retry_interval 1
max_check_attempts 1
check_period 24x7
notification_period 24x7
contact_groups admins
}6.4 Luftfeuchtigkeitssensoren überwachen
# Luftfeuchtigkeit Sensor 1 (Warning 70 %, Critical 80 %):
define service {
use generic-service
host_name didactum-rack01
service_description Luftfeuchtigkeit Sensor 1
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.17.1.3.1!20:70!10:80!--label="Humidity S1" -u "%rF"
check_interval 5
retry_interval 1
max_check_attempts 3
check_period 24x7
notification_period 24x7
contact_groups admins
notes Bereich: 20–80 % rF (ASHRAE-Empfehlung)
}6.5 Spannungssensoren überwachen
Spannung wird ebenfalls mit Faktor 10 geliefert (2298 = 229,8 V):
# Spannung Sensor 1 (Warning außerhalb 207–253 V, Critical außerhalb 196–260 V):
define service {
use generic-service
host_name didactum-rack01
service_description Spannung Sensor 1 – PDU Eingang
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.15.1.3.1!2070:2530!1960:2600!--label="Voltage S1 (×10)"
check_interval 5
retry_interval 1
max_check_attempts 3
check_period 24x7
notification_period 24x7
contact_groups admins
notes Rohwert × 10 – EN 50160: 207–253 V (±10 %)
}6.6 Türkontakte und weitere Sensoren
# Türkontakt Sensor 1 (0=geschlossen, 1=offen):
define service {
use generic-service
host_name didactum-rack01
service_description Türkontakt Rack-Tür vorne
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.10.1.3.1
check_interval 1
retry_interval 1
max_check_attempts 1
check_period 24x7
notification_period 24x7
contact_groups admins
notes 0 = geschlossen (OK), 1 = offen (CRITICAL)
}
# Rauchmelder Sensor 1:
define service {
use generic-service
host_name didactum-rack01
service_description Rauchmelder Sensor 1
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.14.1.3.1
check_interval 1
retry_interval 1
max_check_attempts 1
check_period 24x7
notification_period 24x7
contact_groups admins
}
# System Uptime:
define service {
use generic-service
host_name didactum-rack01
service_description Didactum System Uptime
check_command check_snmp_didactum!public!1.3.6.1.2.1.1.3.0!0:!0:!--label="Uptime"
check_interval 60
retry_interval 5
max_check_attempts 3
check_period 24x7
notification_period 24x7
contact_groups admins
}6.7 Service-Gruppe für alle Didactum-Checks
define servicegroup {
servicegroup_name didactum-sensors
alias Didactum Sensor-Überwachung
members didactum-rack01,Temperatur Sensor 1 – Rack-Front, \
didactum-rack01,Temperatur Sensor 2 – Rack-Rückseite, \
didactum-rack01,Leckage Sensor 1 – Bodenbereich, \
didactum-rack01,Luftfeuchtigkeit Sensor 1, \
didactum-rack01,Spannung Sensor 1 – PDU Eingang
}
7. OID-Referenz für Nagios-Checks
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
| OID | Beschreibung | Einheit | Nagios Warning-Beispiel | Nagios Critical-Beispiel |
|---|---|---|---|---|
| 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.{n} | Temperaturwert Sensor n | °C × 10 | 300 (= 30 °C) | 350 (= 35 °C) |
| 1.3.6.1.4.1.3854.1.2.2.1.16.1.4.{n} | Temperatur-Status Sensor n | Enum 0/1/2 | 0:0 | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.16.1.7.{n} | Oberer Grenzwert Sensor n | °C × 10 | – | – |
| 1.3.6.1.4.1.3854.1.2.2.1.16.1.8.{n} | Unterer Grenzwert Sensor n | °C × 10 | – | – |
| 1.3.6.1.4.1.3854.1.2.2.1.16.1.2.{n} | Sensor-Name | Text | – | – |
7.2 Leckagesensoren
| OID | Beschreibung | Einheit | Nagios Warning | Nagios Critical |
|---|---|---|---|---|
| 1.3.6.1.4.1.3854.1.2.2.1.18.1.4.{n} | Leckage-Status Sensor n | Enum 0/1 | – | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.18.1.3.{n} | Leckage-Wert Sensor n | 0 = trocken | – | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.18.1.2.{n} | Sensor-Name | Text | – | – |
7.3 Luftfeuchtigkeitssensoren
| OID | Beschreibung | Einheit | Nagios Warning-Beispiel | Nagios Critical-Beispiel |
|---|---|---|---|---|
| 1.3.6.1.4.1.3854.1.2.2.1.17.1.3.{n} | Luftfeuchtigkeitswert Sensor n | % rF | 20:70 | 10:80 |
| 1.3.6.1.4.1.3854.1.2.2.1.17.1.4.{n} | Luftfeuchtigkeits-Status Sensor n | Enum 0/1/2 | 0:0 | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.17.1.7.{n} | Oberer Grenzwert Sensor n | % rF | – | – |
| 1.3.6.1.4.1.3854.1.2.2.1.17.1.8.{n} | Unterer Grenzwert Sensor n | % rF | – | – |
7.4 Weitere Sensoren
| OID | Beschreibung | Einheit | Nagios Warning | Nagios Critical |
|---|---|---|---|---|
| 1.3.6.1.4.1.3854.1.2.2.1.15.1.3.{n} | Spannungswert Sensor n | V × 10 | 2070:2530 | 1960:2600 |
| 1.3.6.1.4.1.3854.1.2.2.1.15.1.4.{n} | Spannungs-Status Sensor n | Enum 0/1/2 | 0:0 | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.10.1.3.{n} | Türkontakt-Status n | 0=zu, 1=offen | – | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.11.1.3.{n} | Erschütterung / Bewegung n | 0=keine, 1=Alarm | – | 1: |
| 1.3.6.1.4.1.3854.1.2.2.1.14.1.3.{n} | Rauchmelder-Status n | 0=OK, 1=Alarm | – | 1: |
| 1.3.6.1.2.1.1.3.0 | System Uptime | Hundertstelsek. | – | – |
| 1.3.6.1.2.1.1.1.0 | Gerätebeschreibung (sysDescr) | Text | – | – |
7.5 Nagios-Schwellwertformat (Kurzreferenz)
| Format | Bedeutung | Beispiel |
|---|---|---|
| n | Alarm wenn Wert > n | 350 = Alarm über 350 |
| n: | Alarm wenn Wert < n | 50: = Alarm unter 50 |
| n:m | OK wenn n ≤ Wert ≤ m | 200:800 = OK zwischen 200 und 800 |
| @n:m | Alarm wenn n ≤ Wert ≤ m (invertiert) | @0:0 = Alarm wenn Wert nicht 0 |
| 0:0 | OK nur bei Wert = 0 | Für Status-OIDs (0=OK) |
| 1: | Alarm wenn Wert ≥ 1 | Für Leckage, Rauch, Türkontakt |
8. SNMP-Trap-Integration
Neben dem aktiven Polling kann Nagios auch passiv SNMP-Traps vom Didactum-Gerät empfangen.
Das Gerät sendet dann bei Ereignissen (z.Bsp. Leckage erkannt) sofort einen Trap – ohne auf den nächsten Polling-Zyklus zu warten.
8.1 snmptrapd installieren und konfigurieren
# Debian / Ubuntu: sudo apt install snmptrapd -y # Konfigurationsdatei öffnen: sudo nano /etc/snmp/snmptrapd.conf
Folgendes eintragen:
# Community-String für eingehende Traps: authCommunity log,execute,net public # Trap-Handler für Didactum-Traps: traphandle 1.3.6.1.4.1.3854 /usr/local/bin/didactum_trap_handler.sh # Logging: doNotLogTraps no outputOption fq
8.2 snmptrapd aktivieren
# Dienst aktivieren und starten: sudo systemctl enable snmptrapd sudo systemctl start snmptrapd # Status prüfen: sudo systemctl status snmptrapd
8.3 Nagios passive Check-Ergebnisse via NSCA
Traps können über NSCA (Nagios Service Check Acceptor) als passive Check-Ergebnisse an Nagios übermittelt werden:
# NSCA installieren: sudo apt install nsca -y # Trap-Handler-Skript erstellen: sudo nano /usr/local/bin/didactum_trap_handler.sh
#!/bin/bash
# Didactum SNMP Trap Handler für Nagios
# Empfängt Trap-Daten und leitet sie als passive Checks weiter
NAGIOS_HOST="didactum-rack01"
NSCA_HOST="127.0.0.1"
NSCA_PORT="5667"
SEND_NSCA="/usr/sbin/send_nsca"
# Trap-OID und Wert aus snmptrapd-Input lesen:
TRAP_OID="$1"
TRAP_VALUE="$2"
# Leckage-Trap:
if echo "$TRAP_OID" | grep -q "1.3.6.1.4.1.3854.1.7.2"; then
echo "$NAGIOS_HOST\tLeckage Sensor 1 – Bodenbereich\t2\tCRITICAL: Leckage erkannt!" \
| $SEND_NSCA -H $NSCA_HOST -p $NSCA_PORT
fi
# Temperatur-Alarm-Trap:
if echo "$TRAP_OID" | grep -q "1.3.6.1.4.1.3854.1.7.1"; then
echo "$NAGIOS_HOST\tTemperatur Sensor 1 – Rack-Front\t2\tCRITICAL: Temperaturalarm ausgelöst!" \
| $SEND_NSCA -H $NSCA_HOST -p $NSCA_PORT
fisudo chmod +x /usr/local/bin/didactum_trap_handler.sh
8.4 Wichtige Didactum Trap-OIDs
| Trap-OID | Ereignis | Empfohlene Nagios-Reaktion |
|---|---|---|
| 1.3.6.1.4.1.3854.1.7.1 | Temperatur-Alarm | CRITICAL, sofortige Benachrichtigung |
| 1.3.6.1.4.1.3854.1.7.2 | Leckage-Alarm | CRITICAL, sofortige Benachrichtigung |
| 1.3.6.1.4.1.3854.1.7.3 | Luftfeuchtigkeits-Alarm | WARNING oder CRITICAL |
| 1.3.6.1.4.1.3854.1.7.4 | Spannungs-Alarm | CRITICAL, sofortige Benachrichtigung |
| 1.3.6.1.4.1.3854.1.7.10 | Türkontakt geöffnet | WARNING oder CRITICAL (je nach Policy) |
| 1.3.6.1.4.1.3854.1.7.99 | Gerät-Neustart | WARNING, Logging |
Am Didactum-Gerät:
Trap-Receiver-IP = IP des Nagios-Servers, Port 162 (UDP) eintragen unter Einstellungen → Netzwerk → SNMP → Trap Receiver.
9. Benachrichtigungen konfigurieren
9.1 Kontakt-Definition
define contact {
contact_name it-admin
alias IT-Administrator
use generic-contact
email admin@example.com
pager +4915112345678
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
}9.2 Kontaktgruppe
define contactgroup {
contactgroup_name admins
alias IT-Administratoren
members it-admin
}9.3 Empfohlene Benachrichtigungseinstellungen für Leckage
# Für Leckage-Services: Sofortige Benachrichtigung, kein Delay:
define service {
use generic-service
host_name didactum-rack01
service_description Leckage Sensor 1 – Bodenbereich
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1
check_interval 1
max_check_attempts 1
first_notification_delay 0
notification_interval 5
notification_period 24x7
contact_groups admins
}9.4 Empfohlene Grenzwerte
| Sensortyp | Warning (Nagios) | Critical (Nagios) | Norm |
|---|---|---|---|
| Temperatur IT-Rack (Rohwert × 10) | 300 (30 °C) | 350 (35 °C) | ASHRAE A1: 15–32 °C |
| Temperatur USV-Raum (Rohwert × 10) | 250 (25 °C) | 300 (30 °C) | Herstellervorgabe |
| Luftfeuchtigkeit | 20:70 | 10:80 | ASHRAE: 20–80 % rF |
| Leckage | – | 1: | Sofortalarm |
| Spannung 230 V AC (Rohwert × 10) | 2070:2530 | 1960:2600 | EN 50160 ±10 % |
| Türkontakt | – | 1: | Policy-abhängig |
10. Fehlerbehebung (Troubleshooting)
| Problem | Mögliche Ursache / Lösung |
|---|---|
| check_snmp liefert UNKNOWN / Timeout | Firewall: UDP Port 161 vom Nagios-Server zum Didactum-Gerät freigegeben? SNMP am Gerät aktiviert? Community-String korrekt? IP-Adresse in der Nagios-Host-Definition stimmt? |
| Falscher Messwert (z. B. 235 statt 23,5) | Didactum liefert Temperatur × 10. Schwellwerte in der Check-Konfiguration ebenfalls × 10 angeben (Warning 300 = 30 °C). Eine Skalierung direkt in check_snmp ist nicht möglich – Rohwerte vergleichen. |
| OID liefert „No Such Object" | Sensor nicht angeschlossen oder falscher Index. snmpwalk auf dem Nagios-Server ausführen, um vorhandene OIDs zu ermitteln. |
| Nagios-Konfiguration wird nicht übernommen | Konfiguration prüfen: sudo nagios -v /etc/nagios/nagios.cfg. Danach Nagios neu laden: sudo systemctl reload nagios. |
| Traps kommen nicht an | UDP Port 162 auf dem Nagios-Server in der Firewall öffnen. snmptrapd-Dienst läuft? Korrekte IP des Nagios-Servers im Didactum-Gerät als Trap-Receiver eingetragen? |
| Service immer CRITICAL trotz OK-Wert | Schwellwertformat prüfen (Nagios-Range-Syntax). Für Status-OIDs -w 0:0 -c 1: verwenden. Rohwert mit snmpget direkt kontrollieren. |
| Keine Benachrichtigungen bei Alarm | Kontakt und Kontaktgruppe korrekt zugeordnet? notifications_enabled 1 gesetzt? Benachrichtigungsperiode aktiv? Nagios-Log prüfen: /var/log/nagios/nagios.log. |
| check_snmp: Permission denied | Plugin-Datei ausführbar? chmod +x /usr/lib/nagios/plugins/check_snmp. Läuft Nagios als korrekter Benutzer (nagios)? |
Diagnose-Befehle Übersicht
# Nagios-Konfiguration auf Fehler prüfen: sudo nagios -v /etc/nagios/nagios.cfg # Nagios-Dienst neu laden (nach Konfigurationsänderungen): sudo systemctl reload nagios # SNMP-Erreichbarkeit testen: snmpwalk -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854 # Einzelnen OID-Wert abfragen: snmpget -v2c -c public 192.168.1.100 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1 # check_snmp-Plugin direkt testen: /usr/lib/nagios/plugins/check_snmp \ -H 192.168.1.100 -C public \ -o 1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1 \ -w 300 -c 350 # Nagios-Log in Echtzeit verfolgen: sudo tail -f /var/log/nagios/nagios.log # snmptrapd-Log prüfen: sudo journalctl -u snmptrapd -f # Firewall-Port für SNMP freigeben (ufw): sudo ufw allow 161/udp sudo ufw allow 162/udp
Komplette didactum.cfg – Vorlage
Fertige Konfigurationsdatei als Startvorlage für einen Didactum-Host mit den wichtigsten Sensoren:
################################################################################
# Didactum Monitoring Integration – Nagios Konfiguration
# Datei: /etc/nagios/conf.d/didactum.cfg
# Anpassen: IP-Adresse, Community-String, Sensor-Anzahl
################################################################################
# ── HOST ──────────────────────────────────────────────────────────────────────
define host {
use generic-host
host_name didactum-rack01
alias Didactum Rack Monitoring – Serverraum A
address 192.168.1.100
check_command check-host-alive
max_check_attempts 3
check_interval 5
notification_period 24x7
contact_groups admins
}
# ── COMMANDS ──────────────────────────────────────────────────────────────────
define command {
command_name check_snmp_didactum
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o $ARG2$ -w $ARG3$ -c $ARG4$ $ARG5$
}
define command {
command_name check_snmp_status
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -C $ARG1$ -o $ARG2$ -w 0:0 -c 1:
}
# ── SERVICES ──────────────────────────────────────────────────────────────────
define service {
use generic-service
host_name didactum-rack01
service_description Temperatur Sensor 1 – Rack-Front
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.16.1.3.1!300!350!
check_interval 5
max_check_attempts 3
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Temperatur Sensor 2 – Rack-Rückseite
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.16.1.3.2!300!350!
check_interval 5
max_check_attempts 3
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Leckage Sensor 1 – Bodenbereich
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.18.1.4.1
check_interval 1
max_check_attempts 1
first_notification_delay 0
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Luftfeuchtigkeit Sensor 1
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.17.1.3.1!20:70!10:80!
check_interval 5
max_check_attempts 3
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Spannung Sensor 1 – PDU Eingang
check_command check_snmp_didactum!public!1.3.6.1.4.1.3854.1.2.2.1.15.1.3.1!2070:2530!1960:2600!
check_interval 5
max_check_attempts 3
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Türkontakt Rack-Tür vorne
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.10.1.3.1
check_interval 1
max_check_attempts 1
contact_groups admins
}
define service {
use generic-service
host_name didactum-rack01
service_description Rauchmelder Sensor 1
check_command check_snmp_status!public!1.3.6.1.4.1.3854.1.2.2.1.14.1.3.1
check_interval 1
max_check_attempts 1
contact_groups admins
}Für firmware-spezifische OIDs und unterstützte Sensortypen immer die aktuelle Didactum-Gerätedokumentation konsultieren.