/****************************************************************************** * Icinga 2 * * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software Foundation * * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * ******************************************************************************/ object CheckCommand "interfacetable" { command = [ PluginContribDir + "/check_interface_table_v3t" ] arguments = { "-H" = { value = "$interfacetable_hostquery$" description = "Specifies the remote host to poll" } "-h" = { value = "$interfacetable_hostdisplay$" description = "Specifies the hostname to display in the HTML link" } "-r" = { set_if = "$interfacetable_regex$" description = "Interface names and property names for some other options will be interpreted as regular expressions" } "--outputshort" = { set_if = "$interfacetable_outputshort$" description = "Reduce the verbosity of the plugin output" } "-e" = { value = "$interfacetable_exclude$" description = "Comma separated list of interfaces globally excluded from the monitoring" } "-i" = { value = "$interfacetable_include$" description = "Comma separated list of interfaces globally included in the monitoring" } "--alias-matching" = { set_if = "$interfacetable_aliasmatching$" description = "Allow you to specify alias in addition to interface names" } "--et" = { value = "$interfacetable_excludetraffic$" description = "Comma separated list of interfaces excluded from traffic checks" } "--it" = { value = "$interfacetable_includetraffic$" description = "Comma separated list of interfaces included for traffic checks" } "--wt" = { value = "$interfacetable_warningtraffic$" description = "Interface traffic load percentage leading to a warning alert" } "--ct" = { value = "$interfacetable_criticaltraffic$" description = "Interface traffic load percentage leading to a critical alert" } "--pkt" = { set_if = "$interfacetable_pkt$" description = "Add unicast/non-unicast pkt stats for each interface" } "--trafficwithpkt" = { set_if = "$interfacetable_trafficwithpkt$" description = "Enable traffic calculation using pkt counters instead of octet counters. Useful when using 32-bit counters to track the load on > 1GbE interfaces." } "--tp" = { value = "$interfacetable_trackproperty$" description = "List of tracked properties" } "--ep" = { value = "$interfacetable_excludeproperty$" description = "Comma separated list of interfaces excluded from the property tracking" } "--ip" = { value = "$interfacetable_includeproperty$" description = "Comma separated list of interfaces included in the property tracking" } "--wp" = { value = "$interfacetable_warningproperty$" description = "Number of property changes before leading to a warning alert" } "--cp" = { value = "$interfacetable_criticalproperty$" description = "Number of property changes before leading to a critical alert" } "-C" = { value = "$interfacetable_community$" description = "Specifies the snmp v1/v2c community string" } "-2" = { set_if = "$interfacetable_snmpv2$" description = "Use snmp v2c" } "-l" = { value = "$interfacetable_login$" description = "Login for snmpv3 authentication" } "-x" = { value = "$interfacetable_passwd$" description = "Auth password for snmpv3 authentication" } "-X" = { value = "$interfacetable_privpass$" description = "Priv password for snmpv3" } "-L" = { value = "$interfacetable_protocols$" description = "Authentication protocol,Priv protocol" } "--domain" = { value = "$interfacetable_domain$" description = "SNMP transport domain" } "--contextname" = { value = "$interfacetable_contextname$" description = "Context name for the snmp requests" } "-P" = { value = "$interfacetable_port$" description = "SNMP port" } "--64bits" = { set_if = "$interfacetable_64bits$" description = "Use SNMP 64-bits counters" } "--max-repetitions" = { value = "$interfacetable_maxrepetitions$" description = "Increasing this value may enhance snmp query performances by gathering more results at one time" } "--snmp-timeout" = { value = "$interfacetable_snmptimeout$" description = "Define the Transport Layer timeout for the snmp queries" } "--snmp-retries" = { value = "$interfacetable_snmpretries$" description = "Define the number of times to retry sending a SNMP message" } "--snmp-maxmsgsize" = { value = "$interfacetable_snmpmaxmsgsize$" description = "Size of the SNMP message in octets, usefull in case of too long responses. Be carefull with network filters. Range 484 - 65535. Apply only to netsnmp perl bindings. The default is 1472 octets for UDP/IPv4, 1452 octets for UDP/IPv6, 1460 octets for TCP/IPv4, and 1440 octets for TCP/IPv6." } "--unixsnmp" = { set_if = "$interfacetable_unixsnmp$" description = "Use unix snmp utilities for snmp requests" } "-f" = { set_if = "$interfacetable_enableperfdata$" description = "Enable port performance data" } "--perfdataformat" = { value = "$interfacetable_perfdataformat$" description = "Define which performance data will be generated" } "--perfdatathreshold" = { value = "$interfacetable_perfdatathreshold$" description = "Define which thresholds are printed in the generated performance data" } "--perfdatadir" = { value = "$interfacetable_perfdatadir$" description = "When specified, the performance data are also written directly to a file, in the specified location" } "--perfdataservicedesc" = { value = "$interfacetable_perfdataservicedesc$" description = "Specify additional parameters for output performance data to PNP" } "-g" = { value = "$interfacetable_grapher$" description = "Specify the used graphing solution" } "--grapherurl" = { value = "$interfacetable_grapherurl$" description = "Graphing system url" } "--portperfunit" = { value = "$interfacetable_portperfunit$" description = "Traffic could be reported in bits (counters) or in bps (calculated value)" } "--nodetype" = { value = "$interfacetable_nodetype$" description = "Specify the node type, for specific information to be printed / specific oids to be used" } "--duplex" = { set_if = "$interfacetable_duplex$" description = "Add the duplex mode property for each interface in the interface table" } "--stp" = { set_if = "$interfacetable_stp$" description = "Add the stp state property for each interface in the interface table" } "--vlan" = { set_if = "$interfacetable_vlan$" description = "Add the vlan attribution property for each interface in the interface table" } "--noipinfo" = { set_if = "$interfacetable_noipinfo$" description = "Remove the ip information for each interface from the interface table" } "--alias" = { set_if = "$interfacetable_alias$" description = "Add the alias information for each interface in the interface table" } "--accessmethod" = { value = "$interfacetable_accessmethod$" description = "Access method for a shortcut to the host in the HTML page" } "--htmltablelinktarget" = { value = "$interfacetable_htmltablelinktarget$" description = "Specifies the windows or the frame where the [details] link will load the generated html page" } "--delta" = { value = "$interfacetable_delta$" description = "Set the delta used for interface throuput calculation" } "--ifs" = { value = "$interfacetable_ifs$" description = "Input field separator" } "--cache" = { value = "$interfacetable_cache$" description = "Define the retention time of the cached data" } "--noifloadgradient" = { set_if = "$interfacetable_noifloadgradient$" description = "Disable color gradient from green over yellow to red for the load percentage" } "--nohuman" = { set_if = "$interfacetable_nohuman$" description = "Do not translate bandwidth usage in human readable format" } "--snapshot" = { set_if = "$interfacetable_snapshot$" description = "Force the plugin to run like if it was the first launch" } "--timeout" = { value = "$interfacetable_timeout$" description = "Define the global timeout limit of the plugin" } "--css" = { value = "$interfacetable_css$" description = "Define the css stylesheet used by the generated html files" } "--config" = { value = "$interfacetable_config$" description = "Specify a config file to load" } "--noconfigtable" = { set_if = "$interfacetable_noconfigtable$" description = "Disable configuration table on the generated HTML page" } "--notips" = { set_if = "$interfacetable_notips$" description = "Disable the tips in the generated html tables" } "--default-table-sorting" = { value = "$interfacetable_defaulttablesorting$" description = "Default table sorting" } "--table-split" = { set_if = "$interfacetable_tablesplit$" description = "Generate multiple interface tables, one per interface type" } "--notype" = { set_if = "$interfacetable_notype$" description = "Remove the interface type for each interface" } } vars.interfacetable_hostquery = "$address$" vars.interfacetable_hostdisplay = "$host.display_name$" vars.interfacetable_perfdataservicedesc = "$service.name$" vars.interfacetable_regex = false vars.interfacetable_outputshort = false vars.interfacetable_aliasmatching = false vars.interfacetable_pkt = false vars.interfacetable_trafficwithpkt = false vars.interfacetable_snmpv2 = false vars.interfacetable_64bits = false vars.interfacetable_unixsnmp = false vars.interfacetable_enableperfdata = false vars.interfacetable_duplex = false vars.interfacetable_stp = false vars.interfacetable_vlan = false vars.interfacetable_noipinfo = false vars.interfacetable_noifloadgradient = false vars.interfacetable_nohuman = false vars.interfacetable_snapshot = false vars.interfacetable_noconfigtable = false vars.interfacetable_notips = false vars.interfacetable_notype = false } object CheckCommand "iftraffic" { import "ipv4-or-ipv6" command = [ PluginContribDir + "/check_iftraffic.pl"] arguments = { "-H" = { value = "$iftraffic_address$" description = "Check interface on the indicated host." required = true } "-C" = { value = "$iftraffic_community$" description = "SNMP community. Defaults to 'public' if omitted." } "-i" = { value = "$iftraffic_interface$" description = "Interface name." required = true } "-b" = { value = "$iftraffic_bandwidth$" description = "Interface maximum speed in kilo/mega/giga/bits per second." required = true } "-u" = { value = "$iftraffic_units$" description = "g=gigabits/s,m=megabits/s,k=kilobits/s,b=bits/s." } "-w" = { value = "$iftraffic_warn$" description = "% of bandwidth usage necessary to result in warning status (default: 85)" } "-c" = { value = "$iftraffic_crit$" description = "% of bandwidth usage necessary to result in critical status (default: 98)" } "-M" = { value = "$iftraffic_max_counter$" description = "Max counter value of net devices in kilo/mega/giga/bytes." } } vars.iftraffic_address = "$check_address$" vars.iftraffic_warn = "85" vars.iftraffic_crit = "98" } object CheckCommand "iftraffic64" { import "ipv4-or-ipv6" command = [ PluginContribDir + "/check_iftraffic64.pl"] arguments = { "-H" = { value = "$iftraffic64_address$" description = "Check interface on the indicated host." required = true } "-C" = { value = "$iftraffic64_community$" description = "SNMP community. Defaults to 'public' if omitted." } "-i" = { value = "$iftraffic64_interface$" description = "Interface name." required = true } "-b" = { value = "$iftraffic64_bandwidth$" description = "Interface maximum speed in kilo/mega/giga/bits per second." required = true } "-u" = { value = "$iftraffic64_units$" description = "g=gigabits/s,m=megabits/s,k=kilobits/s,b=bits/s." } "-w" = { value = "$iftraffic64_warn$" description = "% of bandwidth usage necessary to result in warning status (default: 85)" } "-c" = { value = "$iftraffic64_crit$" description = "% of bandwidth usage necessary to result in critical status (default: 98)" } "-M" = { value = "$iftraffic64_max_counter$" description = "Max counter value of net devices in kilo/mega/giga/bytes." } } vars.iftraffic64_address = "$check_address$" vars.iftraffic64_warn = "85" vars.iftraffic64_crit = "98" } object CheckCommand "interfaces" { import "ipv4-or-ipv6" command = [ PluginContribDir + "/check_interfaces" ] arguments = { "--hostname" = "$interfaces_address$" "--community" = { value = "$interfaces_community$" description = "The community string (default public)." } "--regex" = { value = "$interfaces_regex$" description = "Interface list regexp." } "--exclude-regex" = { value = "$interfaces_exclude_regex$" description = "Interface list negative regexp." } "--errors" = { value = "$interfaces_errors$" description = "Number of in errors (CRC errors for cisco) to consider a warning (default 50)." } "--out-errors" = { value = "$interface_out_errors$" description = "Number of out errors (collisions for cisco) to consider a warning (default same as in errors)." } "--perfdata" = { value = "$interfaces_perfdata$" } "--prefix" = { value = "$interfaces_prefix$" description = "Prefix interface names with this label." } "--lastcheck" = { value = "$interfaces_lastcheck$" description = "Last checktime (unixtime)." } "--bandwidth" = { value = "$interfaces_bandwidth$" description = "Bandwidth warn level in percent." } "--speed" = { value = "$interfaces_speed$" description = "Override speed detection with this value (bits per sec)." } "--trim" = { value = "$interfaces_trim$" description = "Cut this number of characters from the start of interface descriptions." } "--mode" = { value = "$interfaces_mode$" description = "Special operating mode (default,cisco,nonbulk,bintec)." } "--auth-proto" = { value = "$interfaces_auth_proto$" description = "SNMPv3 Auth Protocol (SHA|MD5)" } "--auth-phrase" = { value = "$interfaces_auth_phrase$" description = "SNMPv3 Auth Phrase" } "--priv-proto" = { value = "$interfaces_priv_proto$" description = "SNMPv3 Privacy Protocol (AES|DES)" } "--priv-phrase" = { value = "$interfaces_priv_phrase$" description = "SNMPv3 Privacy Phrase" } "--user" = { value = "$interfaces_user$" description = "SNMPv3 User" } "--down-is-ok" = { set_if = "$interfaces_down_is_ok$" description = "Disables critical alerts for down interfaces." } "--aliases" = { set_if = "$interfaces_aliases$" description = "Retrieves the interface description." } "--match-aliases" = { set_if = "$interfaces_match_aliases$" description = "Also match against aliases (Option --aliases automatically enabled)." } "--timeout" = { value = "$interfaces_timeout$" description = "Sets the SNMP timeout (in ms)." } "--sleep" = { value = "$interfaces_sleep$" description = "Sleep between every SNMP query (in ms)." } "--if-names" = { set_if = "$interfaces_names$" description = "Use ifName instead of ifDescr." } } vars.interfaces_address = "$check_address$" vars.interfaces_down_is_ok = false vars.interfaces_aliases = false vars.interfaces_match_aliases = false } object CheckCommand "nwc_health" { import "ipv4-or-ipv6" command = [ PluginContribDir + "/check_nwc_health" ] arguments = { "--timeout" = { value = "$nwc_health_timeout$" description = "Seconds before plugin times out (default: 15)" } "--blacklist" = { value = "$nwc_health_blacklist$" description = "Blacklist some (missing/failed) components" } "--hostname" = { value = "$nwc_health_hostname$" description = "Hostname or IP-address of the switch or router" } "--port" = { value = "$nwc_health_port$" description = "The SNMP port to use (default: 161)" } "--domain" = { value = "$nwc_health_domain$" description = "The transport domain to use (default: udp/ipv4, other possible values: udp6, udp/ipv6, tcp, tcp4, tcp/ipv4, tcp6, tcp/ipv6)" } "--protocol" = { value = "$nwc_health_protocol$" description = "The SNMP protocol to use (default: 2c, other possibilities: 1,3)" } "--community" = { value = "$nwc_health_community$" description = "SNMP community of the server (SNMP v1/2 only)" } "--username" = { value = "$nwc_health_username$" description = "The securityName for the USM security model (SNMPv3 only)" } "--authpassword" = { value = "$nwc_health_authpassword$" description = "The authentication password for SNMPv3" } "--authprotocol" = { value = "$nwc_health_authprotocol$" description = "The authentication protocol for SNMPv3 (md5|sha)" } "--privpassword" = { value = "$nwc_health_privpassword$" description = "The password for authPriv security level" } "--privprotocol" = { value = "$nwc_health_privprotocol$" description = "The private protocol for SNMPv3 (des|aes|aes128|3des|3desde)" } "--contextengineid" = { value = "$nwc_health_contextengineid$" description = "The context engine id for SNMPv3 (10 to 64 hex characters)" } "--contextname" = { value = "$nwc_health_contextname$" description = "The context name for SNMPv3 (empty represents the default context)" } "--mode" = { value = "$nwc_health_mode$" description = "Which mode should be executed. A list of all available modes can be found in the plugin documentation" } "--name" = { value = "$nwc_health_name$" description = "The name of an interface (ifDescr)" } "--drecksptkdb" = { value = "$nwc_health_drecksptkdb$" description = "This parameter must be used instead of --name, because Devel::ptkdb is stealing the latter from the command line" } "--alias" = { value = "$nwc_health_alias$" description = "The alias name of a 64bit-interface (ifAlias)" } "--regexp" = { set_if = "$nwc_health_regexp$" description = "A flag indicating that --name is a regular expression" } "--ifspeedin" = { value = "$nwc_health_ifspeedin$" description = "Override the ifspeed oid of an interface (only inbound)" } "--ifspeedout" = { value = "$nwc_health_ifspeedout$" description = "Override the ifspeed oid of an interface (only outbound)" } "--ifspeed" = { value = "$nwc_health_ifspeed$" description = "Override the ifspeed oid of an interface" } "--units" = { value = "$nwc_health_units$" description = "One of %, B, KB, MB, GB, Bit, KBi, MBi, GBi. (used for e.g. mode interface-usage)" } "--name2" = { value = "$nwc_health_name2$" description = "The secondary name of a component" } "--role" = { value = "$nwc_health_role$" description = "The role of this device in a hsrp group (active/standby/listen)" } "--report" = { value = "$nwc_health_report$" description = "Can be used to shorten the output. Possible values are: 'long' (default), 'short' (to shorten if available), or 'html' (to produce some html outputs if available)" } "--lookback" = { value = "$nwc_health_lookback$" description = "The amount of time you want to look back when calculating average rates. Use it for mode interface-errors or interface-usage. Without --lookback the time between two runs of check_nwc_health is the base for calculations. If you want your checkresult to be based for example on the past hour, use --lookback 3600." } "--critical" = { value = "$nwc_health_critical$" description = "The critical threshold" } "--warning" = { value = "$nwc_health_warning$" description = "The warning threshold" } "--warningx" = { value = "$nwc_health_warningx$" description = "The extended warning thresholds" } "--criticalx" = { value = "$nwc_health_criticalx$" description = "The extended critical thresholds" } "--mitigation" = { value = "$nwc_health_mitigation$" description = "The parameter allows you to change a critical error to a warning." } "--selectedperfdata" = { value = "$nwc_health_selectedperfdata$" description = "The parameter allows you to limit the list of performance data. It's a perl regexp. Only matching perfdata show up in the output." } "--morphperfdata" = { value = "$nwc_health_morphperfdata$" description = "The parameter allows you to change performance data labels. It's a perl regexp and a substitution. --morphperfdata '(.*)ISATAP(.*)'='$1patasi$2'" } "--negate" = { value = "$nwc_health_negate$" description = "The parameter allows you to map exit levels, such as warning=critical" } "--with-mymodules-dyn-dir" = { value = "$nwc_health_mymodules-dyn-dir$" description = "A directory where own extensions can be found" } "--servertype" = { value = "$nwc_health_servertype$" description = "The type of the network device: cisco (default). Use it if auto-detection is not possible" } "--statefilesdir" = { value = "$nwc_health_statefilesdir$" description = "An alternate directory where the plugin can save files" } "--oids" = { value = "$nwc_health_oids$" description = "A list of oids which are downloaded and written to a cache file. Use it together with --mode oidcache" } "--offline" = { value = "$nwc_health_offline$" description = "The maximum number of seconds since the last update of cache file before it is considered too old" } "--multiline" = { set_if = "$nwc_health_multiline$" description = "Multiline output" } } vars.nwc_health_hostname = "$check_address$" vars.nwc_health_mode = "hardware-health" }