Icinga2 Script for Synology Diskstation
Running checks and retrieving performance data for following measurements:
- Load
- Memory
- Disk
- RAID
- Storage
- UPS
- Status
- Update
Icinga Command
object CheckCommand "check_synology" {
import "plugin-check-command"
command = [ PluginDir + "/check_synology.py" ]
timeout = 45s
arguments += {
"--auth_prot" = {
description = "SNMPv3 - authentication protocol"
value = "$snmpv3_auth_proto$"
}
"--disk_temp_crit" = {
description = "Disk - critical temperature (in °C)"
value = "$disk_temp_crit$"
}
"--disk_temp_warn" = {
description = "Disk - warning temperature (in °C)"
value = "$disk_temp_warn$"
}
"--memory_crit" = {
description = "Memory - critical utilization (in percent)"
value = "$mem_critical$"
}
"--memory_warn" = {
description = "Memory - warning utilization (in percent)"
value = "$mem_warning$"
}
"--net_crit" = {
description = "Network - critical utilization (in percent)"
value = "$network_crit$"
}
"--net_warn" = {
description = "Network - warning utilization (in percent)"
value = "$network_warn$"
}
"--port" = {
description = "SNMP port"
value = "$snmp_port$"
}
"--priv_prot" = {
description = "SNMPv3 - privacy (encryption) protocol"
value = "$snmpv3_priv_proto$"
}
"--storage_used_crit" = {
description = "Storage - critical usage (in percent)"
value = "$storage_used_crit$"
}
"--storage_used_warn" = {
description = "Storage - warning usage (in percent)"
value = "$storage_used_warn$"
}
"--temp_crit" = {
description = "Status - critical NAS temperature (in °C)"
value = "$temp_crit$"
}
"--temp_warn" = {
description = "Status - warning NAS temperature (in °C)"
value = "$temp_warn$"
}
"--ups_level_crit" = {
description = "UPS - critical battery level (in percent)"
value = "$ups_level_crit$"
}
"--ups_level_warn" = {
description = "UPS - warning battery level (in percent)"
value = "$ups_level_warn$"
}
"--ups_load_crit" = {
description = "UPS - critical load (in percent)"
value = "$ups_load_crit$"
}
"--ups_load_warn" = {
description = "UPS - warning load (in percent)"
value = "$ups_load_warn$"
}
"-C" = {
description = "SNMPv1/2 - community"
value = "$snmp_community_name$"
}
"-H" = {
description = "SNMP host"
value = "$snmpv3_address$"
}
"-a" = {
description = "SNMPv3 - authentication key"
value = "$snmpv3_auth_key$"
}
"-c" = {
description = "Load - number of cpu cores for calculating thresholds"
value = "$cpu_cores$"
}
"-m" = {
description = "mode - selected measurements - load,memory, disk, raid, storage, ups, status, update, all (comma-seperated list)"
value = "$synology_mode$"
}
"-p" = {
description = "SNMPv3 - privacy key"
value = "$snmpv3_priv_key$"
}
"-u" = {
description = "SNMPv3 - username"
value = "$snmpv3_user$"
}
"-v" = {
description = "SNMP version"
value = "$snmp_version$"
}
"-x" = {
description = "mode - excluded measurements - load,memory, disk, raid, storage, ups, status, update (comma-seperated list)"
value = "$synology_exclude_mode$"
}
}
vars.disk_temp_crit = "70"
vars.disk_temp_warn = "60"
vars.mem_critical = "90"
vars.mem_warning = "80"
vars.network_crit = "90"
vars.network_warn = "80"
vars.snmp_port = "161"
vars.snmp_version = "3"
vars.snmpv3_address = "$host.address$"
vars.snmpv3_auth_proto = "SHA"
vars.snmpv3_priv_proto = "AES"
vars.storage_used_crit = "90"
vars.storage_used_warn = "80"
vars.synology_mode = "all"
vars.temp_crit = "80"
vars.temp_warn = "70"
vars.ups_level_crit = "50"
vars.ups_level_warn = "25"
vars.ups_load_crit = "90"
vars.ups_load_warn = "80"
}
Arguments
Argument | Description | Possible values | Default | Required |
---|---|---|---|---|
-H | SNMP host | hostname/ip-address | None | YES |
-v | SNMP version | 1/2c/3 | 3 | NO |
--port | SNMP port | int | 161 | NO |
-u | SNMPv3 - username | string | None | YES (for SNMPv3) |
--auth_prot | SNMPv3 - authentication protocol | SHA/MD5 | SHA | NO |
--priv_prot | SNMPv3 - privacy (encryption) protocol | AES/DES | AES | NO |
-a | SNMPv3 - authentication key | string | None | YES (for SNMPv3) |
-p | SNMPv3 - privacy key | string | None | YES (for SNMPv3) |
-C | SNMPv1/2 - community | string | public | YES (for SNMPv1/2) |
-m | mode - selected measurements | load,memory, disk, raid, storage, ups, status, update, all (comma-seperated list) | all | NO |
-x | mode - excluded measurements | load,memory, disk, raid, storage, ups, status, update (comma-seperated list) | None | NO |
-c | Load - number of cpu cores for calculating thresholds | int | 4 | NO |
--memory_warn | Memory - warning utilization (in percent) | int | 80 | NO |
--memory_crit | Memory - critical utilization (in percent) | int | 90 | NO |
--net_warn | Network - warning utilization (in percent) | int | 80 | NO |
--net_crit | Network - critical utilization (in percent) | int | 90 | NO |
--temp_warn | Status - warning NAS temperature (in °C) | int | 60 | NO |
--temp_crit | Status - critical NAS temperature (in °C) | int | 80 | NO |
--disk_temp_warn | Disk - warning temperature (in °C) | int | 50 | NO |
--disk_temp_crit | Disk - critical temperature (in °C) | int | 70 | NO |
--storage_used_warn | Storage - warning usage (in percent) | int | 80 | NO |
--storage_used_crit | Storage - critical usage (in percent) | int | 90 | NO |
--ups_level_warn | UPS - warning battery level (in percent) | int | 50 | NO |
--ups_level_crit | UPS - critical battery level (in percent) | int | 30 | NO |
--ups_load_warn | UPS - warning load (in percent) | int | 80 | NO |
--ups_load_crit | UPS - critical load (in percent) | int | 90 | NO |