From ab9218e8016ef807a7979f5927f9fefcda205cf0 Mon Sep 17 00:00:00 2001 From: Sebastian Chrostek Date: Sat, 21 Nov 2015 11:26:38 +0100 Subject: [PATCH] Add ipv4 / ipv6 support for all monitoring-plugins Add some options to check_smtp/check_ssmtp/check_imap/check_simap/check_pop/check_spop Refs #10669 Signed-off-by: Gunnar Beutner --- doc/7-icinga-template-library.md | 179 +++++++++++++++----- itl/command-plugins.conf | 270 +++++++++++++++++++++++++++++-- 2 files changed, 399 insertions(+), 50 deletions(-) diff --git a/doc/7-icinga-template-library.md b/doc/7-icinga-template-library.md index 69cec1e5f..234969635 100644 --- a/doc/7-icinga-template-library.md +++ b/doc/7-icinga-template-library.md @@ -129,6 +129,9 @@ by_ssh_warn | **Optional.** The warning threshold. by_ssh_crit | **Optional.** The critical threshold. by_ssh_timeout | **Optional.** The timeout in seconds. by_ssh_options | **Optional.** Call ssh with '-o OPTION' (multiple options may be specified as an array). +by_ssh_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +by_ssh_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. + ### clamd @@ -156,6 +159,9 @@ clamd_ssl | **Optional.** Use SSL for the connection. Defaults to fal clamd_wtime | **Optional.** Response time to result in warning status (seconds). clamd_ctime | **Optional.** Response time to result in critical status (seconds). clamd_timeout | **Optional.** Seconds before connection times out. Defaults to 10. +clamd_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +clamd_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. + ### dhcp @@ -182,15 +188,17 @@ Custom attributes passed as [command parameters](3-monitoring-basics.md#command- Name | Description ---------------------|-------------- dig_server | **Optional.** The DNS server to query. Defaults to "127.0.0.1". -dig_port | **Optional.** Port number (default: 53). +dig_port | **Optional.** Port number (default: 53). dig_lookup | **Required.** The address that should be looked up. dig_record_type | **Optional.** Record type to lookup (default: A). dig_expected_address | **Optional.** An address expected to be in the answer section. If not set, uses whatever was in -l. dig_arguments | **Optional.** Pass STRING as argument(s) to dig. -dig_retries | **Optional.** Number of retries passed to dig, timeout is divided by this value (Default: 3). +dig_retries | **Optional.** Number of retries passed to dig, timeout is divided by this value (Default: 3). dig_warning | **Optional.** Response time to result in warning status (seconds). dig_critical | **Optional.** Response time to result in critical status (seconds). dig_timeout | **Optional.** Seconds before connection times out (default: 10). +dig_ipv4 | **Optional.** Force dig to only use IPv4 query transport. Defaults to false. +dig_ipv6 | **Optional.** Force dig to only use IPv6 query transport. Defaults to false. ### disk @@ -223,7 +231,7 @@ disk_local | **Optional.** Only check local filesystems. May be true disk_stat_remote_fs | **Optional.** 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). Myy be true or false disk_mountpoint | **Optional.** Display the mountpoint instead of the partition. May be true or false. disk_megabytes | **Optional.** Same as --units MB. May be true or false. -disk_all | **Optional.** Explicitly select all paths. This is equivalent to -R '.\*'. May be true or false. +disk_all | **Optional.** Explicitly select all paths. This is equivalent to -R '.*'. May be true or false. disk_eregi_path | **Optional.** Case insensitive regular expression for path/partition (may be repeated). disk_ereg_path | **Optional.** Regular expression for path or partition (may be repeated). disk_ignore_eregi_path | **Optional.** Regular expression to ignore selected path/partition (case insensitive) (may be repeated). @@ -352,6 +360,8 @@ ftp_ssl | **Optional.** Use SSL for the connection. Defaults to false ftp_wtime | **Optional.** Response time to result in warning status (seconds). ftp_ctime | **Optional.** Response time to result in critical status (seconds). ftp_timeout | **Optional.** Seconds before connection times out. Defaults to 10. +ftp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +ftp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### hostalive @@ -461,8 +471,8 @@ http_extendedperfdata | **Optional.** Print additional perfdata. Defaults to http_onredirect | **Optional.** How to handle redirect pages. Possible values: "ok" (default), "warning", "critical", "follow", "sticky" (like follow but stick to address), "stickyport" (like sticky but also to port) http_pagesize | **Optional.** Minimum page size required:Maximum page size required. http_timeout | **Optional.** Seconds before connection times out. -http_ipv4 | **Optional.** Use IPv4 only. -http_ipv6 | **Optional.** Use IPv6 only. +http_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +http_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### icmp @@ -493,11 +503,27 @@ Check command object for the `check_imap` plugin. Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -imap_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. -imap_port | **Optional.** The port that should be checked. Defaults to 143. -imap_timeout | **Optional.** The timeout in seconds. +Name | Description +----------------------|-------------- +imap_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. +imap_port | **Optional.** The port that should be checked. Defaults to 143. +imap_escape | **Optional.** 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. +imap_send | **Optional.** String to send to the server. +imap_expect | **Optional.** String to expect in server response (may be repeated). +imap_all | **Optional.** All expect strings need to occur in server response. Default is any. +imap_quit | **Optional.** String to send server to initiate a clean close of the connection. +imap_refuse | **Optional.** Accept TCP refusals with states ok, warn, crit (default: crit). +imap_mismatch | **Optional.** Accept expected string mismatches with states ok, warn, crit (default: warn). +imap_jail | **Optional.** Hide output from TCP socket. +imap_maxbytes | **Optional.** Close connection once more than this number of bytes are received. +imap_delay | **Optional.** Seconds to wait between sending string and polling for response. +imap_certificate_age | **Optional.** Minimum number of days a certificate has to be valid. +imap_ssl | **Optional.** Use SSL for the connection. +imap_warning | **Optional.** Response time to result in warning status (seconds). +imap_critical | **Optional.** Response time to result in critical status (seconds). +imap_timeout | **Optional.** Seconds before connection times out (default: 10). +imap_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +imap_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### ldap @@ -510,7 +536,7 @@ Name | Description ----------------|-------------- ldap_address | **Optional.** Host name, IP Address, or unix socket (must be an absolute path). Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. ldap_port | **Optional.** Port number. Defaults to 389. -ldap_attr | **Optional.** LDAP attribute to search for (default: "(objectclass=\*)" +ldap_attr | **Optional.** LDAP attribute to search for (default: "(objectclass=*)" ldap_base | **Required.** LDAP base (eg. ou=myunit,o=myorg,c=at). ldap_bind | **Optional.** LDAP bind DN (if required). ldap_pass | **Optional.** LDAP password (if required). @@ -612,8 +638,8 @@ nrpe_no_ssl | **Optional.** Whether to disable SSL or not. Defaults to `fals nrpe_timeout_unknown | **Optional.** Whether to set timeouts to unknown instead of critical state. Defaults to `false`. nrpe_timeout | **Optional.** The timeout in seconds. nrpe_arguments | **Optional.** Arguments that should be passed to the command. Multiple arguments must be defined as array. -nrpe_ipv4 | **Optional.** Use IPv4 only. -nrpe_ipv6 | **Optional.** Use IPv6 only. +nrpe_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +nrpe_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### nscp @@ -650,6 +676,8 @@ ntp_warning | **Optional.** Offset to result in warning status (seconds). ntp_critical | **Optional.** Offset to result in critical status (seconds). ntp_timeoffset | **Optional.** Expected offset of the ntp server relative to local server (seconds). ntp_timeout | **Optional.** Seconds before connection times out (default: 10). +ntp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +ntp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### ntp_peer @@ -671,6 +699,8 @@ ntp_cjitter | **Optional.** Critical threshold for jitter. ntp_wsource | **Optional.** Warning threshold for number of usable time sources. ntp_csource | **Optional.** Critical threshold for number of usable time sources. ntp_timeout | **Optional.** Seconds before connection times out (default: 10). +ntp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +ntp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### passive @@ -763,11 +793,27 @@ Check command object for the `check_pop` plugin. Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -pop_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. -pop_port | **Optional.** The port that should be checked. Defaults to 110. -pop_timeout | **Optional.** The timeout in seconds. +Name | Description +---------------------|-------------- +pop_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. +pop_port | **Optional.** The port that should be checked. Defaults to 110. +pop_escape | **Optional.** 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. +pop_send | **Optional.** String to send to the server. +pop_expect | **Optional.** String to expect in server response (may be repeated). +pop_all | **Optional.** All expect strings need to occur in server response. Default is any. +pop_quit | **Optional.** String to send server to initiate a clean close of the connection. +pop_refuse | **Optional.** Accept TCP refusals with states ok, warn, crit (default: crit). +pop_mismatch | **Optional.** Accept expected string mismatches with states ok, warn, crit (default: warn). +pop_jail | **Optional.** Hide output from TCP socket. +pop_maxbytes | **Optional.** Close connection once more than this number of bytes are received. +pop_delay | **Optional.** Seconds to wait between sending string and polling for response. +pop_certificate_age | **Optional.** Minimum number of days a certificate has to be valid. +pop_ssl | **Optional.** Use SSL for the connection. +pop_warning | **Optional.** Response time to result in warning status (seconds). +pop_critical | **Optional.** Response time to result in critical status (seconds). +pop_timeout | **Optional.** Seconds before connection times out (default: 10). +pop_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +pop_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### procs @@ -801,11 +847,27 @@ Check command object for the `check_simap` plugin. Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -simap_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. -simap_port | **Optional.** The host's port. -simap_timeout | **Optional.** The timeout in seconds. +Name | Description +-----------------------|-------------- +simap_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. +simap_port | **Optional.** The port that should be checked. Defaults to 993. +simap_escape | **Optional.** 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. +simap_send | **Optional.** String to send to the server. +simap_expect | **Optional.** String to expect in server response (may be repeated). +simap_all | **Optional.** All expect strings need to occur in server response. Default is any. +simap_quit | **Optional.** String to send server to initiate a clean close of the connection. +simap_refuse | **Optional.** Accept TCP refusals with states ok, warn, crit (default: crit). +simap_mismatch | **Optional.** Accept expected string mismatches with states ok, warn, crit (default: warn). +simap_jail | **Optional.** Hide output from TCP socket. +simap_maxbytes | **Optional.** Close connection once more than this number of bytes are received. +simap_delay | **Optional.** Seconds to wait between sending string and polling for response. +simap_certificate_age | **Optional.** Minimum number of days a certificate has to be valid. +simap_ssl | **Optional.** Use SSL for the connection. +simap_warning | **Optional.** Response time to result in warning status (seconds). +simap_critical | **Optional.** Response time to result in critical status (seconds). +simap_timeout | **Optional.** Seconds before connection times out (default: 10). +simap_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +simap_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### smtp @@ -832,6 +894,8 @@ smtp_ignore_quit | **Optional.** Ignore failure when sending QUIT command t smtp_warning | **Optional.** Response time to result in warning status (seconds). smtp_critical | **Optional.** Response time to result in critical status (seconds). smtp_timeout | **Optional.** Seconds before connection times out (default: 10). +smtp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +smtp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### snmp @@ -905,11 +969,27 @@ Check command object for the `check_spop` plugin. Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -spop_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. -spop_port | **Optional.** The host's port. -spop_timeout | **Optional.** The timeout in seconds. +Name | Description +----------------------|-------------- +spop_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. +spop_port | **Optional.** The port that should be checked. Defaults to 995. +spop_escape | **Optional.** 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. +spop_send | **Optional.** String to send to the server. +spop_expect | **Optional.** String to expect in server response (may be repeated). +spop_all | **Optional.** All expect strings need to occur in server response. Default is any. +spop_quit | **Optional.** String to send server to initiate a clean close of the connection. +spop_refuse | **Optional.** Accept TCP refusals with states ok, warn, crit (default: crit). +spop_mismatch | **Optional.** Accept expected string mismatches with states ok, warn, crit (default: warn). +spop_jail | **Optional.** Hide output from TCP socket. +spop_maxbytes | **Optional.** Close connection once more than this number of bytes are received. +spop_delay | **Optional.** Seconds to wait between sending string and polling for response. +spop_certificate_age | **Optional.** Minimum number of days a certificate has to be valid. +spop_ssl | **Optional.** Use SSL for the connection. +spop_warning | **Optional.** Response time to result in warning status (seconds). +spop_critical | **Optional.** Response time to result in critical status (seconds). +spop_timeout | **Optional.** Seconds before connection times out (default: 10). +spop_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +spop_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### ssh @@ -923,6 +1003,8 @@ Name | Description ssh_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. ssh_port | **Optional.** The port that should be checked. Defaults to 22. ssh_timeout | **Optional.** Seconds before connection times out. Defaults to 10. +ssh_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +ssh_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### ssl @@ -946,10 +1028,27 @@ Check command object for the `check_ssmtp` plugin. Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -ssmtp_address | **Required.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. -ssmtp_port | **Optional.** The port that should be checked. Defaults to 465. +Name | Description +-----------------------|-------------- +ssmtp_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. +ssmtp_port | **Optional.** The port that should be checked. Defaults to 465. +ssmtp_escape | **Optional.** 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. +ssmtp_send | **Optional.** String to send to the server. +ssmtp_expect | **Optional.** String to expect in server response (may be repeated). +ssmtp_all | **Optional.** All expect strings need to occur in server response. Default is any. +ssmtp_quit | **Optional.** String to send server to initiate a clean close of the connection. +ssmtp_refuse | **Optional.** Accept TCP refusals with states ok, warn, crit (default: crit). +ssmtp_mismatch | **Optional.** Accept expected string mismatches with states ok, warn, crit (default: warn). +ssmtp_jail | **Optional.** Hide output from TCP socket. +ssmtp_maxbytes | **Optional.** Close connection once more than this number of bytes are received. +ssmtp_delay | **Optional.** Seconds to wait between sending string and polling for response. +ssmtp_certificate_age | **Optional.** Minimum number of days a certificate has to be valid. +ssmtp_ssl | **Optional.** Use SSL for the connection. +ssmtp_warning | **Optional.** Response time to result in warning status (seconds). +ssmtp_critical | **Optional.** Response time to result in critical status (seconds). +ssmtp_timeout | **Optional.** Seconds before connection times out (default: 10). +ssmtp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +ssmtp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### swap @@ -990,8 +1089,8 @@ tcp_ssl | **Optional.** Use SSL for the connection. Defaults to false. tcp_wtime | **Optional.** Response time to result in warning status (seconds). tcp_ctime | **Optional.** Response time to result in critical status (seconds). tcp_timeout | **Optional.** Seconds before connection times out. Defaults to 10. -tcp_ipv4 | **Optional.** Use IPv4 only. -tcp_ipv6 | **Optional.** Use IPv6 only. +tcp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +tcp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### udp @@ -1007,8 +1106,8 @@ udp_port | **Required.** The port that should be checked. udp_send | **Required.** The payload to send in the UDP datagram. udp_expect | **Required.** The payload to expect in the response datagram. udp_quit | **Optional.** The payload to send to 'close' the session. -udp_ipv4 | **Optional.** Use IPv4 only. -udp_ipv6 | **Optional.** Use IPv6 only. +udp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. +udp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ### ups @@ -1514,7 +1613,7 @@ snmp_authprotocol | **Optional.** SNMP version 3 authentication protocol. snmp_privpass | **Required.** SNMP version 3 priv password. No value defined as default.. snmp_warn | **Optional.** The warning threshold. snmp_crit | **Optional.** The critical threshold. -snmp_process_name | **Optional.** Name of the process (regexp). No trailing slash!. Defaults to ".\*". +snmp_process_name | **Optional.** Name of the process (regexp). No trailing slash!. Defaults to ".*". snmp_perf | **Optional.** Enable perfdata values. Defaults to true. snmp_timeout | **Optional.** The command timeout in seconds. Defaults to 5 seconds. @@ -1758,7 +1857,7 @@ ipmi_config_file | **Optional.** Path to the FreeIPMI configurat ipmi_username | **Optional.** The IPMI username. ipmi_password | **Optional.** The IPMI password. ipmi_privilege_level | **Optional.** The IPMI privilege level of the IPMI user. -ipmi_backward_compatibility_mode | **Optional.** Enable backward compatibility mode, useful for FreeIPMI 0.5.\* (this omits FreeIPMI options "--quiet-cache" and "--sdr-cache-recreate"). +ipmi_backward_compatibility_mode | **Optional.** Enable backward compatibility mode, useful for FreeIPMI 0.5.* (this omits FreeIPMI options "--quiet-cache" and "--sdr-cache-recreate"). ipmi_sensor_type | **Optional.** Limit sensors to query based on IPMI sensor type. Examples for IPMI sensor types are 'Fan', 'Temperature' and 'Voltage'. ipmi_exclude_sensor_id | **Optional.** Exclude sensor matching ipmi_sensor_id. ipmi_sensor_id | **Optional.** Include sensor matching ipmi_sensor_id. @@ -2058,8 +2157,8 @@ Name | Description mem_used | **Optional.** Tell the plugin to check for used memory in opposite of **mem_free**. Must specify one of these as true. mem_free | **Optional.** Tell the plugin to check for free memory in opposite of **mem_used**. Must specify one of these as true. mem_cache | **Optional.** If set to true plugin will count cache as free memory. Defaults to false. -mem_warning | **Required.** Specify the warning threshold as number interpreted as percent. -mem_critical | **Required.** Specify the critical threshold as number interpreted as percent. +mem_warning | **Required.** Specifiy the warning threshold as number interpreted as percent. +mem_critical | **Required.** Specifiy the critical threshold as number interpreted as percent. #### running_kernel diff --git a/itl/command-plugins.conf b/itl/command-plugins.conf index 8cfa91fe3..36b79cacf 100644 --- a/itl/command-plugins.conf +++ b/itl/command-plugins.conf @@ -248,11 +248,11 @@ object CheckCommand "tcp" { } "-4" = { set_if = "$tcp_ipv4$" - description = "Use IPv4 only" + description = "Use IPv4 connection" } "-6" = { set_if = "$tcp_ipv6$" - description = "Use IPv6 only" + description = "Use IPv6 connection" } } @@ -304,11 +304,11 @@ object CheckCommand "udp" { "-q" = "$udp_quit$" "-4" = { set_if = "$udp_ipv4$" - description = "Use IPv4 only" + description = "Use IPv4 connection" } "-6" = { set_if = "$udp_ipv6$" - description = "Use IPv6 only" + description = "Use IPv6 connection" } } @@ -429,11 +429,11 @@ object CheckCommand "http" { } "-4" = { set_if = "$http_ipv4$" - description = "Use IPv4 only" + description = "Use IPv4 connection" } "-6" = { set_if = "$http_ipv6$" - description = "Use IPv6 only" + description = "Use IPv6 connection" } } @@ -531,6 +531,14 @@ object CheckCommand "ftp" { value = "$ftp_timeout$" description = "Seconds before connection times out. Defaults to 10." } + "-4" = { + set_if = "$ftp_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$ftp_ipv6$" + description = "Use IPv6 connection" + } } vars.ftp_address = "$check_address$" @@ -538,6 +546,8 @@ object CheckCommand "ftp" { vars.ftp_refuse = "crit" vars.ftp_mismatch = "warn" vars.ftp_timeout = 10 + vars.check_ipv4 = "$ftp_ipv4$" + vars.check_ipv6 = "$ftp_ipv6$" } object CheckCommand "smtp" { @@ -555,7 +565,10 @@ object CheckCommand "smtp" { "-R" = "$smtp_response$" "-F" = "$smtp_helo_fqdn$" "-D" = "$smtp_certificate_age$" - "-S" = "$smtp_starttls$" + "-S" = { + set_if = "$smtp_starttls$" + description = "Use STARTTLS for the connection." + } "-A" = "$smtp_authtype$" "-U" = "$smtp_authuser$" "-P" = "$smtp_authpass$" @@ -563,9 +576,19 @@ object CheckCommand "smtp" { "-w" = "$smtp_warning$" "-c" = "$smtp_critical$" "-t" = "$smtp_timeout$" + "-4" = { + set_if = "$smtp_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$smtp_ipv6$" + description = "Use IPv6 connection" + } } vars.smtp_address = "$check_address$" + vars.check_ipv4 = "$smtp_ipv4$" + vars.check_ipv6 = "$smtp_ipv6$" } object CheckCommand "ssmtp" { @@ -573,12 +596,47 @@ object CheckCommand "ssmtp" { import "ipv4-or-ipv6" command = [ PluginDir + "/check_ssmtp" ] + arguments = { "-H" = "$ssmtp_address$" "-p" = "$ssmtp_port$" + "-E" = "$ssmtp_escape$" + "-s" = "$ssmtp_send$" + "-e" = "$ssmtp_expect$" + "-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$" + "-j" = { + set_if = "$ssmtp_jail$" + description = "Hide output from TCP socket." + } + "-m" = "$ssmtp_maxbytes$" + "-d" = "$ssmtp_delay$" + "-D" = "$ssmtp_certificate_age$" + "-S" = { + set_if = "$ssmtp_ssl$" + description = "Use SSL for the connection." + } + "-w" = "$ssmtp_warning$" + "-c" = "$ssmtp_critical$" + "-t" = "$ssmtp_timeout$" + "-4" = { + set_if = "$ssmtp_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$ssmtp_ipv6$" + description = "Use IPv6 connection" + } } vars.ssmtp_address = "$check_address$" + vars.check_ipv4 = "$ssmtp_ipv4$" + vars.check_ipv6 = "$ssmtp_ipv6$" } object CheckCommand "imap" { @@ -590,25 +648,91 @@ object CheckCommand "imap" { arguments = { "-H" = "$imap_address$" "-p" = "$imap_port$" + "-E" = "$imap_escape$" + "-s" = "$imap_send$" + "-e" = "$imap_expect$" + "-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$" + "-j" = { + set_if = "$imap_jail$" + description = "Hide output from TCP socket." + } + "-m" = "$imap_maxbytes$" + "-d" = "$imap_delay$" + "-D" = "$imap_certificate_age$" + "-S" = { + set_if = "$imap_ssl$" + description = "Use SSL for the connection." + } + "-w" = "$imap_warning$" + "-c" = "$imap_critical$" "-t" = "$imap_timeout$" + "-4" = { + set_if = "$imap_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$imap_ipv6$" + description = "Use IPv6 connection" + } } vars.imap_address = "$check_address$" + vars.check_ipv4 = "$imap_ipv4$" + vars.check_ipv6 = "$imap_ipv6$" } object CheckCommand "simap" { import "plugin-check-command" import "ipv4-or-ipv6" - command = [ PluginDir + "/check_simap" ] + command = [ PluginDir + "/check_simap" ] arguments = { "-H" = "$simap_address$" "-p" = "$simap_port$" + "-E" = "$simap_escape$" + "-s" = "$simap_send$" + "-e" = "$simap_expect$" + "-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$" + "-j" = { + set_if = "$simap_jail$" + description = "Hide output from TCP socket." + } + "-m" = "$simap_maxbytes$" + "-d" = "$simap_delay$" + "-D" = "$simap_certificate_age$" + "-S" = { + set_if = "$simap_ssl$" + description = "Use SSL for the connection." + } + "-w" = "$simap_warning$" + "-c" = "$simap_critical$" "-t" = "$simap_timeout$" + "-4" = { + set_if = "$simap_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$simap_ipv6$" + description = "Use IPv6 connection" + } } vars.simap_address = "$check_address$" + vars.check_ipv4 = "$simap_ipv4$" + vars.check_ipv6 = "$simap_ipv6$" } object CheckCommand "pop" { @@ -620,10 +744,43 @@ object CheckCommand "pop" { arguments = { "-H" = "$pop_address$" "-p" = "$pop_port$" + "-E" = "$pop_escape$" + "-s" = "$pop_send$" + "-e" = "$pop_expect$" + "-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$" + "-j" = { + set_if = "$pop_jail$" + description = "Hide output from TCP socket." + } + "-m" = "$pop_maxbytes$" + "-d" = "$pop_delay$" + "-D" = "$pop_certificate_age$" + "-S" = { + set_if = "$pop_ssl$" + description = "Use SSL for the connection." + } + "-w" = "$pop_warning$" + "-c" = "$pop_critical$" "-t" = "$pop_timeout$" + "-4" = { + set_if = "$pop_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$pop_ipv6$" + description = "Use IPv6 connection" + } } vars.pop_address = "$check_address$" + vars.check_ipv4 = "$pop_ipv4$" + vars.check_ipv6 = "$pop_ipv6$" } object CheckCommand "spop" { @@ -635,10 +792,43 @@ object CheckCommand "spop" { arguments = { "-H" = "$spop_address$" "-p" = "$spop_port$" + "-E" = "$spop_escape$" + "-s" = "$spop_send$" + "-e" = "$spop_expect$" + "-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$" + "-j" = { + set_if = "$spop_jail$" + description = "Hide output from TCP socket." + } + "-m" = "$spop_maxbytes$" + "-d" = "$spop_delay$" + "-D" = "$spop_certificate_age$" + "-S" = { + set_if = "$spop_ssl$" + description = "Use SSL for the connection." + } + "-w" = "$spop_warning$" + "-c" = "$spop_critical$" "-t" = "$spop_timeout$" + "-4" = { + set_if = "$spop_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$spop_ipv6$" + description = "Use IPv6 connection" + } } vars.spop_address = "$check_address$" + vars.check_ipv4 = "$spop_ipv4$" + vars.check_ipv6 = "$spop_ipv6$" } object CheckCommand "ntp_time" { @@ -655,9 +845,19 @@ object CheckCommand "ntp_time" { "-c" = "$ntp_critical$" "-o" = "$ntp_timeoffset$" "-t" = "$ntp_timeout$" + "-4" = { + set_if = "$ntp_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$ntp_ipv6$" + description = "Use IPv6 connection" + } } vars.ntp_address = "$check_address$" + vars.check_ipv4 = "$ntp_ipv4$" + vars.check_ipv6 = "$ntp_ipv6$" } object CheckCommand "ntp_peer" { @@ -678,9 +878,19 @@ object CheckCommand "ntp_peer" { "-m" = "$ntp_wsource$" "-n" = "$ntp_csource$" "-t" = "$ntp_timeout$" + "-4" = { + set_if = "$ntp_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$ntp_ipv6$" + description = "Use IPv6 connection" + } } vars.ntp_address = "$check_address$" + vars.check_ipv4 = "$ntp_ipv4$" + vars.check_ipv6 = "$ntp_ipv6$" } object CheckCommand "ssh" { @@ -697,9 +907,19 @@ object CheckCommand "ssh" { skip_key = true order = 1 } + "-4" = { + set_if = "$ssh_ipv4$" + description = "Use IPv4 connection" + } + "-6" = { + set_if = "$ssh_ipv6$" + description = "Use IPv6 connection" + } } vars.ssh_address = "$check_address$" + vars.check_ipv4 = "$ssh_ipv4$" + vars.check_ipv6 = "$ssh_ipv6$" } object CheckCommand "disk" { @@ -1300,9 +1520,19 @@ object CheckCommand "dig" { "-w" = "$dig_warning$" "-c" = "$dig_critical$" "-t" = "$dig_timeout$" + "-4" = { + set_if = "$dig_ipv4$" + description = "Force dig to only use IPv4 query transport" + } + "-6" = { + set_if = "$dig_ipv6$" + description = "Force dig to only use IPv6 query transport" + } } vars.dig_server = "$check_address$" + vars.check_ipv4 = "$dig_ipv4$" + vars.check_ipv6 = "$dig_ipv6$" } object CheckCommand "nscp" { @@ -1373,10 +1603,20 @@ object CheckCommand "by_ssh" { value = "$by_ssh_options$" description = "Provide ssh options (may be repeated)" } + "-4" = { + set_if = "$by_ssh_ipv4$" + description = "Use IPv4 only" + } + "-6" = { + set_if = "$by_ssh_ipv6$" + description = "Use IPv6 only" + } } vars.by_ssh_address = "$check_address$" vars.by_ssh_quiet = false + vars.check_ipv4 = "$by_ssh_ipv4$" + vars.check_ipv6 = "$by_ssh_ipv6$" } object CheckCommand "ups" { @@ -1452,11 +1692,11 @@ object CheckCommand "nrpe" { } "-4" = { set_if = "$nrpe_ipv4$" - description = "Use IPv4 only" + description = "Use IPv4 connection" } "-6" = { set_if = "$nrpe_ipv6$" - description = "Use IPv6 only" + description = "Use IPv6 connection" } } @@ -1672,12 +1912,22 @@ object CheckCommand "clamd" { value = "$clamd_timeout$" description = "Seconds before connection times out. Defaults to 10." } + "-4" = { + set_if = "$clamd_ipv4$" + description = "Use IPv4 only" + } + "-6" = { + set_if = "$clamd_ipv6$" + description = "Use IPv6 only" + } } vars.clamd_ssl = false vars.clamd_refuse = "crit" vars.clamd_mismatch = "warn" vars.clamd_timeout = 10 + vars.check_ipv4 = "$clamd_ipv4$" + vars.check_ipv6 = "$clamd_ipv6$" } object CheckCommand "mailq" {