]> granicus.if.org Git - icinga2/blobdiff - itl/command-plugins.conf
Merge pull request #6139 from Icinga/itl/disk-docker-types
[icinga2] / itl / command-plugins.conf
index a63f9fbbc21efc5ff0b5c25b2331d6c27ebb77f0..0bf297fd156cc20e2d90531156a91497281bec31 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  * Icinga 2                                                                   *
- * Copyright (C) 2012-2017 Icinga Development Team (https://www.icinga.com/)  *
+ * 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                *
@@ -37,11 +37,26 @@ template CheckCommand "ping-common" {
        command = [ PluginDir + "/check_ping" ]
 
        arguments = {
-               "-H" = "$ping_address$"
-               "-w" = "$ping_wrta$,$ping_wpl$%"
-               "-c" = "$ping_crta$,$ping_cpl$%"
-               "-p" = "$ping_packets$"
-               "-t" = "$ping_timeout$"
+               "-H" = {
+                       value = "$ping_address$"
+                       description = "host to ping"
+               }
+               "-w" = {
+                       value = "$ping_wrta$,$ping_wpl$%"
+                       description = "warning threshold pair"
+               }
+               "-c" = {
+                       value = "$ping_crta$,$ping_cpl$%"
+                       description = "critical threshold pair"
+               }
+               "-p" = {
+                       value = "$ping_packets$"
+                       description = "number of ICMP ECHO packets to send (Default: 5)"
+               }
+               "-t" = {
+                       value = "$ping_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
        }
 
        vars.ping_wrta = 100
@@ -103,14 +118,38 @@ template CheckCommand "fping-common" {
        ]
 
        arguments = {
-               "-w" = "$fping_wrta$,$fping_wpl$%"
-               "-c" = "$fping_crta$,$fping_cpl$%"
-               "-n" = "$fping_number$"
-               "-i" = "$fping_interval$"
-               "-b" = "$fping_bytes$"
-               "-T" = "$fping_target_timeout$"
-               "-S" = "$fping_source_ip$"
-               "-I" = "$fping_source_interface$"
+               "-w" = {
+                       value = "$fping_wrta$,$fping_wpl$%"
+                       description = "warning threshold pair"
+               }
+               "-c" = {
+                       value = "$fping_crta$,$fping_cpl$%"
+                       description = "critical threshold pair"
+               }
+               "-n" = {
+                       value = "$fping_number$"
+                       description = "number of ICMP packets to send (default: 1)"
+               }
+               "-i" = {
+                       value = "$fping_interval$"
+                       description = "Interval (ms) between sending packets (default: fping's default for -p)"
+               }
+               "-b" = {
+                       value = "$fping_bytes$"
+                       description = "size of ICMP packet (default: 56)"
+               }
+               "-T" = {
+                       value = "$fping_target_timeout$"
+                       description = "Target timeout (ms) (default: fping's default for -t)"
+               }
+               "-S" = {
+                       value = "$fping_source_ip$"
+                       description = "name or IP Address of sourceip"
+               }
+               "-I" = {
+                       value = "$fping_source_interface$"
+                       description = "source interface name"
+               }
        }
 
        vars.fping_wrta = 100
@@ -137,35 +176,6 @@ object CheckCommand "fping6" {
        vars.fping_address = "$address6$"
 }
 
-object CheckCommand "dummy" {
-       command = [ PluginDir + "/check_dummy" ]
-
-       arguments = {
-               "state" = {
-                       value = "$dummy_state$"
-                       skip_key = true
-                       order = 1
-                       description = "The state. Can be one of 0 (ok), 1 (warning), 2 (critical) and 3 (unknown). Defaults to 0."
-               }
-               "text" = {
-                       value = "$dummy_text$"
-                       skip_key = true
-                       order = 2
-                       description = "Plugin output. Defaults to Check was successful."
-               }
-       }
-
-       vars.dummy_state = 0
-       vars.dummy_text = "Check was successful."
-}
-
-object CheckCommand "passive" {
-       import "dummy"
-
-       vars.dummy_state = 3
-       vars.dummy_text = "No Passive Check Result Received."
-}
-
 object CheckCommand "tcp" {
        import "ipv4-or-ipv6"
 
@@ -283,7 +293,9 @@ object CheckCommand "ssl" {
                        value = "$ssl_port$"
                        description ="TCP port (default: 443)"
                }
-               "--ssl" = { }
+               "--ssl" = {
+                       description = "Use SSL for the connection"
+               }
                "-t" = {
                        value = "$ssl_timeout$"
                        description = "Seconds before connection times out (default: 10)"
@@ -299,14 +311,16 @@ object CheckCommand "ssl" {
                                }
                        }
                }}
-               "-N" = "$ssl_sni$"
+               "-N" = {
+                       value = "$ssl_sni$"
+                       description = "Enable SSL/TLS hostname extension support (SNI)"
+               }
        }
 
        vars.ssl_address = "$check_address$"
        vars.ssl_port = 443
        vars.ssl_cert_valid_days_warn = false
        vars.ssl_cert_valid_days_critical = false
-       vars.ssl_sni = "$ssl_address$"
 }
 
 
