Didactum Monitoring & Munin Integration
Vollständige Schritt-für-Schritt-Anleitung zur Einbindung von Didactum Monitoring-Geräten und Sensoren in Munin via SNMP – inklusive Plugin-Symlinks, Plugin-Konfiguration, vollständiger Custom Perl-Plugin-Datei für alle Sensortypen (Temperatur, Leckage, Luftfeuchtigkeit, Türkontakt, Rauch) und E-Mail-Alarmierung.
Architektur-Hinweis: SNMP-Plugins werden auf dem Munin-Node-Rechner als SNMP-Gateway aktiviert. Auf diesem Node laufen sowohl munin als auch munin-node. Die SNMP-Plugins werden per Symlink in /etc/munin/plugins aktiviert, wobei der Name des zu überwachenden Hosts zwischen die ersten beiden Unterstriche eingefügt wird.
- Software: Munin 2.x (munin-master + munin-node)
- Plugin-Sprache: Perl (Munin::Plugin::SNMP Modul)
- 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
Munin-Server
- Ubuntu 20.04 / 22.04 LTS oder Debian 11/12
- munin und munin-node installiert
- Perl-Modul libsnmp-session-perl und libnet-snmp-perl installiert
- Pakete: snmp, snmp-mibs-downloader
- UDP-Port 161 ausgehend für SNMP Polling geöffnet
- Netzwerkzugang zum Didactum-Gerät
Didactum-Gerät
- Monitoring System 100T, 300T, 500T oder 550T
- SNMP aktiviert (v2c empfohlen)
- Gerät per Netzwerk vom Munin-Server erreichbar
- MIB-Datei im Web-Interface verfügbar
Wichtige Munin-Verzeichnisse
/etc/munin/munin.conf <-- Hauptkonfiguration (Hosts, Gruppen) /etc/munin/plugin-conf.d/ <-- Plugin-spezifische Konfiguration (Community, Env-Variablen) /etc/munin/plugins/ <-- Aktive Plugins (Symlinks) /usr/share/munin/plugins/ <-- Mitgelieferte Plugins /usr/local/share/munin/plugins/ <-- Eigene Custom-Plugins ablegen /var/lib/munin/ <-- RRD-Datenbank und Graphen /var/log/munin/ <-- Log-Dateien
Munin SNMP-Plugin-Benennungskonvention
SNMP-Plugins werden mit dem Format snmp_HOSTNAME_METRIK benannt. Der Hostname des zu überwachenden Geräts wird zwischen die ersten zwei Unterstriche eingefügt. Beispiel: snmp_didactum01_temperature überwacht die Temperatur des Geräts mit dem Namen „didactum01".
2. SNMP auf dem Didactum-Gerät aktivieren
Schritt 1 – Web-Interface öffnen
Im Browser aufrufen: 192.168.1.50 (IP des Didactum-Geräts anpassen)
Schritt 2 – SNMP-Einstellungen aufrufen
Systemeinstellungen → SNMP
Schritt 3 – Folgende Werte eintragen
| Feld im Didactum Web-Interface | Wert |
|---|---|
| SNMP aktivieren | Aktiviert |
| SNMP-Version | v2c (empfohlen) |
| Community String | didactum_munin (nicht „public" verwenden!) |
| SNMP-Port | 161 |
Einstellungen speichern.
3. Pakete installieren & SNMP testen
sudo apt update
sudo apt install -y munin munin-node \
libnet-snmp-perl libsnmp-session-perl \
snmp snmp-mibs-downloader
# SNMP-Verbindung zum Didactum-Gerät testen
snmpwalk -v 2c -c didactum_munin 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1
# Einzelnen Temperaturwert abfragen (Rohwert ÷ 10 = Grad Celsius)
snmpget -v 2c -c didactum_munin 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1.7.101001
4. MIB-Datei installieren
# MIB aus Didactum Web-Interface herunterladen:
# Systemeinstellungen → SNMP → "MIB-Datei herunterladen" → didactum.mib
sudo cp didactum.mib /usr/share/snmp/mibs/
echo "mibdirs /usr/share/snmp/mibs" | sudo tee -a /etc/snmp/snmp.conf
echo "mibs ALL" | sudo tee -a /etc/snmp/snmp.conf
# Test mit MIB-Namen
snmpwalk -v 2c -c didactum_munin -m ALL 192.168.1.50 \
DIDACTUM-MIB::sensorValue
5. Munin-Host-Konfiguration für Didactum
Das Didactum-Gerät wird in der munin.conf als eigenständiger Host eingetragen. Da Munin-Node die SNMP-Abfragen über sich selbst als Gateway durchführt, wird address 127.0.0.1 (localhost) als Adresse des munin-node eingetragen.
sudo nano /etc/munin/munin.conf
# ================================================================
# Didactum Monitoring System – Munin Host-Konfiguration
# ================================================================
[Didactum]
# Didactum Monitoring System 01
# address = localhost, da munin-node als SNMP-Gateway fungiert
[Didactum;didactum-monitor-01]
address 127.0.0.1
use_node_name no
6. SNMP Plugin-Konfiguration
Als Regel benötigen SNMP-Plugins standortspezifische Konfiguration. Die Standardkonfiguration funktioniert nur auf unsicheren Geräten. Der Community String der Geräte sollte nicht „public" sein.
sudo nano /etc/munin/plugin-conf.d/didactum
# ================================================================
# Didactum SNMP Plugin-Konfiguration
# Datei: /etc/munin/plugin-conf.d/didactum
# ================================================================
# Gilt für alle Plugins des Didactum-Geräts
[snmp_didactum-monitor-01_*]
env.host 192.168.1.50
env.port 161
env.version 2
env.community didactum_munin
env.timeout 5
# Temperatursensor spezifisch
[snmp_didactum-monitor-01_didactum_temp]
env.host 192.168.1.50
env.community didactum_munin
env.version 2
env.warning 280
env.critical 350
# Leckagesensor spezifisch
[snmp_didactum-monitor-01_didactum_leak]
env.host 192.168.1.50
env.community didactum_munin
env.version 2
env.critical 1
# Luftfeuchtigkeit spezifisch
[snmp_didactum-monitor-01_didactum_humidity]
env.host 192.168.1.50
env.community didactum_munin
env.version 2
env.warning 80
env.critical 90
7. Custom Perl-Plugin für Didactum-Sensoren
Das folgende Plugin überwacht alle Didactum-Sensoren in einem einzigen Plugin. Es folgt dem offiziellen Munin SNMP-Plugin-Standard mit Magic Markers und dem Munin::Plugin::SNMP-Modul.
Plugin-Datei erstellen
sudo nano /usr/local/share/munin/plugins/snmp__didactum_sensors
#!/usr/bin/perl
# ================================================================
# Munin SNMP Plugin – Didactum Monitoring System
# Datei: /usr/local/share/munin/plugins/snmp__didactum_sensors
#
# Überwacht: Temperatursensor, Leckage, Luftfeuchtigkeit,
# Türkontakt, Rauchmelder via SNMPv2c
#
# Enterprise OID (ältere Geräte): .1.3.6.1.4.1.46501
# Enterprise OID (neuere Geräte): .1.3.6.1.4.1.39052
#
# Konfiguration in /etc/munin/plugin-conf.d/:
# [snmp_HOSTNAME_didactum_sensors]
# env.host 192.168.1.50
# env.community didactum_munin
# env.version 2
# env.warning_temp 280 (= 28.0 Grad C – Rohwert x10)
# env.critical_temp 350 (= 35.0 Grad C – Rohwert x10)
#
# WICHTIG – Temperaturschwellwerte:
# Didactum liefert Temperatur als Rohwert x10.
# 25.5 Grad C = OID-Wert 255.
# warning/critical als Rohwert x10 konfigurieren!
#
# =head1 MAGIC MARKERS
#%# family=snmpauto
#%# capabilities=snmpconf
# ================================================================
use strict;
use warnings;
use Net::SNMP;
use Munin::Plugin;
# ================================================================
# OID-Definitionen
# ================================================================
my $base_oid_old = '1.3.6.1.4.1.46501.5.1.1'; # ältere Geräte
my $base_oid_new = '1.3.6.1.4.1.39052.5.1.1'; # neuere Geräte
# Sensoren OIDs (Sensor-ID am Ende anpassen!)
my %oids = (
'temp_value' => '1.3.6.1.4.1.46501.5.1.1.7.101001',
'temp_status' => '1.3.6.1.4.1.46501.5.1.1.6.101001',
'leak_value' => '1.3.6.1.4.1.46501.5.1.1.7.107001',
'humidity_value'=> '1.3.6.1.4.1.46501.5.1.1.7.102001',
'door_value' => '1.3.6.1.4.1.46501.5.1.1.7.104001',
'smoke_value' => '1.3.6.1.4.1.46501.5.1.1.7.106001',
);
# ================================================================
# Umgebungsvariablen (aus plugin-conf.d)
# ================================================================
my $host = $ENV{host} || '192.168.1.50';
my $port = $ENV{port} || 161;
my $version = $ENV{version} || '2';
my $community = $ENV{community} || 'public';
my $timeout = $ENV{timeout} || 5;
my $warn_temp = $ENV{warning_temp} || 280;
my $crit_temp = $ENV{critical_temp} || 350;
my $warn_hum = $ENV{warning_hum} || 80;
my $crit_hum = $ENV{critical_hum} || 90;
# ================================================================
# snmpconf – für munin-node-configure auto-detection
# ================================================================
if (defined $ARGV[0] and $ARGV[0] eq 'snmpconf') {
# Geräte-Erkennung: Didactum sysObjectID prüfen
print "require 1.3.6.1.4.1.46501.5.1.1.7.101001\n";
exit 0;
}
# ================================================================
# SNMP-Verbindung aufbauen
# ================================================================
my ($session, $error) = Net::SNMP->session(
-hostname => $host,
-port => $port,
-version => $version,
-community => $community,
-timeout => $timeout,
);
if (!defined $session) {
die "# Fehler: SNMP-Verbindung zu $host fehlgeschlagen: $error\n";
}
# OIDs abfragen
my $result = $session->get_request(
-varbindlist => [ values %oids ]
);
if (!defined $result) {
die "# Fehler: SNMP-Abfrage fehlgeschlagen: " . $session->error() . "\n";
}
$session->close();
# ================================================================
# config – Munin-Graph-Konfiguration
# ================================================================
if (defined $ARGV[0] and $ARGV[0] eq 'config') {
print "host_name $host\n";
# --- Temperatur-Graph ---
print "multigraph didactum_temperature\n";
print "graph_title Didactum Temperatur Sensor 01\n";
print "graph_vlabel Grad Celsius\n";
print "graph_category sensors\n";
print "graph_info Temperatur Sensor 01 (Rohwert geteilt durch 10 = Grad Celsius)\n";
print "temp.label Temperatur\n";
print "temp.type GAUGE\n";
print "temp.draw LINE2\n";
print "temp.colour 0000FF\n";
print "temp.warning $warn_temp\n";
print "temp.critical $crit_temp\n";
print "temp.info Rohwert des Temperatursensors (x0.1 = Grad C). Warnung: " .
($warn_temp/10) . " C, Kritisch: " . ($crit_temp/10) . " C\n";
# --- Temperatur-Status-Graph ---
print "multigraph didactum_temp_status\n";
print "graph_title Didactum Temp-Sensor Status\n";
print "graph_vlabel Status\n";
print "graph_category sensors\n";
print "graph_info Sensor-Status: 0=OK, 1=Alarm, 2=Kein Signal\n";
print "status.label Status\n";
print "status.type GAUGE\n";
print "status.draw LINE1\n";
print "status.warning 0.5\n";
print "status.critical 1.5\n";
# --- Leckage-Graph ---
print "multigraph didactum_leakage\n";
print "graph_title Didactum Leckage Sensor 01\n";
print "graph_vlabel Zustand\n";
print "graph_category sensors\n";
print "graph_info Leckagesensor: 0=trocken, 1=Wasser erkannt\n";
print "leak.label Leckage\n";
print "leak.type GAUGE\n";
print "leak.draw AREA\n";
print "leak.colour FF0000\n";
print "leak.critical 0.5\n";
print "leak.info 0 = trocken (OK), 1 = Wasser erkannt (CRITICAL)\n";
# --- Luftfeuchtigkeit-Graph ---
print "multigraph didactum_humidity\n";
print "graph_title Didactum Luftfeuchtigkeit Sensor 01\n";
print "graph_vlabel Prozent (%)\n";
print "graph_category sensors\n";
print "humidity.label Luftfeuchtigkeit\n";
print "humidity.type GAUGE\n";
print "humidity.draw LINE2\n";
print "humidity.colour 00AAFF\n";
print "humidity.warning $warn_hum\n";
print "humidity.critical $crit_hum\n";
print "humidity.min 0\n";
print "humidity.max 100\n";
# --- Türkontakt-Graph ---
print "multigraph didactum_door\n";
print "graph_title Didactum Tuerkonakt 01\n";
print "graph_vlabel Zustand\n";
print "graph_category sensors\n";
print "door.label Tuerkonakt\n";
print "door.type GAUGE\n";
print "door.draw AREA\n";
print "door.warning 0.5\n";
print "door.info 0 = geschlossen (OK), 1 = geoeffnet (Warning)\n";
# --- Rauchmelder-Graph ---
print "multigraph didactum_smoke\n";
print "graph_title Didactum Rauchmelder 01\n";
print "graph_vlabel Zustand\n";
print "graph_category sensors\n";
print "smoke.label Rauchmelder\n";
print "smoke.type GAUGE\n";
print "smoke.draw AREA\n";
print "smoke.colour FF6600\n";
print "smoke.critical 0.5\n";
print "smoke.info 0 = kein Rauch (OK), 1 = Alarm (CRITICAL)\n";
exit 0;
}
# ================================================================
# Werte ausgeben (normaler Plugin-Lauf)
# ================================================================
# Rohwerte aus SNMP-Ergebnis lesen
my $temp_raw = $result->{$oids{temp_value}} // 'U';
my $temp_status = $result->{$oids{temp_status}} // 'U';
my $leak_val = $result->{$oids{leak_value}} // 'U';
my $humidity_val = $result->{$oids{humidity_value}} // 'U';
my $door_val = $result->{$oids{door_value}} // 'U';
my $smoke_val = $result->{$oids{smoke_value}} // 'U';
# Temperatur: Rohwert ausgeben (warning/critical auf Rohwert x10 gesetzt)
print "multigraph didactum_temperature\n";
print "temp.value $temp_raw\n";
# Temperatur-Status
print "multigraph didactum_temp_status\n";
print "status.value $temp_status\n";
# Leckage
print "multigraph didactum_leakage\n";
print "leak.value $leak_val\n";
# Luftfeuchtigkeit
print "multigraph didactum_humidity\n";
print "humidity.value $humidity_val\n";
# Türkontakt
print "multigraph didactum_door\n";
print "door.value $door_val\n";
# Rauchmelder
print "multigraph didactum_smoke\n";
print "smoke.value $smoke_val\n";
exit 0;
sudo chmod +x /usr/local/share/munin/plugins/snmp__didactum_sensors
8. Plugin-Symlinks anlegen
Um SNMP-Plugins zu aktivieren, werden sie als Symlinks in /etc/munin/plugins angelegt, wobei der Name des zu überwachenden Hosts zwischen die ersten zwei Unterstriche eingefügt wird.
Symlink für das Custom-Plugin anlegen
# Plugin für Didactum-Monitor-01 aktivieren
sudo ln -s /usr/local/share/munin/plugins/snmp__didactum_sensors \
/etc/munin/plugins/snmp_didactum-monitor-01_didactum_sensors
# Plugin-Liste prüfen
ls -la /etc/munin/plugins/ | grep didactum
Plugin direkt testen (bevor munin-node neu gestartet wird)
# Plugin-Konfiguration testen sudo munin-run snmp_didactum-monitor-01_didactum_sensors config # Plugin-Werte testen (normaler Lauf) sudo munin-run snmp_didactum-monitor-01_didactum_sensors # Erwartete Ausgabe: # multigraph didactum_temperature # temp.value 235 # multigraph didactum_leakage # leak.value 0 # ...
munin-node neu starten
sudo systemctl restart munin-node sudo systemctl status munin-node
munin-node-configure für automatische Plugin-Erkennung (optional)
Mit dem munin-node-configure-Skript kann automatisch geprüft werden, welche SNMP-Plugins für ein Gerät verfügbar sind.
# Automatisch verfügbare Plugins für Didactum-Gerät ermitteln
sudo munin-node-configure --shell \
--snmp 192.168.1.50 \
--snmpversion 2c \
--snmpcommunity didactum_munin \
--libdir /usr/local/share/munin/plugins
9. Munin-Alarme (Warn/Critical) konfigurieren
Munin kann bei Überschreitung von Warn- oder Critical-Schwellwerten Alarme auslösen. Die Schwellwerte werden entweder direkt im Plugin (warning/critical Zeilen im config-Abschnitt) oder in der Plugin-Konfigurationsdatei definiert.
Schwellwerte in der Plugin-Konfigurationsdatei setzen
sudo nano /etc/munin/plugin-conf.d/didactum
# ================================================================
# Didactum Plugin-Konfiguration – Schwellwerte
# WICHTIG: Temperaturschwellen als Rohwert x10 angeben!
# 28 Grad C = 280, 35 Grad C = 350
# ================================================================
[snmp_didactum-monitor-01_didactum_sensors]
env.host 192.168.1.50
env.port 161
env.version 2
env.community didactum_munin
env.timeout 5
# Temperaturschwellen (Rohwert x10!)
env.warning_temp 280
env.critical_temp 350
# Luftfeuchtigkeitsschwellen (direkt in %)
env.warning_hum 80
env.critical_hum 90
Einzelne Datenpunkt-Schwellen in munin.conf überschreiben
sudo nano /etc/munin/munin.conf
[Didactum;didactum-monitor-01]
address 127.0.0.1
use_node_name no
# Einzelne Datenpunkt-Schwellen überschreiben (optional)
# Format: Plugin.Datenpunkt.warning / .critical
snmp_didactum-monitor-01_didactum_sensors.temp.warning 280
snmp_didactum-monitor-01_didactum_sensors.temp.critical 350
snmp_didactum-monitor-01_didactum_sensors.leak.critical 0.5
snmp_didactum-monitor-01_didactum_sensors.smoke.critical 0.5
10. E-Mail-Benachrichtigung konfigurieren
Munin sendet Benachrichtigungen über das contacts-System. Bei Überschreitung eines Warn- oder Critical-Schwellwerts wird eine E-Mail gesendet.
Schritt 1 – Munin-Benachrichtigung in munin.conf konfigurieren
sudo nano /etc/munin/munin.conf
# ================================================================
# Munin Benachrichtigungs-Konfiguration für Didactum-Alarme
# ================================================================
# Kontakt definieren
contact.admin.command mail -s "Munin: ${var:host} – ${var:plugin}: ${var:state}" \
admin@ihredomain.de
# E-Mail-Format
contact.admin.text \
Zeitpunkt: ${var:timestamp}\n\
Host: ${var:host}\n\
Plugin: ${var:plugin}\n\
Datenpunkt: ${var:graph_title} – ${var:fieldname}\n\
Status: ${var:state}\n\
Wert: ${var:value}\n\
Warnung ab: ${var:warnhi}\n\
Kritisch ab: ${var:crithi}\n\
Graph-URL: ${var:url}
# Benachrichtigungen aktivieren (WARNING und CRITICAL)
contact.admin.always_send warning critical
# Benachrichtigungen für Didactum-Host aktivieren
[Didactum;didactum-monitor-01]
address 127.0.0.1
use_node_name no
contacts admin
Schritt 2 – Postfix für lokalen Mailversand installieren
sudo apt install postfix mailutils -y # Konfigurationstyp: "Internet Site" # Test: echo "Test Munin Didactum" | mail -s "Test" admin@ihredomain.de
Schritt 3 – munin-master neu starten
sudo systemctl restart munin-node # Munin läuft normalerweise per Cron – prüfen: sudo crontab -l -u munin # Standardmäßig: */5 * * * * /usr/bin/munin-cron
11. SNMP OID-Referenz
Alle Didactum-OIDs beginnen mit 1.3.6.1.4.1.46501 (ältere Firmware) bzw. 1.3.6.1.4.1.39052 (neuere Modelle). Die Sensor-ID wird am Ende angehängt.
OID-Felder je Sensor
| Feld | Bedeutung | Beispiel |
|---|---|---|
| .1.x.SENSOR_ID | Sensor-ID | 1.3.6.1.4.1.46501.5.1.1.1.101001 |
| .5.x.SENSOR_ID | Sensor-Name | 1.3.6.1.4.1.46501.5.1.1.5.101001 |
| .6.x.SENSOR_ID | Status (0=OK, 1=Alarm, 2=Kein Signal) | 1.3.6.1.4.1.46501.5.1.1.6.101001 |
| .7.x.SENSOR_ID | Messwert (aktuell) | 1.3.6.1.4.1.46501.5.1.1.7.101001 |
Sensortypen mit OIDs und Munin-Schwellwerten
| Sensortyp | Sensor-ID | OID Messwert | OID Status | Munin Schwellwert |
|---|---|---|---|---|
| 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.101001 | warning 280 / critical 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.201001 | warning 280 / critical 350 (× 10) |
| Wassersensor / Leckage | 107001 | 1.3.6.1.4.1.46501.5.1.1.7.107001 | 1.3.6.1.4.1.46501.5.1.1.6.107001 | critical 0.5 (ab 1 = Wasser) |
| Luftfeuchtigkeit | 102001 | 1.3.6.1.4.1.46501.5.1.1.7.102001 | 1.3.6.1.4.1.46501.5.1.1.6.102001 | warning 80 / critical 90 (direkt %) |
| Potentialfreier Kontakt | 101003 | 1.3.6.1.4.1.39052.5.1.1.7.101003 | 1.3.6.1.4.1.39052.5.1.1.6.101003 | warning 0.5 (ab 1 = aktiv) |
| Türkontakt | 104001 | 1.3.6.1.4.1.46501.5.1.1.7.104001 | 1.3.6.1.4.1.46501.5.1.1.6.104001 | warning 0.5 (ab 1 = geöffnet) |
| Rauchmelder | 106001 | 1.3.6.1.4.1.46501.5.1.1.7.106001 | 1.3.6.1.4.1.46501.5.1.1.6.106001 | critical 0.5 (ab 1 = Alarm) |
Sensor-ID herausfinden: Im Didactum Web-Interface unter Systembaum → Sensor auswählen → Details. Diese ID wird ans Ende der OID angehängt und im Plugin in der %oids-Hash-Tabelle aktualisiert.
Temperaturschwellwerte in Munin: Das Didactum-Gerät liefert Temperaturwerte als Rohwert × 10. 28,0 °C = OID-Wert 280. Munin-Schwellwerte (warning/critical) müssen daher ebenfalls × 10 angegeben werden. Im Graphen erscheint der Rohwert; in der Graph-Beschriftung wird auf die ÷10-Umrechnung hingewiesen.
MIB-Prefix je Modell: Ältere Geräte verwenden 1.3.6.1.4.1.46501, neuere Modelle eventuell 1.3.6.1.4.1.39052. Die OIDs im Plugin-Code entsprechend anpassen.
12. Test & Fehlersuche
Plugin direkt testen
# Plugin-Konfiguration anzeigen (config-Modus)
sudo -u munin munin-run \
snmp_didactum-monitor-01_didactum_sensors config
# Plugin-Werte abfragen (normaler Lauf)
sudo -u munin munin-run \
snmp_didactum-monitor-01_didactum_sensors
# Erwartete Ausgabe:
# multigraph didactum_temperature
# temp.value 235
# multigraph didactum_leakage
# leak.value 0
# multigraph didactum_humidity
# humidity.value 65
# multigraph didactum_door
# door.value 0
# multigraph didactum_smoke
# smoke.value 0
SNMP direkt testen
snmpget -v 2c -c didactum_munin 192.168.1.50 \
1.3.6.1.4.1.46501.5.1.1.7.101001
# Erwartete Ausgabe: INTEGER: 235 (= 23,5 Grad C)
snmpget -v 2c -c didactum_munin 192.168.1.50 \
1.3.6.1.4.1.46501.5.1.1.7.107001
# Erwartete Ausgabe bei trockenem Sensor: INTEGER: 0
Munin-Master manuell ausführen
sudo -u munin munin-cron # Graphen werden unter /var/cache/munin/www/ erzeugt ls /var/cache/munin/www/Didactum/didactum-monitor-01/
Fehlermeldungen und Lösungen
| Problem | Ursache & Lösung |
|---|---|
| Plugin gibt „U" (unknown) zurück | SNMP-Verbindung fehlgeschlagen → Community String, IP, UDP 161 prüfen |
| Perl-Fehler beim Plugin-Start | Fehlende Perl-Module → sudo apt install libnet-snmp-perl |
| Symlink nicht gefunden | ls -la /etc/munin/plugins/ | grep didactum – Symlink prüfen und ggf. neu anlegen |
| Temperaturwert erscheint 10× zu hoch im Graph | Kein Problem – Rohwert × 10 ist korrekt. Schwellwerte ebenfalls × 10 setzen (280, 350) |
| Keine E-Mail bei Alarm | Postfix läuft nicht; contacts-Konfiguration fehlt; munin-cron läuft nicht |
| Graph erscheint nicht im Web-Interface | munin-cron noch nicht gelaufen; Plugin gibt „U" zurück → 5 Minuten warten |
| Plugin-Datei: „Permission denied" | sudo chmod +x /usr/local/share/munin/plugins/snmp__didactum_sensors |
Munin Logs einsehen
# Munin Master Log sudo tail -f /var/log/munin/munin-update.log # Munin Node Log sudo tail -f /var/log/munin/munin-node.log # Alarm-Log sudo tail -f /var/log/munin/munin-limits.log
13. Abschluss-Checkliste
Didactum-Gerät
- SNMP aktiviert (v2c)
- Community String gesetzt (nicht „public"): didactum_munin
- snmpwalk vom Munin-Server erfolgreich
- MIB-Datei heruntergeladen
Munin-Server
- Pakete munin, munin-node, libnet-snmp-perl installiert
- MIB-Datei unter /usr/share/snmp/mibs/ gespeichert
- Plugin-Datei /usr/local/share/munin/plugins/snmp__didactum_sensors erstellt
- Plugin-Datei ausführbar (chmod +x)
- Symlink in /etc/munin/plugins/ angelegt
- Plugin-Konfiguration in /etc/munin/plugin-conf.d/didactum gesetzt
- munin.conf: Host-Eintrag und contacts angelegt
Plugin-Test
- munin-run config: Alle Graphen-Definitionen erscheinen fehlerfrei
- munin-run (normaler Lauf): Alle Sensorwerte werden zurückgegeben (keine „U")
- munin-node neu gestartet
- munin-cron einmal manuell ausgeführt
- Graphen im Web-Interface sichtbar
Alarme & Benachrichtigung
- Temperaturschwellen als Rohwert × 10 gesetzt (280 / 350)
- Leckage critical-Schwelle: 0.5
- Postfix installiert und Test-Mail erhalten
- contacts in munin.conf konfiguriert
- Test-Alarm ausgelöst und E-Mail empfangen