Didactum Monitoring and Opsview Integration
A complete step-by-step guide to integrating Didactum monitoring devices and sensors into Opsview Monitor via SNMP - including host configuration, MIB import, SNMP Walk, SNMP polling service checks, SNMP traps, host templates, and email notifications.
- Software: Opsview Monitor (On-Premises or Cloud)
- Protocol: SNMP v1 / v2c / v3
- Devices: Didactum Monitoring System 100T / 300T / 500T / 550T
- Sensors: Temperature, Leakage, Humidity, Door Contact, Smoke
1. Prerequisites and System Overview
Opsview Monitor Server
- Opsview Monitor installed (on-premises or cloud)
- Web interface accessible (standard: <Server-IP>)
- UDP port 161 outbound open for SNMP polling
- UDP port 162 inbound open for SNMP traps
- Network access to the Didactum device
Didactum Device
- Monitoring System 100T, 300T, 500T or 550T
- SNMP enabled (v2c recommended)
- Device reachable by ICMP (ping) from the Opsview server
- MIB file available in the web interface
Important Opsview Directories (On-Premises)
/opt/opsview/ <-- Opsview main directory /opt/opsview/snmptraps/var/load/ <-- MIB files for SNMP traps /usr/share/snmp/mibs/ <-- MIB files for SNMP polling walk /opt/opsview/monitoringscripts/notifications/ <-- notification scripts
Two Monitoring Types in Opsview for Didactum
- SNMP Polling (active): Opsview queries the device regularly – ideal for temperature, humidity, and status values
- SNMP Traps (passive): The Didactum device independently sends a notification to Opsview in the event of an alarm – immediate alerting without polling delay
2. Enable SNMP on the Didactum device
Step 1 – Open web interface
Open in the browser: 192.168.1.50 (adjust the IP of the Didactum device)
Step 2 – Open SNMP settings
System settings → SNMP
Step 3 – Enter the following values
| Field in the Didactum web interface | Value |
|---|---|
| Enable SNMP | Enabled |
| SNMP version | v2c (recommended) |
| Community string | didactum_opsview (do not use "public"!) |
| SNMP port | 161 |
| Trap receiver IP | 192.168.1.10 (IP of the Opsview server) |
| Trap port | 162 |
| Trap version | v2c |
SNMPv3 settings (optional, increased security)
| Field | Value |
|---|---|
| Security name | opsview_user |
| Auth protocol | SHA |
| Auth password | at least 8 characters |
| Priv protocol | AES |
| Priv password | at least 8 characters |
| Security level | authPriv |
Save the settings. Test the SNMP connection from the Opsview server:
snmpwalk -v 2c -c didactum_opsview 192.168.1.50 .1.3.6.1.4.1.46501
3. Install the MIB File in Opsview
Installing the MIB file allows Opsview to translate OID numbers into readable names and greatly simplifies the selection of the correct OIDs during the SNMP walk.
Step 1 – Download the MIB file from the Didactum web interface
System settings → SNMP → "Download MIB file" → didactum.mib
Step 2 – Install the MIB for the SNMP polling walk
# Copy MIB file to the Opsview server sudo cp didactum.mib /usr/share/snmp/mibs/ # SNMP configuration for MIB usage echo "mibdirs /usr/share/snmp/mibs" | sudo tee -a /etc/snmp/snmp.conf echo "mibs ALL" | sudo tee -a /etc/snmp/snmp.conf
Step 3 – Install the MIB for SNMP traps
# For SNMP traps, the MIB must be placed in this directory: sudo cp didactum.mib /opt/opsview/snmptraps/var/load/ # Restart the snmptrapd service sudo systemctl restart opsview-snmptrapd
Step 4 – Test the MIB installation
# Check whether the MIB is loaded
snmptranslate -m /usr/share/snmp/mibs/didactum.mib \
.1.3.6.1.4.1.46501.5.1.1.7.101001
# Full walk with MIB names
snmpwalk -v 2c -c didactum_opsview -m ALL 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1
4. Create Didactum Host in Opsview
Navigation in the web interface
Configuration → Hosts → Add New Host
Step 1 – Fill in the “Basic” tab
| Field | Value |
|---|---|
| Host Name | didactum-monitor-01 |
| IP Address | 192.168.1.50 |
| Alias | Didactum Monitoring System 01 |
| Host Check Command | ping (default – if ICMP is reachable) |
| Icon | Select a suitable icon from the list (e.g. “server” or “environment”) |
Step 2 – Assign the “Host Templates” tab
Add the following host template:
| Template | Function |
|---|---|
| SNMP - MIB-II | Basic SNMP monitoring (recommended as a base) |
| Didactum Sensors | Custom template (will be created in section 7) |
Click Add to assign the templates.
Step 3 – Configure the “SNMP” tab
| Field | Value |
|---|---|
| Enable SNMP | Check the box (enabled) |
| SNMP Version | SNMPv2c |
| SNMP Community | didactum_opsview |
| SNMP Port | 161 |
For SNMPv3 additionally:
| Field | Value |
|---|---|
| SNMP Version | SNMPv3 |
| Username | opsview_user |
| Auth Protocol | SHA |
| Auth Password | Your auth password |
| Privacy Protocol | AES |
| Privacy Password | Your privacy password |
Step 4 – Test the SNMP connection
Click the Test SNMP Connection button. A green success message confirms that the connection is correct.
Step 5 – Save the host
Click Submit. The host is saved (but not yet activated – Apply Changes comes in section 11).
5. Perform an SNMP Walk
The SNMP walk displays all available OIDs of the Didactum device and greatly simplifies the configuration of the service checks.
Step 1 – Start the SNMP walk via the web interface
Configuration → Service Checks → Add New Service Check → Select type: SNMP Polling → Tab “SNMP Polling” → Field “Example Host”: select didactum-monitor-01 → Click “Rescan”
Opsview now performs a full SNMP walk against the Didactum device. The results are displayed in a table.
Step 2 – SNMP walk via command line (alternative)
# On the Opsview server:
snmpwalk -v 2c -c didactum_opsview 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1 | head -50
# Only measured values (OID .7.x):
snmpwalk -v 2c -c didactum_opsview 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1.7
# Only status values (OID .6.x):
snmpwalk -v 2c -c didactum_opsview 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1.6
# Query a single value directly:
snmpget -v 2c -c didactum_opsview 192.168.1.50 \
.1.3.6.1.4.1.46501.5.1.1.7.101001
Step 3 – Transfer OID from SNMP walk table
In the web interface: click the desired OID in the results table. Opsview automatically fills the “OID” and “Label” fields in the service check.
6. Configure SNMP Polling Service Checks
Each service check monitors a specific sensor value against defined thresholds.
Navigation
Configuration → Service Checks → Add New Service Check → Type: SNMP Polling
Service Check: Temperature Sensor
Tab “Details” → Basic:
| Field | Value |
|---|---|
| Name | Didactum Temperature Sensor 01 |
| Description | Room temperature – Sensor 01 (raw value ÷ 10 = °C) |
| Check Period | 24x7 |
| Check Interval | 5 minutes |
| Retry Interval | 1 minute |
| Max Check Attempts | 3 |
| Notification Period | 24x7 |
| Notification Options | Warning, Critical, Recovery |
Tab “SNMP Polling”:
| Field | Value |
|---|---|
| OID | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| Label | temperature |
| Calculate Rate | No rate (use raw value) |
| Warning Condition | > Value: 280 (= 28.0 °C; raw value × 10) |
| Critical Condition | > Value: 350 (= 35.0 °C; raw value × 10) |
Important: The Didactum device provides temperature values as raw value × 10. 25.5 °C = OID value 255. All thresholds in the service check must therefore also be specified × 10.
Click Submit.
Service Check: Leakage Sensor
| Field | Value |
|---|---|
| Name | Didactum Leakage Sensor 01 |
| Check Interval | 2 minutes |
| Max Check Attempts | 1 (immediately critical, no delay) |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.107001 |
| Label | leakage |
| Warning Condition | leave blank |
| Critical Condition | >= Value: 1 (1 = water detected) |
Service Check: Temperature Sensor Status
| Field | Value |
|---|---|
| Name | Didactum Temp Status Sensor 01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| Label | temp_status |
| Warning Condition | leave blank |
| Critical Condition | >= Value: 1 (1=Alarm, 2=No signal) |
Service Check: Humidity
| Field | Value |
|---|---|
| Name | Didactum Humidity Sensor 01 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.102001 |
| Label | humidity |
| Warning Condition | > Value: 80 |
| Critical Condition | > Value: 90 |
Service Check: Door Contact
| Field | Value |
|---|---|
| Name | Didactum Door Contact 01 |
| Check Interval | 1 minute |
| Max Check Attempts | 1 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.104001 |
| Label | door_status |
| Warning Condition | >= Value: 1 (1 = open) |
| Critical Condition | leave blank |
Service Check: Smoke Detector
| Field | Value |
|---|---|
| Name | Didactum Smoke Detector 01 |
| Max Check Attempts | 1 |
| OID | .1.3.6.1.4.1.46501.5.1.1.7.106001 |
| Label | smoke |
| Critical Condition | >= Value: 1 (1 = smoke) |
7. Create and Assign Host Template
A host template bundles all Didactum-specific service checks. This allows multiple devices to be configured with a single click.
Step 1 – Create host template
Configuration → Host Templates → Add New Host Template
| Field | Value |
|---|---|
| Name | Didactum Monitoring System |
| Description | Template for all Didactum monitoring devices with sensors |
Step 2 – Assign service checks to the template
In the "Service Checks" section, add all previously created checks:
- Didactum Temperature Sensor 01
- Didactum Temp Status Sensor 01
- Didactum Leakage Sensor 01
- Didactum Humidity Sensor 01
- Didactum Door Contact 01
- Didactum Smoke Detector 01
Click Submit.
Step 3 – Assign template to the Didactum host
Configuration → Hosts → edit didactum-monitor-01 → Tab "Host Templates" → Add "Didactum Monitoring System" from the list → Submit
Step 4 – Reuse template for a second device
Configuration → Hosts → Add New Host → IP: 192.168.1.51 → Host Name: didactum-monitor-02 → Host Templates → Add "Didactum Monitoring System" → SNMP Tab → Community: didactum_opsview → Submit
8. Configure SNMP Traps
With SNMP traps, the Didactum device immediately sends a notification to Opsview in the event of an alarm – without having to wait for the next polling cycle.
Step 1 – Create SNMP trap service check
Configuration → Service Checks → Add New Service Check → Select type: SNMP Trap
| Field | Value |
|---|---|
| Name | Didactum SNMP Trap Alarm |
| Description | Receives SNMP traps from the Didactum Monitoring System |
| Check Period | 24x7 |
| Notification Period | 24x7 |
| Max Check Attempts | 1 |
Step 2 – Configure the "SNMP Trap" tab
| Field | Value |
|---|---|
| SNMP Trap OID (Enterprise OID) | .1.3.6.1.4.1.46501 |
| Match column (Varbind OID) | empty (receive all traps of this enterprise OID) |
| Match value | empty |
| Service State when matched | CRITICAL |
| Service State when not matched | OK |
Click Submit.
Step 3 – Trap-specific rules for individual sensors
For more precise trap handling, multiple rules can be created within the service check:
| Rule | Match OID | Match Value | Resulting State |
|---|---|---|---|
| Leakage alarm | .1.3.6.1.4.1.46501.5.1.1.7.107001 | 1 | CRITICAL |
| Temperature alarm | .1.3.6.1.4.1.46501.5.1.1.6.101001 | 1 | CRITICAL |
| Smoke alarm | .1.3.6.1.4.1.46501.5.1.1.7.106001 | 1 | CRITICAL |
| Door open | .1.3.6.1.4.1.46501.5.1.1.7.104001 | 1 | WARNING |
Step 4 – Assign trap service check to the host
Configuration → Hosts → didactum-monitor-01 → Host Templates → "Didactum Monitoring System" → Service Checks → Add "Didactum SNMP Trap Alarm" → Submit
Step 5 – Check snmptrapd service (on-premises)
sudo systemctl status opsview-snmptrapd # View trap log sudo tail -f /opt/opsview/snmptraps/var/log/snmptrapd.log
9. SNMP OID Reference
All Didactum OIDs begin with .1.3.6.1.4.1.46501 (older firmware) or .1.3.6.1.4.1.39052 (newer models). The sensor ID is appended at the end.
OID fields per sensor
| Field | Meaning | Example |
|---|---|---|
| .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=No signal) | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| .7.x.SENSOR_ID | Measured value (current) | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
Sensor types with OIDs and Opsview thresholds
| Sensor type | Sensor ID | OID measured value | OID status | Threshold note |
|---|---|---|---|---|
| Temperature sensor (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 | Enter raw value × 10: 28°C = 280, 35°C = 350 |
| Temperature sensor (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 | Enter raw value × 10 |
| Water sensor / leakage | 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 >= 1 (1 = water detected) |
| Humidity | 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 (directly in %) |
| Potential-free contact | 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 | 0=open, 1=closed |
| Door contact | 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 >= 1 (1 = open) |
| Smoke detector | 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 >= 1 (1 = alarm) |
Finding the sensor ID:
In the Didactum web interface under System tree → Select sensor → Details. This ID is appended to the end of the OID.
Temperature thresholds in Opsview:
Opsview compares the raw value of the OID directly. Since Didactum transmits temperatures × 10, thresholds must also be entered × 10. Warning at 28°C → value 280; Critical at 35°C → value 350.
MIB prefix per model:
Older devices use .1.3.6.1.4.1.46501, newer models possibly .1.3.6.1.4.1.39052. Obtain the exact OIDs from your device's MIB file.
10. Configure Email Notifications
Step 1 – Activate notification method
Configuration → Notification Methods
The email notification method is present by default. Ensure it is enabled:
| Field | Value |
|---|---|
| Name | Email (Default) |
| Enable | Checkbox checked (enabled) |
| Command | notify_by_email |
Click Submit.
Step 2 – Configure local mail sending (on-premises)
# Install Postfix sudo apt install postfix mailutils -y # Configuration type: "Satellite system" or "Internet Site" # Set relay host (in /etc/postfix/main.cf): relayhost = mail.ihredomain.de # Restart Postfix sudo systemctl restart postfix # Test echo "Test Opsview" | mail -s "Test" [admin@ihredomain.de](mailto:admin@ihredomain.de)
Adjust sender address:
# Sender domain sudo nano /etc/mailname # Content: ihredomain.de # Check sender address in Opsview script: sudo nano /opt/opsview/monitoringscripts/notifications/notify_by_email # Default path for mail binary: /usr/bin/Mail # Correct to /usr/bin/mail if necessary
Step 3 – Create contact
Configuration → Contacts → Add New Contact
| Field | Value |
|---|---|
| Full Name | Administrator |
| Username | admin |
| [admin@ihredomain.de](mailto:admin@ihredomain.de) | |
| Notification Period | 24x7 |
| Host Notification Options | Down, Unreachable, Recovery |
| Service Notification Options | Warning, Critical, Recovery, Unknown |
| Notification Method |
Click Submit.
Step 4 – Create notification profile
Configuration → Notification Profiles → Add New Notification Profile
| Field | Value |
|---|---|
| Profile Name | Didactum Alarm Profile |
| Contact | Administrator |
| Notification Method | |
| All Service Checks Notify | Enabled |
| Notify on Warning | Yes |
| Notify on Critical | Yes |
| Notify on Recovery | Yes |
Step 5 – Assign contact to the host
Configuration → Hosts → edit didactum-monitor-01 → Tab "Contacts" → Add Administrator → Submit
11. Apply Configuration (Apply Changes)
In Opsview, all configuration changes only become active after an explicit "Apply Changes". This step generates the Nagios configuration files and restarts the monitoring daemon.
Apply Changes via the web interface
Configuration → Apply Changes → Click the "Apply Changes" button
Opsview displays the progress. Upon completion, the message "Configuration applied successfully" appears.
Apply Changes via command line (on-premises)
sudo /opt/opsview/bin/opsview-config --apply # or: sudo /opt/opsview/utils/rc.opsview gen_config reload
When is Apply Changes required?
- After adding a new host
- After creating or modifying service checks
- After changing host templates
- After creating contacts or notification profiles
- After any configuration change in the web interface
12. Testing and Debugging
Test SNMP connection
# Simple connection test
snmpget -v 2c -c didactum_opsview 192.168.1.50 sysDescr.0
# Query temperature value (raw value ÷ 10 = °C)
snmpget -v 2c -c didactum_opsview 192.168.1.50 \\
.1.3.6.1.4.1.46501.5.1.1.7.101001
# Query leakage status
snmpget -v 2c -c didactum_opsview 192.168.1.50 \\
.1.3.6.1.4.1.46501.5.1.1.7.107001
# SNMP connection test in the web interface:
Configuration → Hosts → didactum-monitor-01 → SNMP Tab
→ "Test SNMP Connection" button
Check service check status
Monitoring → Service Checks → Filter: Host = didactum-monitor-01 → Display status of all service checks
Run SNMP Walk again in the web interface
Configuration → Service Checks → [Edit service check] → SNMP Polling Tab → Example Host: didactum-monitor-01 → Click "Rescan"
Error Messages and Solutions
| Problem | Cause & Solution |
|---|---|
| Host DOWN after Apply Changes | Ping error: device unreachable or ICMP blocked → change Host Check Command to "tcp" |
| "Test SNMP Connection" fails | Community string incorrect; UDP 161 blocked; SNMP not enabled on Didactum |
| SNMP Walk returns no results | MIB file not installed; community string incorrect → test snmpwalk on CLI |
| Temperature value appears 10× too high | Thresholds not entered × 10 → edit service check, correct values |
| Service remains permanently UNKNOWN | OID incorrect or sensor ID does not match → check sensor ID in Didactum web interface |
| No email on alarm | Postfix not running; contact not assigned to host; notification profile missing; forgot Apply Changes |
| SNMP trap does not arrive | Trap receiver IP incorrect on Didactum; UDP 162 blocked; opsview-snmptrapd not started |
| Apply Changes fails | Configuration error present → read error message in Apply log |
Viewing Opsview Logs (On-Premises)
# Nagios Core Log sudo tail -f /opt/opsview/nagios/var/nagios.log # Opsview Web Log sudo tail -f /opt/opsview/var/log/opsview.log # SNMP Trap Log sudo tail -f /opt/opsview/snmptraps/var/log/snmptrapd.log # Systemd Journal sudo journalctl -u opsview -f --since "1 hour ago"
Completion Checklist
Didactum device
- SNMP enabled (v2c or v3)
- Community string set (not "public")
- Device reachable via ping from Opsview server
- Trap receiver IP set to Opsview server
- Trap port 162 entered
- MIB file downloaded
Opsview server
- MIB file saved under /usr/share/snmp/mibs/
- MIB file saved under /opt/opsview/snmptraps/var/load/ (for traps)
- snmpwalk test from Opsview server successful
- UDP 161 outbound and UDP 162 inbound opened
Opsview configuration
- Host "didactum-monitor-01" configured with SNMP tab
- SNMP connection test successful (green message)
- SNMP Walk executed successfully (sensors visible)
- Service checks created for all sensor types
- Temperature thresholds entered × 10
- Host template "Didactum Monitoring System" created
- All service checks assigned to the template
- Template assigned to the host
- SNMP trap service check created and assigned
Notification
- Postfix / mail sending works (test email received)
- Email notification method enabled
- Contact created with email address
- Notification profile "Didactum Alarm Profile" created
- Contact assigned to the host
- Apply Changes executed successfully
- Test alarm triggered and email received