@@ -323,12 +337,17 @@ object CheckCommand "udp" {
                "-s" = {
                        value = "$udp_send$"
                        required = true
+                       description = "String to send to the server"
                }
                "-e" = {
                        value = "$udp_expect$"
                        required = true
+                       description = " String to expect in server response"
+               }
+               "-q" = {
+                       value = "$udp_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
                }
-               "-q" = "$udp_quit$"
                "-4" = {
                        set_if = "$udp_ipv4$"
                        description = "Use IPv4 connection"
@@ -350,45 +369,69 @@ object CheckCommand "http" {
        command = [ PluginDir + "/check_http" ]
 
        arguments = {
-               "-H" = "$http_vhost$"
-               "-I" = "$http_address$"
-               "-u" = "$http_uri$"
-               "-p" = "$http_port$"
+               "-H" = {
+                       value = "$http_vhost$"
+                       description = "Host name argument for servers using host headers (virtual host)"
+               }
+               "-I" = {
+                       value = "$http_address$"
+                       description = "IP address or name (use numeric address if possible to bypass DNS lookup)"
+               }
+               "-u" = {
+                       value = "$http_uri$"
+                       description = "URL to GET or POST (default: /)"
+               }
+               "-p" = {
+                       value = "$http_port$"
+                       description = "Port number (default: 80)"
+               }
                "-S" = {
                        set_if = "$http_ssl$"
+                       description = "Connect via SSL"
                }
                "-S1" = {
                        set_if = "$http_ssl_force_tlsv1$"
+                       description = "Connect via SSL version TLSv1"
                }
                "-S1.1" = {
                        set_if = "$http_ssl_force_tlsv1_1$"
+                       description = "Connect via SSL version TLSv1.1"
                }
                "-S1.2" = {
                        set_if = "$http_ssl_force_tlsv1_2$"
+                       description = "Connect via SSL version TLSv1.2"
                }
                "-S2" = {
                        set_if = "$http_ssl_force_sslv2$"
+                       description = "Connect via SSL version SSLv2"
                }
                "-S3" = {
                        set_if = "$http_ssl_force_sslv3$"
+                       description = "Connect via SSL version SSLv3"
                }
                "-S1+" = {
                        set_if = "$http_ssl_force_tlsv1_or_higher$"
+                       description = "Connect via SSL version TLSv1 and newer"
                }
                "-S1.1+" = {
                        set_if = "$http_ssl_force_tlsv1_1_or_higher$"
+                       description = "Connect via SSL version TLSv1.1 and newer"
                }
                "-S1.2+" = {
                        set_if = "$http_ssl_force_tlsv1_2_or_higher$"
+                       description = "Connect via SSL version TLSv1.2 and newer"
                }
                "-S2+" = {
                        set_if = "$http_ssl_force_sslv2_or_higher$"
+                       description = "Connect via SSL version SSLv2 and newer"
                }
                "-S3+" = {
                        set_if = "$http_ssl_force_sslv3_or_higher$"
+                       description = "Connect via SSL version SSLv3 and newer"
                }
                "--sni" = {
                        set_if = "$http_sni$"
+                       description = "Enable SSL/TLS hostname extension support (SNI)"
                }
                "-C" = {
                        value = "$http_certificate$"
@@ -408,10 +451,20 @@ object CheckCommand "http" {
                }
                "--no-body" = {
                        set_if = "$http_ignore_body$"
+                       description = "Don't wait for document body: stop reading after headers"
+               }
+               "-w" = {
+                       value = "$http_warn_time$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$http_critical_time$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-e" = {
+                       value = "$http_expect$"
+                       description = "Comma-delimited list of strings, at least one of them is expected in the first (status) line of the server response (default: HTTP/1.)"
                }
-               "-w" = "$http_warn_time$"
-               "-c" = "$http_critical_time$"
-               "-e" = "$http_expect$"
                "-d" = {
                        value = "$http_headerstring$"
                        description = "String to expect in the response headers"
@@ -621,25 +674,70 @@ object CheckCommand "smtp" {
        command = [ PluginDir + "/check_smtp" ]
 
        arguments = {
-               "-H" = "$smtp_address$"
-               "-p" = "$smtp_port$"
-               "-f" = "$smtp_mail_from$"
-               "-e" = "$smtp_expect$"
-               "-C" = "$smtp_command$"
-               "-R" = "$smtp_response$"
-               "-F" = "$smtp_helo_fqdn$"
-               "-D" = "$smtp_certificate_age$"
+               "-H" = {
+                       value = "$smtp_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$smtp_port$"
+                       description = "Port number (default: 25)"
+               }
+               "-f" = {
+                       value = "$smtp_mail_from$"
+                       description = "FROM-address to include in MAIL command, required by Exchange 2000"
+               }
+               "-e" = {
+                       value = "$smtp_expect$"
+                       description = "String to expect in first line of server response (default: '220')"
+               }
+               "-C" = {
+                       value = "$smtp_command$"
+                       description = "SMTP command"
+               }
+               "-R" = {
+                       value = "$smtp_response$"
+                       description = "Expected response to command (may be used repeatedly)"
+               }
+               "-F" = {
+                       value = "$smtp_helo_fqdn$"
+                       description = "FQDN used for HELO"
+               }
+               "-D" = {
+                       value = "$smtp_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$smtp_starttls$"
                        description = "Use STARTTLS for the connection."
                }
-               "-A" = "$smtp_authtype$"
-               "-U" = "$smtp_authuser$"
-               "-P" = "$smtp_authpass$"
-               "-q" = "$smtp_ignore_quit$"
-               "-w" = "$smtp_warning$"
-               "-c" = "$smtp_critical$"
-               "-t" = "$smtp_timeout$"
+               "-A" = {
+                       value = "$smtp_authtype$"
+                       description = "SMTP AUTH type to check (default none, only LOGIN supported)"
+               }
+               "-U" = {
+                       value = "$smtp_authuser$"
+                       description = "SMTP AUTH username"
+               }
+               "-P" = {
+                       value = "$smtp_authpass$"
+                       description = "SMTP AUTH password"
+               }
+               "-q" = {
+                       value = "$smtp_ignore_quit$"
+                       description = "Ignore failure when sending QUIT command to server"
+               }
+               "-w" = {
+                       value = "$smtp_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$smtp_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$smtp_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$smtp_ipv4$"
                        description = "Use IPv4 connection"
@@ -661,32 +759,74 @@ object CheckCommand "ssmtp" {
        command = [ PluginDir + "/check_ssmtp" ]
 
        arguments = {
-               "-H" = "$ssmtp_address$"
-               "-p" = "$ssmtp_port$"
-               "-E" = "$ssmtp_escape$"
-               "-s" = "$ssmtp_send$"
-               "-e" = "$ssmtp_expect$"
+               "-H" = {
+                       value = "$ssmtp_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$ssmtp_port$"
+                       description = "Port number (default: none)"
+               }
+               "-E" = {
+                       value = "$ssmtp_escape$"
+                       description = "Can use \n, \r, \t or \\ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit"
+               }
+               "-s" = {
+                       value = "$ssmtp_send$"
+                       description = "String to send to the server"
+               }
+               "-e" = {
+                       value = "$ssmtp_expect$"
+                       description = "String to expect in server response (may be repeated)"
+               }
                "-A" = {
                        set_if = "$ssmtp_all$"
                        description = "All expect strings need to occur in server response. Default is any."
                }
-               "-q" = "$ssmtp_quit$"
-               "-r" = "$ssmtp_refuse$"
-               "-M" = "$ssmtp_mismatch$"
+               "-q" = {
+                       value = "$ssmtp_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
+               }
+               "-r" = {
+                       value = "$ssmtp_refuse$"
+                       description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
+               }
+               "-M" = {
+                       value = "$ssmtp_mismatch$"
+                       description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
+               }
                "-j" = {
                        set_if = "$ssmtp_jail$"
                        description = "Hide output from TCP socket."
                }
-               "-m" = "$ssmtp_maxbytes$"
-               "-d" = "$ssmtp_delay$"
-               "-D" = "$ssmtp_certificate_age$"
+               "-m" = {
+                       value = "$ssmtp_maxbytes$"
+                       description = "Close connection once more than this number of bytes are received"
+               }
+               "-d" = {
+                       value = "$ssmtp_delay$"
+                       description = "Seconds to wait between sending string and polling for response"
+               }
+               "-D" = {
+                       value = "$ssmtp_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$ssmtp_ssl$"
                        description = "Use SSL for the connection."
                }
-               "-w" = "$ssmtp_warning$"
-               "-c" = "$ssmtp_critical$"
-               "-t" = "$ssmtp_timeout$"
+               "-w" = {
+                       value = "$ssmtp_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$ssmtp_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$ssmtp_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$ssmtp_ipv4$"
                        description = "Use IPv4 connection"
@@ -708,32 +848,74 @@ object CheckCommand "imap" {
        command = [ PluginDir + "/check_imap" ]
 
        arguments = {
-               "-H" = "$imap_address$"
-               "-p" = "$imap_port$"
-               "-E" = "$imap_escape$"
-               "-s" = "$imap_send$"
-               "-e" = "$imap_expect$"
+               "-H" = {
+                       value = "$imap_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$imap_port$"
+                       description = "Port number (default: none)"
+               }
+               "-E" = {
+                       value = "$imap_escape$"
+                       description = "Can use \n, \r, \t or \\ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit"
+               }
+               "-s" = {
+                       value = "$imap_send$"
+                       description = "String to send to the server"
+               }
+               "-e" = {
+                       value = "$imap_expect$"
+                       description = "String to expect in server response (may be repeated)"
+               }
                "-A" = {
                        set_if = "$imap_all$"
                        description = "All expect strings need to occur in server response. Default is any."
                }
-               "-q" = "$imap_quit$"
-               "-r" = "$imap_refuse$"
-               "-M" = "$imap_mismatch$"
+               "-q" = {
+                       value = "$imap_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
+               }
+               "-r" = {
+                       value = "$imap_refuse$"
+                       description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
+               }
+               "-M" = {
+                       value = "$imap_mismatch$"
+                       description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
+               }
                "-j" = {
                        set_if = "$imap_jail$"
                        description = "Hide output from TCP socket."
                }
-               "-m" = "$imap_maxbytes$"
-               "-d" = "$imap_delay$"
-               "-D" = "$imap_certificate_age$"
+               "-m" = {
+                       value = "$imap_maxbytes$"
+                       description = "Close connection once more than this number of bytes are received"
+               }
+               "-d" = {
+                       value = "$imap_delay$"
+                       description = "Seconds to wait between sending string and polling for response"
+               }
+               "-D" = {
+                       value = "$imap_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$imap_ssl$"
                        description = "Use SSL for the connection."
                }
-               "-w" = "$imap_warning$"
-               "-c" = "$imap_critical$"
-               "-t" = "$imap_timeout$"
+               "-w" = {
+                       value = "$imap_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$imap_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$imap_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$imap_ipv4$"
                        description = "Use IPv4 connection"
@@ -755,32 +937,74 @@ object CheckCommand "simap" {
        command = [ PluginDir + "/check_simap" ]
 
        arguments = {
-               "-H" = "$simap_address$"
-               "-p" = "$simap_port$"
-               "-E" = "$simap_escape$"
-               "-s" = "$simap_send$"
-               "-e" = "$simap_expect$"
+               "-H" = {
+                       value = "$simap_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$simap_port$"
+                       description = "Port number (default: none)"
+               }
+               "-E" = {
+                       value = "$simap_escape$"
+                       description = "Can use \n, \r, \t or \\ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit"
+               }
+               "-s" = {
+                       value = "$simap_send$"
+                       description = "String to send to the server"
+               }
+               "-e" = {
+                       value = "$simap_expect$"
+                       description = "String to expect in server response (may be repeated)"
+               }
                "-A" = {
                        set_if = "$simap_all$"
                        description = "All expect strings need to occur in server response. Default is any."
                }
-               "-q" = "$simap_quit$"
-               "-r" = "$simap_refuse$"
-               "-M" = "$simap_mismatch$"
+               "-q" = {
+                       value = "$simap_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
+               }
+               "-r" = {
+                       value = "$simap_refuse$"
+                       description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
+               }
+               "-M" = {
+                       value = "$simap_mismatch$"
+                       description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
+                       }
                "-j" = {
                        set_if = "$simap_jail$"
                        description = "Hide output from TCP socket."
                }
-               "-m" = "$simap_maxbytes$"
-               "-d" = "$simap_delay$"
-               "-D" = "$simap_certificate_age$"
+               "-m" = {
+                       value = "$simap_maxbytes$"
+                       description = "Close connection once more than this number of bytes are received"
+               }
+               "-d" = {
+                       value = "$simap_delay$"
+                       description = "Seconds to wait between sending string and polling for response"
+               }
+               "-D" = {
+                       value = "$simap_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$simap_ssl$"
                        description = "Use SSL for the connection."
                }
-               "-w" = "$simap_warning$"
-               "-c" = "$simap_critical$"
-               "-t" = "$simap_timeout$"
+               "-w" = {
+                       value = "$simap_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$simap_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$simap_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$simap_ipv4$"
                        description = "Use IPv4 connection"
@@ -802,32 +1026,74 @@ object CheckCommand "pop" {
        command = [ PluginDir + "/check_pop" ]
 
        arguments = {
-               "-H" = "$pop_address$"
-               "-p" = "$pop_port$"
-               "-E" = "$pop_escape$"
-               "-s" = "$pop_send$"
-               "-e" = "$pop_expect$"
+               "-H" = {
+                       value = "$pop_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$pop_port$"
+                       description = "Port number (default: none)"
+               }
+               "-E" = {
+                       value = "$pop_escape$"
+                       description = "Can use \n, \r, \t or \\ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit"
+               }
+               "-s" = {
+                       value = "$pop_send$"
+                       description = "String to send to the server"
+               }
+               "-e" = {
+                       value = "$pop_expect$"
+                       description = "String to expect in server response (may be repeated)"
+               }
                "-A" = {
                        set_if = "$pop_all$"
                        description = "All expect strings need to occur in server response. Default is any."
                }
-               "-q" = "$pop_quit$"
-               "-r" = "$pop_refuse$"
-               "-M" = "$pop_mismatch$"
+               "-q" = {
+                       value = "$pop_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
+               }
+               "-r" = {
+                       value = "$pop_refuse$"
+                       description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
+               }
+               "-M" = {
+                       value = "$pop_mismatch$"
+                       description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
+               }
                "-j" = {
                        set_if = "$pop_jail$"
                        description = "Hide output from TCP socket."
                }
-               "-m" = "$pop_maxbytes$"
-               "-d" = "$pop_delay$"
-               "-D" = "$pop_certificate_age$"
+               "-m" = {
+                       value = "$pop_maxbytes$"
+                       description = "Close connection once more than this number of bytes are received"
+               }
+               "-d" = {
+                       value = "$pop_delay$"
+                       description = "Seconds to wait between sending string and polling for response"
+               }
+               "-D" = {
+                       value = "$pop_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$pop_ssl$"
                        description = "Use SSL for the connection."
                }
-               "-w" = "$pop_warning$"
-               "-c" = "$pop_critical$"
-               "-t" = "$pop_timeout$"
+               "-w" = {
+                       value = "$pop_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$pop_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$pop_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$pop_ipv4$"
                        description = "Use IPv4 connection"
@@ -849,32 +1115,74 @@ object CheckCommand "spop" {
        command = [ PluginDir + "/check_spop" ]
 
        arguments = {
-               "-H" = "$spop_address$"
-               "-p" = "$spop_port$"
-               "-E" = "$spop_escape$"
-               "-s" = "$spop_send$"
-               "-e" = "$spop_expect$"
+               "-H" = {
+                       value = "$spop_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$spop_port$"
+                       description = "Port number (default: none)"
+               }
+               "-E" = {
+                       value = "$spop_escape$"
+                       description = "Can use \n, \r, \t or \\ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit"
+               }
+               "-s" = {
+                       value = "$spop_send$"
+                       description = "String to send to the server"
+               }
+               "-e" = {
+                       value = "$spop_expect$"
+                       description = "String to expect in server response (may be repeated)"
+               }
                "-A" = {
                        set_if = "$spop_all$"
                        description = "All expect strings need to occur in server response. Default is any."
                }
-               "-q" = "$spop_quit$"
-               "-r" = "$spop_refuse$"
-               "-M" = "$spop_mismatch$"
+               "-q" = {
+                       value = "$spop_quit$"
+                       description = "String to send server to initiate a clean close of the connection"
+               }
+               "-r" = {
+                       value = "$spop_refuse$"
+                       description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
+               }
+               "-M" = {
+                       value = "$spop_mismatch$"
+                       description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
+               }
                "-j" = {
                        set_if = "$spop_jail$"
                        description = "Hide output from TCP socket."
                }
-               "-m" = "$spop_maxbytes$"
-               "-d" = "$spop_delay$"
-               "-D" = "$spop_certificate_age$"
+               "-m" = {
+                       value = "$spop_maxbytes$"
+                       description = "Close connection once more than this number of bytes are received"
+               }
+               "-d" = {
+                       value = "$spop_delay$"
+                       description = "Seconds to wait between sending string and polling for response"
+               }
+               "-D" = {
+                       value = "$spop_certificate_age$"
+                       description = "Minimum number of days a certificate has to be valid"
+               }
                "-S" = {
                        set_if = "$spop_ssl$"
                        description = "Use SSL for the connection."
                }
-               "-w" = "$spop_warning$"
-               "-c" = "$spop_critical$"
-               "-t" = "$spop_timeout$"
+               "-w" = {
+                       value = "$spop_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$spop_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$spop_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$spop_ipv4$"
                        description = "Use IPv4 connection"
@@ -896,16 +1204,34 @@ object CheckCommand "ntp_time" {
        command = [ PluginDir + "/check_ntp_time" ]
 
        arguments = {
-               "-H" = "$ntp_address$"
-               "-p" = "$ntp_port$"
+               "-H" = {
+                       value = "$ntp_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$ntp_port$"
+                       description = "Port number (default: 123)"
+               }
                "-q" = {
                        set_if = "$ntp_quiet$"
                        description = "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
                }
-               "-w" = "$ntp_warning$"
-               "-c" = "$ntp_critical$"
-               "-o" = "$ntp_timeoffset$"
-               "-t" = "$ntp_timeout$"
+               "-w" = {
+                       value = "$ntp_warning$"
+                       description = "Offset to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$ntp_critical$"
+                       description = "Offset to result in critical status (seconds)"
+               }
+               "-o" = {
+                       value = "$ntp_timeoffset$"
+                       description = "Expected offset of the ntp server relative to local server (seconds)"
+               }
+               "-t" = {
+                       value = "$ntp_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$ntp_ipv4$"
                        description = "Use IPv4 connection"
@@ -927,17 +1253,54 @@ object CheckCommand "ntp_peer" {
        command = [ PluginDir + "/check_ntp_peer" ]
 
        arguments = {
-               "-H" = "$ntp_address$"
-               "-p" = "$ntp_port$"
-               "-w" = "$ntp_warning$"
-               "-c" = "$ntp_critical$"
-               "-W" = "$ntp_wstratum$"
-               "-C" = "$ntp_cstratum$"
-               "-j" = "$ntp_wjitter$"
-               "-k" = "$ntp_cjitter$"
-               "-m" = "$ntp_wsource$"
-               "-n" = "$ntp_csource$"
-               "-t" = "$ntp_timeout$"
+               "-H" = {
+                       value = "$ntp_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$ntp_port$"
+                       description = "Port number (default: 123)"
+               }
+               "-q" = {
+                       set_if = "$ntp_quiet$"
+                       description = "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
+               }
+               "-w" = {
+                       value = "$ntp_warning$"
+                       description = "Offset to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$ntp_critical$"
+                       description = "Offset to result in critical status (seconds)"
+               }
+               "-W" = {
+                       value = "$ntp_wstratum$"
+                       description = "Warning threshold for stratum of server's synchronization peer"
+               }
+               "-C" = {
+                       value = "$ntp_cstratum$"
+                       description = "Critical threshold for stratum of server's synchronization peer"
+               }
+               "-j" = {
+                       value = "$ntp_wjitter$"
+                       description = "Warning threshold for jitter"
+               }
+               "-k" = {
+                       value = "$ntp_cjitter$"
+                       description = "Critical threshold for jitter"
+               }
+               "-m" = {
+                       value = "$ntp_wsource$"
+                       description = "Warning threshold for number of usable time sources (truechimers)"
+               }
+               "-n" = {
+                       value = "$ntp_csource$"
+                       description = "Critical threshold for number of usable time sources (truechimers)"
+               }
+               "-t" = {
+                       value = "$ntp_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "-4" = {
                        set_if = "$ntp_ipv4$"
                        description = "Use IPv4 connection"
@@ -959,8 +1322,14 @@ object CheckCommand "ssh" {
        command = [ PluginDir + "/check_ssh" ]
 
        arguments = {
-               "-p" = "$ssh_port$"
-               "-t" = "$ssh_timeout$"
+               "-p" = {
+                       value = "$ssh_port$"
+                       description = "Port number (default: 22)"
+               }
+               "-t" = {
+                       value = "$ssh_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
                "host" = {
                        value = "$ssh_address$"
                        skip_key = true
@@ -991,138 +1360,116 @@ object CheckCommand "disk" {
                        required = true
                        order = -3
                }
-
                "-c" = {
                        value = "$disk_cfree$"
                        description = "Exit with CRITICAL status if less than INTEGER units of disk are free or Exit with CRITCAL status if less than PERCENT of disk space is free"
                        required = true
                        order = -3
                }
-
                "-W" = {
                        value = "$disk_inode_wfree$"
                        description = "Exit with WARNING status if less than PERCENT of inode space is free"
+                       order = -3
                }
-
                "-K" = {
                        value = "$disk_inode_cfree$"
                        description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
+                       order = -3
                }
-
                "-p" = {
                        value = "$disk_partitions$"
                        description = "Path or partition (may be repeated)"
                        repeat_key = true
                        order = 1
                }
-
                "-p_old" = {
                        key = "-p"
                        value = "$disk_partition$"
                        order = 1
                }
-
                "-x" = {
                        value = "$disk_partitions_excluded$"
                        description = "Ignore device (only works if -p unspecified)"
                }
-
                "-x_old" = {
                        key = "-x"
                        value = "$disk_partition_excluded$"
                }
-
                "-C" = {
                        set_if = "$disk_clear$"
                        description = "Clear thresholds"
                }
-
                "-E" = {
                        set_if = "$disk_exact_match$"
                        description = "For paths or partitions specified with -p, only check for exact paths"
                }
-
                "-e" = {
                        set_if = "$disk_errors_only$"
                        description = "Display only devices/mountpoints with errors"
                }
-
                "-f" = {
                        set_if = "$disk_ignore_reserved$"
                        description = "Don't account root-reserved blocks into freespace in perfdata"
                }
-
                "-g" = {
                        value = "$disk_group$"
                        description = "Group paths. Thresholds apply to (free-)space of all partitions together"
                }
-
                "-k" = {
                        set_if = "$disk_kilobytes$"
                        description = "Same as --units kB"
                }
-
                "-l" = {
                        set_if = "$disk_local$"
                        description = " Only check local filesystems"
                }
-
                "-L" = {
                        set_if = "$disk_stat_remote_fs$"
                        description = "Only check local filesystems against thresholds. Yet call stat on remote filesystems to test if they are accessible (e.g. to detect Stale NFS Handles)"
                }
-
                "-M" = {
                        set_if = "$disk_mountpoint$"
                        description = "Display the mountpoint instead of the partition"
                }
-
                "-m" = {
                        set_if = "$disk_megabytes$"
                        description = "Same as --units MB"
                }
-
                "-A" = {
                        set_if = "$disk_all$"
                        description = "Explicitly select all paths. This is equivalent to -R .*"
+                       order = 1
                }
-
                "-R" = {
                        value = "$disk_eregi_path$"
                        description = "Case insensitive regular expression for path/partition (may be repeated)"
                        repeat_key = true
                }
-
                "-r" = {
                        value = "$disk_ereg_path$"
                        description = "Regular expression for path or partition (may be repeated)"
                        repeat_key = true
                }
-
                "-I" = {
                        value = "$disk_ignore_eregi_path$"
                        description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
                        repeat_key = true
                        order = 2
                }
-
                "-i" = {
                        value = "$disk_ignore_ereg_path$"
                        description = "Regular expression to ignore selected path or partition (may be repeated)"
                        repeat_key = true
                        order = 2
                }
-
                "-t" = {
                        value = "$disk_timeout$"
                        description = "Seconds before connection times out (default: 10)"
                }
-
                "-u" = {
                        value = "$disk_units$"
                        description = "Choose bytes, kB, MB, GB, TB (default: MB)"
                }
-
                "-X" = {
                        value = "$disk_exclude_type$"
                        description = "Ignore all filesystems of indicated type (may be repeated)"
@@ -1133,7 +1480,23 @@ object CheckCommand "disk" {
        vars.disk_wfree = "20%"
        vars.disk_cfree = "10%"
        vars.disk_megabytes = true
-       vars.disk_exclude_type = [ "none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fdescfs" ]
+       vars.disk_exclude_type = [
+               "none",
+               "tmpfs",
+               "sysfs",
+               "proc",
+               "configfs",
+               "devtmpfs",
+               "devfs",
+               "mtmfs",
+               "tracefs",
+               "cgroup",
+               "fuse.gvfsd-fuse",
+               "fuse.gvfs-fuse-daemon",
+               "fdescfs",
+               "overlay",
+               "nsfs"
+       ]
 }
 
 object CheckCommand "disk_smb" {
@@ -1186,8 +1549,14 @@ object CheckCommand "users" {
        command = [ PluginDir + "/check_users" ]
 
        arguments = {
-               "-w" = "$users_wgreater$"
-               "-c" = "$users_cgreater$"
+               "-w" = {
+                       value = "$users_wgreater$"
+                       description = "Set WARNING status if more than INTEGER users are logged in"
+               }
+               "-c" = {
+                       value = "$users_cgreater$"
+                       description = "Set CRITICAL status if more than INTEGER users are logged in"
+               }
        }
 
        vars.users_wgreater = 20
@@ -1200,15 +1569,15 @@ object CheckCommand "procs" {
        arguments = {
                "-w" = {
                        value = "$procs_warning$"
-                       description = "Generate warning state if metric is outside this range" 
+                       description = "Generate warning state if metric is outside this range"
                }
                "-c" = {
                        value = "$procs_critical$"
-                       description = "Generate critical state if metric is outside this range" 
+                       description = "Generate critical state if metric is outside this range"
                }
                "-m" = {
                        value = "$procs_metric$"
-                       description = "Check thresholds against metric" 
+                       description = "Check thresholds against metric"
                }
                "-t" = {
                        value = "$procs_timeout$"
@@ -1333,26 +1702,74 @@ object CheckCommand "snmp" {
        command = [ PluginDir + "/check_snmp" ]
 
        arguments = {
-               "-H" = "$snmp_address$"
-               "-o" = "$snmp_oid$"
-               "-C" = "$snmp_community$"
-               "-c" = "$snmp_crit$"
-               "-w" = "$snmp_warn$"
-               "-s" = "$snmp_string$"
-               "-r" = "$snmp_ereg$"
-               "-R" = "$snmp_eregi$"
-               "-l" = "$snmp_label$"
-               "-u" = "$snmp_units$"
-               "-t" = "$snmp_timeout$"
-               "-p" = "$snmp_port$"
-               "-e" = "$snmp_retries$"
+               "-H" = {
+                       value = "$snmp_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-o" = {
+                       value = "$snmp_oid$"
+                       description = "Object identifier(s) or SNMP variables whose value you wish to query"
+               }
+               "-C" = {
+                       value = "$snmp_community$"
+                       description = "Optional community string for SNMP communication (default is 'public')"
+               }
+               "-c" = {
+                       value = "$snmp_crit$"
+                       description = "Critical threshold range(s)"
+               }
+               "-w" = {
+                       value = "$snmp_warn$"
+                       description = "Warning threshold range(s)"
+               }
+               "-s" = {
+                       value = "$snmp_string$"
+                       description = "Return OK state (for that OID) if STRING is an exact match"
+               }
+               "-r" = {
+                       value = "$snmp_ereg$"
+                       description = "Return OK state (for that OID) if extended regular expression REGEX matches"
+               }
+               "-R" = {
+                       value = "$snmp_eregi$"
+                       description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
+               }
+               "-l" = {
+                       value = "$snmp_label$"
+                       description = "Prefix label for output from plugin"
+               }
+               "-u" = {
+                       value = "$snmp_units$"
+                       description = "Units label(s) for output data (e.g., 'sec.')"
+               }
+               "-t" = {
+                       value = "$snmp_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
+               "-p" = {
+                       value = "$snmp_port$"
+                       description = "Port number (default: 161)"
+               }
+               "-e" = {
+                       value = "$snmp_retries$"
+                       description = "Number of retries to be used in the requests"
+               }
                "--invert-search" = {
                        set_if = "$snmp_invert_search$"
                        description = "Invert search result and return CRITICAL if found"
                }
-               "-P" = "$snmp_version$"
-               "-m" = "$snmp_miblist$"
-               "--rate-multiplier" = "$snmp_rate_multiplier$"
+               "-P" = {
+                       value = "$snmp_version$"
+                       description = "SNMP protocol version"
+               }
+               "-m" = {
+                       value = "$snmp_miblist$"
+                       description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
+               }
+               "--rate-multiplier" = {
+                       value = "$snmp_rate_multiplier$"
+                       description = "Converts rate per second. For example, set to 60 to convert to per minute"
+               }
                "--rate" = {
                        set_if = "$snmp_rate$"
                        description = "Enable rate calculation"
@@ -1361,6 +1778,18 @@ object CheckCommand "snmp" {
                        set_if = "$snmp_getnext$"
                        description = "Use SNMP GETNEXT instead of SNMP GET"
                }
+               "--offset" = {
+                       value = "$snmp_offset$"
+                       description = "Add/substract the specified OFFSET to numeric sensor data"
+               }
+               "-D" = {
+                       value = "$snmp_output_delimiter$"
+                       description = "Separates output on multiple OID requests"
+               }
+               "-O" = {
+                       set_if = "$snmp_perf_oids$"
+                       description = "Label performance data with OIDs instead of --label's"
+               }
        }
 
        vars.snmp_address = {{
@@ -1461,13 +1890,22 @@ object CheckCommand "snmpv3" {
                        value = "$snmpv3_miblist$"
                        description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
                }
-               "-u" = "$snmpv3_units$"
-               "--rate-multiplier" = "$snmpv3_rate_multiplier$"
+               "-u" = {
+                       value = "$snmpv3_units$"
+                       description = "Units label(s) for output data (e.g., 'sec.')"
+               }
+               "--rate-multiplier" = {
+                       value = "$snmpv3_rate_multiplier$"
+                       description = "Converts rate per second. For example, set to 60 to convert to per minute"
+               }
                "--rate" = {
                        set_if = "$snmpv3_rate$"
                        description = "Enable rate calculation"
                }
-               "-t" = "$snmpv3_timeout$"
+               "-t" = {
+                       value = "$snmpv3_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
        }
 
        vars.snmpv3_address = "$check_address$"
@@ -1528,13 +1966,29 @@ object CheckCommand "dhcp" {
        command = [ PluginDir + "/check_dhcp" ]
 
        arguments = {
-               "-s" = "$dhcp_serverip$"
-               "-r" = "$dhcp_requestedip$"
-               "-t" = "$dhcp_timeout$"
-               "-i" = "$dhcp_interface$"
-               "-m" = "$dhcp_mac$"
+               "-s" = {
+                       value = "$dhcp_serverip$"
+                       description = "IP address of DHCP server that we must hear from"
+               }
+               "-r" = {
+                       value = "$dhcp_requestedip$"
+                       description = "IP address that should be offered by at least one DHCP server"
+               }
+               "-t" = {
+                       value = "$dhcp_timeout$"
+                       description = "Seconds to wait for DHCPOFFER before timeout occurs"
+               }
+               "-i" = {
+                       value = "$dhcp_interface$"
+                       description = "Interface to to use for listening (i.e. eth0)"
+               }
+               "-m" = {
+                       value = "$dhcp_mac$"
+                       description = "MAC address to use in the DHCP request"
+               }
                "-u" = {
                        set_if = "$dhcp_unicast$"
+                       description = "Unicast testing: mimic a DHCP relay"
                }
        }
 
@@ -1586,7 +2040,6 @@ object CheckCommand "dns" {
        }
 
        vars.dns_lookup = "$host.name$"
-       vars.dns_query_type = "A"
        vars.dns_timeout = 10
 }
 
@@ -1596,19 +2049,43 @@ object CheckCommand "dig" {
        command = [ PluginDir + "/check_dig" ]
 
        arguments = {
-               "-H" = "$dig_server$"
-               "-p" = "$dig_port$"
+               "-H" = {
+                       value = "$dig_server$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$dig_port$"
+                       description = "Port number (default: 53)"
+               }
                "-l" = {
                        value = "$dig_lookup$"
                        required = true
+                       description = "Machine name to lookup"
+               }
+               "-T" = {
+                       value = "$dig_record_type$"
+                       description = "Record type to lookup (default: A)"
+               }
+               "-a" = {
+                       value = "$dig_expected_address$"
+                       description = "An address expected to be in the answer section"
+               }
+               "-A" = {
+                       value = "$dig_arguments$"
+                       description = "Pass STRING as argument(s) to dig"
+               }
+               "-w" = {
+                       value = "$dig_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$dig_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$dig_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
                }
-               "-T" = "$dig_record_type$"
-               "-a" = "$dig_expected_address$"
-               "-A" = "$dig_arguments$"
-               "-r" = "$dig_retries$"
-               "-w" = "$dig_warning$"
-               "-c" = "$dig_critical$"
-               "-t" = "$dig_timeout$"
                "-4" = {
                        set_if = "$dig_ipv4$"
                        description = "Force dig to only use IPv4 query transport"
@@ -1630,24 +2107,43 @@ object CheckCommand "nscp" {
        command = [ PluginDir + "/check_nt" ]
 
        arguments = {
-               "-H" = "$nscp_address$"
-               "-p" = "$nscp_port$"
-               "-s" = "$nscp_password$"
+               "-H" = {
+                       value = "$nscp_address$"
+                       description = "Name of the host to check"
+               }
+               "-p" = {
+                       value = "$nscp_port$"
+                       description = "Optional port number (default: 1248)"
+               }
+               "-s" = {
+                       value = "$nscp_password$"
+                       description = "Password needed for the request"
+               }
                "-v" = {
                        value = "$nscp_variable$"
                        required = true
+                       description = "Variable to check"
                }
                "-l" = {
                        value = "$nscp_params$"
                        repeat_key = false
                }
-               "-w" = "$nscp_warn$"
-               "-c" = "$nscp_crit$"
-               "-t" = "$nscp_timeout$"
+               "-w" = {
+                       value = "$nscp_warn$"
+                       description = "Threshold which will result in a warning status"
+               }
+               "-c" = {
+                       value = "$nscp_crit$"
+                       description = "Threshold which will result in a critical status"
+               }
+               "-t" = {
+                       value = "$nscp_timeout$"
+                       description = "Seconds before connection attempt times out"
+               }
                "-d" = {
                        value = "SHOWALL"
-                       description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
                        set_if = "$nscp_showall$"
+                       description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
                }
        }
 
@@ -1662,8 +2158,14 @@ object CheckCommand "by_ssh" {
        command = [ PluginDir + "/check_by_ssh" ]
 
        arguments = {
-               "-H" = "$by_ssh_address$"
-               "-p" = "$by_ssh_port$"
+               "-H" = {
+                       value = "$by_ssh_address$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-p" = {
+                       value = "$by_ssh_port$"
+                       description = "Port number (default: none)"
+               }
                "-C" = {{
                        var command = macro("$by_ssh_command$")
                        var arguments = macro("$by_ssh_arguments$")
@@ -1678,14 +2180,30 @@ object CheckCommand "by_ssh" {
                        }
                        return escaped_args.join(" ")
                }}
-               "-l" = "$by_ssh_logname$"
-               "-i" = "$by_ssh_identity$"
+               "-l" = {
+                       value = "$by_ssh_logname$"
+                       description = "SSH user name on remote host [optional]"
+               }
+               "-i" = {
+                       value = "$by_ssh_identity$"
+                       description = "identity of an authorized key [optional]"
+               }
                "-q" = {
                        set_if = "$by_ssh_quiet$"
+                       description = "Tell ssh to suppress warning and diagnostic messages [optional]"
+               }
+               "-w" = {
+                       value = "$by_ssh_warn$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$by_ssh_crit$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$by_ssh_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
                }
-               "-w" = "$by_ssh_warn$"
-               "-c" = "$by_ssh_crit$"
-               "-t" = "$by_ssh_timeout$"
                "-o" = {
                        value = "$by_ssh_options$"
                        description = "Provide ssh options (may be repeated)"
@@ -1698,6 +2216,10 @@ object CheckCommand "by_ssh" {
                        set_if = "$by_ssh_ipv6$"
                        description = "Use IPv6 only"
                }
+               "-E" = {
+                       value = "$by_ssh_skip_stderr$"
+                       description = "Ignore all or (if specified) first n lines on STDERR [optional]"
+               }
        }
 
        vars.by_ssh_address = "$check_address$"
@@ -1757,19 +2279,29 @@ object CheckCommand "nrpe" {
 
        command = [ PluginDir + "/check_nrpe" ]
 
-       arguments = {
-               "-H" = "$nrpe_address$"
-               "-p" = "$nrpe_port$"
-               "-c" = "$nrpe_command$"
+       arguments = {
+               "-H" = {
+                       value = "$nrpe_address$"
+                       description = "The address of the host running the NRPE daemon"
+               }
+               "-p" = {
+                       value = "$nrpe_port$"
+               }
+               "-c" = {
+                       value = "$nrpe_command$"
+               }
                "-n" = {
                        set_if = "$nrpe_no_ssl$"
-                       description = "Do not use SSL."
+                       description = "Do not use SSL"
                }
                "-u" = {
                        set_if = "$nrpe_timeout_unknown$"
                        description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
                }
-               "-t" = "$nrpe_timeout$"
+               "-t" = {
+                       value = "$nrpe_timeout$"
+                       description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
+               }
                "-a" = {
                        value = "$nrpe_arguments$"
                        repeat_key = false
@@ -1804,9 +2336,18 @@ object CheckCommand "hpjd" {
        command = [ PluginDir + "/check_hpjd" ]
 
        arguments = {
-               "-H" = "$hpjd_address$"
-               "-C" = "$hpjd_community$"
-               "-p" = "$hpjd_port$"
+               "-H" = {
+                       value = "$hpjd_address$"
+                       description = "Host address"
+               }
+               "-C" = {
+                       value = "$hpjd_community$"
+                       description = "The SNMP community name (default=public)"
+               }
+               "-p" = {
+                       value = "$hpjd_port$"
+                       description = "Specify the port to check (default=161)"
+               }
        }
 
        vars.hpjd_address = "$check_address$"
@@ -1820,17 +2361,48 @@ object CheckCommand "icmp" {
                        value = "$icmp_address$"
                        repeat_key = false
                        order = 1
+                       description = "Host address"
+               }
+               "-w" = {
+                       value = "$icmp_wrta$,$icmp_wpl$%"
+                       description = "warning threshold (currently 200.000ms,40%)"
+               }
+               "-c" = {
+                       value = "$icmp_crta$,$icmp_cpl$%"
+                       description = "critical threshold (currently 500.000ms,80%)"
+               }
+               "-s" = {
+                       value = "$icmp_source$"
+                       description = "specify a source IP address or device name"
+               }
+               "-n" = {
+                       value = "$icmp_packets$"
+                       description = "number of packets to send (currently 5)"
+               }
+               "-i" = {
+                       value = "$icmp_packet_interval$"
+                       description = "max packet interval (currently 80.000ms)"
+               }
+               "-I" = {
+                       value = "$icmp_target_interval$"
+                       description = "max target interval (currently 0.000ms)"
+               }
+               "-m" = {
+                       value = "$icmp_hosts_alive$"
+                       description = "number of alive hosts required for success"
+               }
+               "-b" = {
+                       value = "$icmp_data_bytes$"
+                       description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
+               }
+               "-t" = {
+                       value = "$icmp_timeout$"
+                       description = "timeout value (seconds, currently  10)"
+               }
+               "-l" = {
+                       value = "$icmp_ttl$"
+                       description = "TTL on outgoing packets (currently 0)"
                }
-               "-w" = "$icmp_wrta$,$icmp_wpl$%"
-               "-c" = "$icmp_crta$,$icmp_cpl$%"
-               "-s" = "$icmp_source$"
-               "-n" = "$icmp_packets$"
-               "-i" = "$icmp_packet_interval$"
-               "-I" = "$icmp_target_interval$"
-               "-m" = "$icmp_hosts_alive$"
-               "-b" = "$icmp_data_bytes$"
-               "-t" = "$icmp_timeout$"
-               "-l" = "$icmp_ttl$"
        }
 
        vars.icmp_address = "$address$"
@@ -2065,18 +2637,54 @@ object CheckCommand "pgsql" {
        command = [ PluginDir + "/check_pgsql" ]
 
        arguments = {
-               "-H" = "$pgsql_hostname$"
-               "-P" = "$pgsql_port$"
-               "-d" = "$pgsql_database$"
-               "-l" = "$pgsql_username$"
-               "-p" = "$pgsql_password$"
-               "-o" = "$pgsql_options$"
-               "-w" = "$pgsql_warning$"
-               "-c" = "$pgsql_critical$"
-               "-t" = "$pgsql_timeout$"
-               "-q" = "$pgsql_query$"
-               "-W" = "$pgsql_query_warning$"
-               "-C" = "$pgsql_query_critical$"
+               "-H" = {
+                       value = "$pgsql_hostname$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-P" = {
+                       value = "$pgsql_port$"
+                       description = "Port number (default: 5432)"
+               }
+               "-d" = {
+                       value = "$pgsql_database$"
+                       description = "Database to check (default: template1)"
+               }
+               "-l" = {
+                       value = "$pgsql_username$"
+                       description = "Login name of user"
+               }
+               "-p" = {
+                       value = "$pgsql_password$"
+                       description = "Password (BIG SECURITY ISSUE)"
+               }
+               "-o" = {
+                       value = "$pgsql_options$"
+                       description = "Connection parameters (keyword = value), see below"
+                       }
+               "-w" = {
+                       value = "$pgsql_warning$"
+                       description = "Response time to result in warning status (seconds)"
+               }
+               "-c" = {
+                       value = "$pgsql_critical$"
+                       description = "Response time to result in critical status (seconds)"
+               }
+               "-t" = {
+                       value = "$pgsql_timeout$"
+                       description = "Seconds before connection times out (default: 10)"
+               }
+               "-q" = {
+                       value = "$pgsql_query$"
+                       description = "SQL query to run. Only first column in first row will be read"
+               }
+               "-W" = {
+                       value = "$pgsql_query_warning$"
+                       description = "SQL query value to result in warning status (double)"
+               }
+               "-C" = {
+                       value = "$pgsql_query_critical$"
+                       description = "SQL query value to result in critical status (double)"
+               }
        }
 
        vars.pgsql_hostname = "$check_address$"
@@ -2088,30 +2696,78 @@ object CheckCommand "mysql" {
        command = [ PluginDir + "/check_mysql" ]
 
        arguments = {
-               "-H" = "$mysql_hostname$"
-               "-P" = "$mysql_port$"
+               "-H" = {
+                       value = "$mysql_hostname$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-P" = {
+                       value = "$mysql_port$"
+                       description = "Port number (default: 3306)"
+               }
                "-n" = {
                        set_if = "$mysql_ignore_auth$"
+                       description = "Ignore authentication failure and check for mysql connectivity only"
+               }
+               "-s" = {
+                       value = "$mysql_socket$"
+                       description = "Use the specified socket"
+               }
+               "-d" = {
+                       value = "$mysql_database$"
+                       description = "Check database with indicated name"
+               }
+               "-f" = {
+                       value = "$mysql_file$"
+                       description = "Read from the specified client options file"
+               }
+               "-g" = {
+                       value = "$mysql_group$"
+                       description = "Use a client options group"
+               }
+               "-u" = {
+                       value = "$mysql_username$"
+                       description = "Connect using the indicated username"
+               }
+               "-p" = {
+                       value = "$mysql_password$"
+                       description = "Use the indicated password to authenticate the connection"
                }
-               "-s" = "$mysql_socket$"
-               "-d" = "$mysql_database$"
-               "-f" = "$mysql_file$"
-               "-g" = "$mysql_group$"
-               "-u" = "$mysql_username$"
-               "-p" = "$mysql_password$"
                "-S" = {
                        set_if = "$mysql_check_slave$"
+                       description = "Check if the slave thread is running properly"
+               }
+               "-w" = {
+                       value = "$mysql_warning$"
+                       description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
+               }
+               "-c" = {
+                       value = "$mysql_critical$"
+                       description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
                }
-               "-w" = "$mysql_warning$"
-               "-c" = "$mysql_critical$"
                "-l" = {
                        set_if = "$mysql_ssl$"
+                       description = "Use ssl encryptation"
+               }
+               "-C" = {
+                       value = "$mysql_cacert$"
+                       description = "Path to CA signing the cert"
+               }
+               "-a" = {
+                       value = "$mysql_cert$"
+                       description = "Path to SSL certificate"
+               }
+               "-k" = {
+                       value = "$mysql_key$"
+                       description = "Path to private SSL key"
+               }
+               "-D" = {
+                       value = "$mysql_cadir$"
+                       description = "Path to CA directory"
+               }
+               "-L" = {
+                       value = "$mysql_ciphers$"
+                       description = "List of valid SSL ciphers"
                }
-               "-C" = "$mysql_cacert$"
-               "-a" = "$mysql_cert$"
-               "-k" = "$mysql_key$"
-               "-D" = "$mysql_cadir$"
-               "-L" = "$mysql_ciphers$"
        }
 
        vars.mysql_hostname = "$check_address$"
@@ -2121,13 +2777,29 @@ object CheckCommand "negate" {
        command = [ PluginDir + "/negate" ]
 
        arguments = {
-               "-t" = "$negate_timeout$"
-               "-T" = "$negate_timeout_result$"
-               "-o" = "$negate_ok$"
-               "-w" = "$negate_warning$"
-               "-c" = "$negate_critical$"
+               "-t" = {
+                       value = "$negate_timeout$"
+                       description = "Seconds before plugin times out (default: 11)"
+               }
+               "-T" = {
+                       value = "$negate_timeout_result$"
+                       description = "Custom result on Negate timeouts"
+               }
+               "-o" = {
+                       value = "$negate_ok$"
+               }
+               "-w" = {
+                       value = "$negate_warning$"
+               }
+               "-c" = {
+                       value = "$negate_critical$"
+               }
+               "-u" = {
+                       value = "$negate_unknown$"
+               }
                "-s" = {
                        set_if = "$negate_substitute$"
+                       description = "Substitute output text as well. Will only substitute text in CAPITALS"
                }
                "--wrapped-plugin" = {
                        value = {{
@@ -2300,16 +2972,46 @@ object CheckCommand "mysql_query" {
        command = [ PluginDir + "/check_mysql_query" ]
 
        arguments = {
-               "-H" = "$mysql_query_hostname$"
-               "-P" = "$mysql_query_port$"
-               "-u" = "$mysql_query_username$"
-               "-p" = "$mysql_query_password$"
-               "-d" = "$mysql_query_database$"
-               "-f" = "$mysql_query_file$"
-               "-g" = "$mysql_query_group$"
-               "-q" = "$mysql_query_execute$"
-               "-w" = "$mysql_query_warning$"
-               "-c" = "$mysql_query_critical$"
+               "-H" = {
+                       value = "$mysql_query_hostname$"
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-P" = {
+                       value = "$mysql_query_port$"
+                       description = "Port number (default: 3306)"
+               }
+               "-u" = {
+                       value = "$mysql_query_username$"
+                       description = "Username to login with"
+               }
+               "-p" = {
+                       value = "$mysql_query_password$"
+                       description = "Password to login with"
+               }
+               "-d" = {
+                       value = "$mysql_query_database$"
+                       description = "Database to check"
+               }
+               "-f" = {
+                       value = "$mysql_query_file$"
+                       description = "Read from the specified client options file"
+               }
+               "-g" = {
+                       value = "$mysql_query_group$"
+                       description = "Use a client options group"
+               }
+               "-q" = {
+                       value = "$mysql_query_execute$"
+                       description = "SQL query to run. Only first column in first row will be read"
+               }
+               "-w" = {
+                       value = "$mysql_query_warning$"
+                       description = "Warning range (format: start:end). Alert if outside this range"
+               }
+               "-c" = {
+                       value = "$mysql_query_critical$"
+                       description = "Critical range"
+               }
        }
 
        vars.mysql_query_hostname = "$check_address$"
@@ -2323,12 +3025,25 @@ object CheckCommand "radius" {
        ]
 
        arguments = {
-               "-H" = "$radius_address$",
-               "-F" = "$radius_config_file$",
-               "-u" = "$radius_username$",
-               "-p" = "$radius_password$",
+               "-H" = {
+                       value = "$radius_address$",
+                       description = "Host name, IP Address, or unix socket (must be an absolute path)"
+               }
+               "-F" = {
+                       value = "$radius_config_file$",
+                       description = "Configuration file"
+               }
+               "-u" = {
+                       value = "$radius_username$",
+                       description = "The user to authenticate"
+               }
+               "-p" = {
+                       value = "$radius_password$",
+                       description = "Password for authentication"
+               }
                "-P" = {
                        value = "$radius_port$",
+                       description = "Port number (default: 1645)"
                },
                "-n" = {
                        value = "$radius_nas_id$",
@@ -2354,3 +3069,77 @@ object CheckCommand "radius" {
 
        vars.radius_address = "$check_address$"
 }
+
+object CheckCommand "nscp_api" {
+       import "ipv4-or-ipv6"
+
+       command = [ PluginDir + "/check_nscp_api" ]
+
+       arguments = {
+               "-H" = {
+                       value = "$nscp_api_host$"
+                       description = "NSCP API host address"
+                       required = true
+               }
+               "-P" = {
+                       value = "$nscp_api_port$"
+                       description = "NSCP API host port. Defaults to 8443."
+               }
+               "--password" = {
+                       value = "$nscp_api_password$"
+                       description = "NSCP API password"
+               }
+               "-q" = {
+                       value = "$nscp_api_query$"
+                       description = "NSCPI API Query endpoint to use"
+               }
+               "-a" = {
+                       value = "$nscp_api_arguments$"
+                       description = "NSCP API Query arguments"
+                       repeat_key = true
+               }
+       }
+
+       vars.nscp_api_host = "$check_address$"
+}
+
+object CheckCommand "rpc" {
+       import "ipv4-or-ipv6"
+
+       command = [ PluginDir + "/check_rpc" ]
+
+       arguments = {
+               "-H" = {
+                       value = "$rpc_address$"
+                       description = "RPC host address"
+                       required = true
+               }
+               "-C" = {
+                       value = "$rpc_command$"
+                       description = "Programm name (or number)"
+                       required = true
+               }
+               "-p" = {
+                       value = "$rpc_port$"
+                       description = "RPC port"
+               }
+               "-c" = {
+                       value = "$rpc_version$"
+                       description = "The version to check"
+               }
+               "-u" = {
+                       set_if = "$rpc_udp$"
+                       description = "Test UDP"
+               }
+               "-t" = {
+                       set_if = "$rpc_tcp$"
+                       description     = "Test TCP"
+               }
+               "-v" = {
+                       set_if = "$rpc_verbose$"
+                       description = "Show verbose details"
+               }
+       }
+
+       vars.rpc_address = "$check_address$"
+}