Didactum Monitoring and isyVmon Integration
Complete step-by-step guide for integrating Didactum monitoring devices and sensors into isyVmon via SNMP – including host creation, check commands, service configuration, SNMP traps, and email alerting.
Note on the software: isyVmon is fully based on Nagios (monitoring engine) and Centreon (web interface). Therefore, all configuration steps described here also apply to pure Nagios and Centreon installations. Configuration files and menu paths are identical.
- Software: isyVmon (iT-CUBE SYSTEMS) – based on Nagios + Centreon
- Protocol: SNMP v1 / v2c / v3 via check_snmp plugin
- Devices: Didactum Monitoring System 100T / 300T / 500T / 550T
- Sensors: Temperature, leakage, humidity, door contact, smoke
1. Prerequisites & System Overview
isyVmon Server
- isyVmon installed as a virtual appliance or hardware appliance
- Web interface accessible (default: <Server-IP>/centreon)
- Nagios plugins installed (package nagios-plugins or monitoring-plugins)
- Package snmp and snmp-mibs-downloader installed
- UDP port 161 open outbound (SNMP polling)
- UDP port 162 open inbound (SNMP traps)
Didactum Device
- Monitoring System 100T / 300T / 500T or 550T
- SNMP enabled (v2c or v3)
- Network access to the isyVmon server
- MIB file available in the web interface
Architecture
[isyVmon / Nagios + Centreon] [Didactum Monitoring System] IP: 192.168.1.10 IP: 192.168.1.50 Web: 192.168.1.10/centreon --SNMP Polling UDP 161--> <--SNMP Traps UDP 162---
Important directories on the isyVmon server
/usr/local/nagios/etc/ <-- Nagios configuration /usr/local/nagios/etc/objects/ <-- Hosts, services, commands /usr/lib/nagios/plugins/ <-- check_snmp and other plugins /usr/share/snmp/mibs/ <-- MIB files /var/log/nagios/nagios.log <-- Nagios logfile
Note:
Paths may vary slightly depending on the isyVmon version and installation type. Alternative paths: /etc/nagios/, /etc/centreon/.
2. Enable SNMP on the Didactum device
Step 1 – Open web interface
Open in browser: 192.168.1.50 (adjust 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) or v3 |
| Community string (v1/v2c) | didactum_isyvmon (do not use “public”!) |
| SNMP port | 161 |
| Trap receiver IP | 192.168.1.10 (IP of the isyVmon server) |
| Trap port | 162 |
| Trap version | v2c |
SNMPv3 settings (optional, increased security)
| Field | Value |
|---|---|
| Security name | isyvmon_user |
| Auth protocol | SHA |
| Auth password | min. 8 characters |
| Priv protocol | AES |
| Priv password | min. 8 characters |
| Security level | authPriv |
3. Check Packages and the check_snmp Plugin
Step 1 – Log in to the isyVmon server via SSH
ssh root@192.168.1.10
Step 2 – Install SNMP packages
sudo apt update sudo apt install -y snmp snmp-mibs-downloader nagios-plugins Check availability of check_snmp ls /usr/lib/nagios/plugins/check_snmp /usr/lib/nagios/plugins/check_snmp --help | head -10
Step 3 – Test SNMP connection to the Didactum device
# List all sensors snmpwalk -v 2c -c didactum_isyvmon 192.168.1.50 .1.3.6.1.4.1.46501 Query temperature value directly (raw value ÷ 10 = degrees Celsius) snmpget -v 2c -c didactum_isyvmon 192.168.1.50 .1.3.6.1.4.1.46501.5.1.1.7.101001 Test check_snmp plugin directly /usr/lib/nagios/plugins/check_snmp -H 192.168.1.50 -C didactum_isyvmon -P 2 -o .1.3.6.1.4.1.46501.5.1.1.7.101001 -w 280 -c 350 -l "Temperature" Expected output: SNMP OK - 235
4. Install MIB File
Step 1 – Download MIB from the Didactum web interface
System settings → SNMP → "Download MIB file" → didactum.mib
Step 2 – Install MIB on the server
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 using MIB name snmpwalk -v 2c -c didactum_isyvmon -m ALL 192.168.1.50 DIDACTUM-MIB::sensorValue
5. Configure the SNMP Community in isyVmon/Centreon
isyVmon (Centreon) manages SNMP credentials as macros that are assigned to hosts and commands.
Navigation in the isyVmon/Centreon web interface
Configuration → Commands → Macros
Or directly in the host template (recommended):
Configuration → Hosts → Templates → "Didactum Template" edit → Macros → Add Macro
| Macro name | Value | Description |
|---|---|---|
| $_HOSTSNMPCOMMUNITY$ | didactum_isyvmon | Community string for SNMPv2c |
| $_HOSTSNMPVERSION$ | 2 | SNMP version (1, 2 or 3) |
| $_HOSTSNMPPORT$ | 161 | SNMP port |
Additionally for SNMPv3:
| Macro name | Value |
|---|---|
| $_HOSTSNMPUSER$ | isyvmon_user |
| $_HOSTSNMPAUTHPROTOCOL$ | SHA |
| $_HOSTSNMPAUTHPASS$ | Your auth password |
| $_HOSTSNMPPRIVPROTOCOL$ | AES |
| $_HOSTSNMPPRIVPASS$ | Your priv password |
6. Create Didactum Host in isyVmon
Option A – Via the Centreon web interface (recommended)
Configuration → Hosts → Add
| Field | Value |
|---|---|
| Host name | didactum-monitor-01 |
| Alias | Didactum Monitoring System 01 |
| IP address / DNS | 192.168.1.50 |
| SNMP community & version | didactum_isyvmon / 2c |
| Monitored from | Central (or desired poller) |
| Host groups | Didactum Monitoring (create new group) |
| Templates | generic-host or custom Didactum template |
| Active checks enabled | Yes |
| Notifications enabled | Yes |
| Notification period | 24x7 |
Click Save.
Option B – Directly as a Nagios configuration file
sudo nano /usr/local/nagios/etc/objects/didactum-hosts.cfg
# ================================================================
Didactum Monitoring System – Nagios host configuration
================================================================
define host {
host_name didactum-monitor-01
alias Didactum Monitoring System 01
address 192.168.1.50
check_command check-host-alive
max_check_attempts 3
check_interval 5
retry_interval 1
check_period 24x7
notification_interval 60
notification_period 24x7
notification_options d,u,r
contact_groups admins
hostgroups didactum-monitoring
# SNMP custom variables (for macros in commands)
_SNMPCOMMUNITY didactum_isyvmon
_SNMPVERSION 2
_SNMPPORT 161
}
define hostgroup {
hostgroup_name didactum-monitoring
alias Didactum Monitoring devices
members didactum-monitor-01
}
7. Define check_snmp Commands for Didactum
Option A – Via the Centreon web interface
Configuration → Commands → Checks → Add
Command: Didactum temperature
| Field | Value |
|---|---|
| Command name | check_didactum_temperature |
| Command type | Check |
| Command line | $USER1$/check_snmp -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -P $_HOSTSNMPVERSION$ -o $ARG1$ -w $ARG2$ -c $ARG3$ -l "Temperature" -u "0.1Degree" |
Click “Describe arguments” and describe the following arguments:
| Argument | Description | Example value |
|---|---|---|
| ARG1 | OID of the temperature sensor | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| ARG2 | Warning threshold (raw value ×10) | 280 (= 28.0 °C) |
| ARG3 | Critical threshold (raw value ×10) | 350 (= 35.0 °C) |
Command: Didactum leakage
| Field | Value |
|---|---|
| Command name | check_didactum_leakage |
| Command line | $USER1$/check_snmp -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -P $_HOSTSNMPVERSION$ -o $ARG1$ -w 0:0 -c 1:1 -l "Leakage" |
Command: Didactum sensor status (general)
| Field | Value |
|---|---|
| Command name | check_didactum_status |
| Command line | $USER1$/check_snmp -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -P $_HOSTSNMPVERSION$ -o $ARG1$ -w 0:0 -c 1:2 -l "$ARG2$" |
Option B – Directly as a Nagios configuration file
sudo nano /usr/local/nagios/etc/objects/didactum-commands.cfg
# ================================================================
Didactum SNMP check commands – Nagios configuration
================================================================
Temperature sensor with warning/critical thresholds
ARG1 = OID, ARG2 = Warning (×10), ARG3 = Critical (×10)
define command {
command_name check_didactum_temperature
command_line $USER1$/check_snmp -H $HOSTADDRESS$
-C $ARG4$ -P 2
-o $ARG1$ -w $ARG2$ -c $ARG3$
-l "Temperature" -u "0.1Degree"
}
Leakage sensor (0=OK, 1=CRITICAL)
define command {
command_name check_didactum_leakage
command_line $USER1$/check_snmp -H $HOSTADDRESS$
-C $ARG2$ -P 2
-o $ARG1$ -w 0:0 -c 1:1
-l "Leakage"
}
Sensor status (0=OK, 1=Alarm, 2=No signal)
define command {
command_name check_didactum_status
command_line $USER1$/check_snmp -H $HOSTADDRESS$
-C $ARG3$ -P 2
-o $ARG1$ -w 0:0 -c 1:2
-l "$ARG2$"
}
Humidity with thresholds in %
define command {
command_name check_didactum_humidity
command_line $USER1$/check_snmp -H $HOSTADDRESS$
-C $ARG4$ -P 2
-o $ARG1$ -w $ARG2$ -c $ARG3$
-l "Humidity" -u "%"
}
Door contact (0=closed=OK, 1=open=WARNING)
define command {
command_name check_didactum_door
command_line $USER1$/check_snmp -H $HOSTADDRESS$
-C $ARG2$ -P 2
-o $ARG1$ -w 1:1
-l "Door contact"
}
8. Create Services for All Sensor Types
Option A – Via the Centreon web interface
Configuration → Services → Add
Service: Temperature sensor
| Field | Value |
|---|---|
| Description | Didactum Temperature Sensor 01 |
| Linked with hosts | didactum-monitor-01 |
| Check command | check_didactum_temperature |
| ARG1 | .1.3.6.1.4.1.46501.5.1.1.7.101001 |
| ARG2 (Warning) | 280 (= 28.0 °C, raw value × 10) |
| ARG3 (Critical) | 350 (= 35.0 °C, raw value × 10) |
| Check interval | 5 minutes |
| Retry interval | 1 minute |
| Max check attempts | 3 |
| Notifications enabled | Yes |
| Service groups | Didactum sensors |
Service: Leakage sensor
| Field | Value |
|---|---|
| Description | Didactum Leakage Sensor 01 |
| Check command | check_didactum_leakage |
| ARG1 | .1.3.6.1.4.1.46501.5.1.1.7.107001 |
| Check interval | 2 minutes |
| Max check attempts | 1 (immediately critical) |
Service: Humidity
| Field | Value |
|---|---|
| Description | Didactum Humidity Sensor 01 |
| Check command | check_didactum_humidity |
| ARG1 | .1.3.6.1.4.1.46501.5.1.1.7.102001 |
| ARG2 (Warning) | 80 |
| ARG3 (Critical) | 90 |
| Check interval | 5 minutes |
Service: Door contact
| Field | Value |
|---|---|
| Description | Didactum Door Contact 01 |
| Check command | check_didactum_door |
| ARG1 | .1.3.6.1.4.1.46501.5.1.1.7.104001 |
| Check interval | 1 minute |
Service: Temperature sensor status
| Field | Value |
|---|---|
| Description | Didactum Temp Status Sensor 01 |
| Check command | check_didactum_status |
| ARG1 | .1.3.6.1.4.1.46501.5.1.1.6.101001 |
| ARG2 | Temp status |
| Check interval | 5 minutes |
Option B – Directly as a Nagios configuration file
sudo nano /usr/local/nagios/etc/objects/didactum-services.cfg
# ================================================================
Didactum services – Nagios configuration
================================================================
--- Temperature sensor -------------------------------------------
define service {
host_name didactum-monitor-01
service_description Didactum Temperature Sensor 01
check_command check_didactum_temperature!.1.3.6.1.4.1.46501.5.1.1.7.101001!280!350!didactum_isyvmon
max_check_attempts 3
check_interval 5
retry_interval 1
check_period 24x7
notification_interval 60
notification_period 24x7
notification_options w,c,r
contact_groups admins
servicegroups didactum-sensors
}
--- Temperature sensor status -----------------------------------
define service {
host_name didactum-monitor-01
service_description Didactum Temp Status Sensor 01
check_command check_didactum_status!.1.3.6.1.4.1.46501.5.1.1.6.101001!Temp status!didactum_isyvmon
max_check_attempts 3
check_interval 5
retry_interval 1
check_period 24x7
notification_interval 60
notification_period 24x7
notification_options c,r
contact_groups admins
}
--- Leakage sensor ---------------------------------------------
define service {
host_name didactum-monitor-01
service_description Didactum Leakage Sensor 01
check_command check_didactum_leakage!.1.3.6.1.4.1.46501.5.1.1.7.107001!didactum_isyvmon
max_check_attempts 1
check_interval 2
retry_interval 1
check_period 24x7
notification_interval 30
notification_period 24x7
notification_options c,r
contact_groups admins
servicegroups didactum-sensors
}
--- Humidity ---------------------------------------------------
define service {
host_name didactum-monitor-01
service_description Didactum Humidity Sensor 01
check_command check_didactum_humidity!.1.3.6.1.4.1.46501.5.1.1.7.102001!80!90!didactum_isyvmon
max_check_attempts 3
check_interval 5
retry_interval 1
check_period 24x7
notification_interval 60
notification_period 24x7
notification_options w,c,r
contact_groups admins
servicegroups didactum-sensors
}
--- Door contact -----------------------------------------------
define service {
host_name didactum-monitor-01
service_description Didactum Door Contact 01
check_command check_didactum_door!.1.3.6.1.4.1.46501.5.1.1.7.104001!didactum_isyvmon
max_check_attempts 1
check_interval 1
retry_interval 1
check_period 24x7
notification_interval 30
notification_period 24x7
notification_options w,r
contact_groups admins
servicegroups didactum-sensors
}
define servicegroup {
servicegroup_name didactum-sensors
alias Didactum sensor services
}
9. Receiving SNMP Traps
Nagios/isyVmon does not receive traps directly. The path goes via snmptrapd → Nagios passive check.
Step 1 – Install and configure snmptrapd
sudo apt install snmptrapd -y sudo nano /etc/snmp/snmptrapd.conf
authCommunity execute,log,net didactum_isyvmon traphandle .1.3.6.1.4.1.46501 /etc/nagios/scripts/didactum-trap-handler.sh
Step 2 – Create trap handler script
sudo mkdir -p /etc/nagios/scripts sudo nano /etc/nagios/scripts/didactum-trap-handler.sh
#!/bin/bash ================================================================ Didactum SNMP trap handler for Nagios/isyVmon ================================================================ NAGIOS_CMD="/var/run/nagios/nagios.cmd" HOST="didactum-monitor-01" SERVICE="Didactum SNMP Trap" STATE=2 # CRITICAL TIMESTAMP=$(date +%s) MESSAGE="CRITICAL: Didactum SNMP trap received from $1 – $*" Submit passive check result to Nagios echo "[$TIMESTAMP] PROCESS_SERVICE_CHECK_RESULT;$HOST;$SERVICE;$STATE;$MESSAGE" >> $NAGIOS_CMD
sudo chmod +x /etc/nagios/scripts/didactum-trap-handler.sh
Step 3 – Create passive service in Nagios/Centreon
sudo nano /usr/local/nagios/etc/objects/didactum-trap-service.cfg
define service {
host_name didactum-monitor-01
service_description Didactum SNMP Trap
check_command check_dummy!0!"Waiting for SNMP traps..."
active_checks_enabled 0
passive_checks_enabled 1
max_check_attempts 1
check_interval 10
check_period 24x7
notification_interval 30
notification_period 24x7
notification_options c,r
contact_groups admins
}
Step 4 – Start snmptrapd
sudo systemctl enable snmptrapd sudo systemctl start snmptrapd
10. 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
| Sensor type | Sensor ID | OID measured value | OID status | Unit / 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 | Raw value ÷ 10 = °C, enter threshold × 10 |
| 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 | Raw value ÷ 10 = °C |
| 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 | 0 = dry, 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 | Value in % (65 = 65%) |
| 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 | 0 = closed, 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 | 0 = no smoke, 1 = alarm |
Determine 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 check_snmp:
check_snmp works with the raw value. Thresholds must be entered × 10. 28 °C = input value 280, 35 °C = input value 350.
MIB prefix per model:
Older devices use .1.3.6.1.4.1.46501, newer models may use .1.3.6.1.4.1.39052. Refer to the exact OIDs in the MIB file of your device.
11. Configure Email Alerts
Step 1 – Create contact
In the Centreon/isyVmon web interface:
Configuration → Users → Contacts → Add
| Field | Value |
|---|---|
| Full name | Administrator |
| Alias | admin |
| admin@yourdomain.com | |
| Host notification period | 24x7 |
| Host notification options | d, u, r (Down, Unreachable, Recovery) |
| Service notification period | 24x7 |
| Service notification options | w, c, r (Warning, Critical, Recovery) |
| Host notification commands | host-notify-by-email |
| Service notification commands | notify-service-by-email |
Step 2 – Create contact group
Configuration → Users → Contact Groups → Add Group Name: admins Members: admin
Step 3 – Ensure mail delivery on the server
sudo apt install postfix mailutils -y Select configuration type: "Internet Site" Test: echo "Test mail isyVmon" | mail -s "Test" admin@yourdomain.com
Step 4 – Check Nagios notification commands
# Default commands are already present in the Nagios configuration: grep -A5 "notify-service-by-email" /usr/local/nagios/etc/objects/commands.cfg
The default Nagios notification commands automatically send emails when a service changes to WARNING, CRITICAL, or UNKNOWN state and a contact is assigned.
12. Export Configuration and Reload Nagios
All changes made via the Centreon/isyVmon web interface must be exported so that Nagios applies them.
Option A – Via the Centreon web interface (recommended)
Configuration → Pollers → Central → Export configuration
Enable the following options:
- Generate configuration files: Yes
- Run monitoring engine debug (-v): Yes (for initial test)
- Move export files: Yes
- Restart monitoring engine: Yes
- Method: Restart
Click Export. Centreon generates the Nagios configuration files and restarts Nagios.
Option B – Directly via command line
# Check configuration for syntax errors sudo nagios -v /usr/local/nagios/etc/nagios.cfg Reload Nagios (no full restart required) sudo systemctl reload nagios If errors occur: full restart sudo systemctl restart nagios Check status sudo systemctl status nagios
Option C – Include directly in isyVmon configuration file
sudo nano /usr/local/nagios/etc/nagios.cfg
Add the following lines (if not present):
cfg_file=/usr/local/nagios/etc/objects/didactum-hosts.cfg cfg_file=/usr/local/nagios/etc/objects/didactum-commands.cfg cfg_file=/usr/local/nagios/etc/objects/didactum-services.cfg cfg_file=/usr/local/nagios/etc/objects/didactum-trap-service.cfg
13. Testing and Debugging
Test check_snmp directly
# Temperature value (expected: SNMP OK - 235) /usr/lib/nagios/plugins/check_snmp -H 192.168.1.50 -C didactum_isyvmon -P 2 -o .1.3.6.1.4.1.46501.5.1.1.7.101001 -w 280 -c 350 -l "Temperature" Leakage status (expected: SNMP OK - 0) /usr/lib/nagios/plugins/check_snmp -H 192.168.1.50 -C didactum_isyvmon -P 2 -o .1.3.6.1.4.1.46501.5.1.1.7.107001 -w 0:0 -c 1:1 -l "Leakage"
Validate Nagios configuration
sudo nagios -v /usr/local/nagios/etc/nagios.cfg Expected output: "Things look okay - No serious problems..."
Check service status in the Centreon/isyVmon web interface
Monitoring → Services → By Host → Host: didactum-monitor-01 → View status of the Didactum services
Error messages and solutions
| Problem | Cause & solution |
|---|---|
| check_snmp: No response from remote host | Firewall blocks UDP 161; SNMP not enabled on Didactum; wrong IP or community |
| SNMP OK, but temperature 10× too high | Raw value not considered → enter thresholds × 10 (28 °C = 280) |
| Service remains UNKNOWN | check_snmp not found; wrong path in command_line → check with which check_snmp |
| Configuration error during export | Run nagios -v nagios.cfg, read errors and fix them |
| No email on alert | Postfix not running; contact has no email; contact group not assigned to the service |
| Host does not appear in monitoring view | Configuration not exported → Configuration → Pollers → Export |
| SNMP trap not received | snmptrapd not running; UDP 162 not open; trap handler script not executable |
View Nagios logs
sudo tail -f /var/log/nagios/nagios.log sudo tail -f /var/log/nagios/host-perfdata
14. Final Checklist
Didactum device
- SNMP enabled (v2c or v3)
- Community string set (not “public”)
- Trap receiver IP set to isyVmon server
- Trap port 162 configured
- MIB file downloaded
- snmpwalk test from the isyVmon server successful
isyVmon / Nagios server
- Packages snmp, snmp-mibs-downloader, nagios-plugins installed
- MIB file stored under /usr/share/snmp/mibs/
- check_snmp successfully tested directly on the command line
- Firewall: UDP 161 outbound, UDP 162 inbound open
Centreon / isyVmon web interface
- SNMP community stored as host macro
- Host “didactum-monitor-01” created (IP, community, template)
- Check commands defined for all sensor types
- Services created for temperature, leakage, humidity, door contact
- Contact with email address and contact group created
- Contact group assigned to the services
- Configuration exported (Configuration → Pollers → Export)
Tests & validation
- nagios -v: configuration error-free
- Monitoring view: services show current status
- Temperature thresholds: raw value × 10 entered correctly
- Test alert triggered and email received
- SNMP trap reception tested (optional)