Giter Club home page Giter Club logo

check_synology's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.