From daf36ae362437d84ebf433045e51f655cce50087 Mon Sep 17 00:00:00 2001 From: Bruno Lingner Date: Thu, 14 May 2020 14:17:31 +0200 Subject: [PATCH 1/3] add _extra_opts argument to plugins that support it --- doc/10-icinga-template-library.md | 62 ++++++++++-- itl/command-plugins.conf | 152 ++++++++++++++++++++++++++++++ 2 files changed, 205 insertions(+), 9 deletions(-) diff --git a/doc/10-icinga-template-library.md b/doc/10-icinga-template-library.md index d0d9e5672..485e6b7e0 100644 --- a/doc/10-icinga-template-library.md +++ b/doc/10-icinga-template-library.md @@ -270,7 +270,6 @@ Custom variables passed as [command parameters](03-monitoring-basics.md#command- Name | Description ------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -apt_extra_opts | **Optional.** Read options from an ini file. apt_upgrade | **Optional.** [Default] Perform an upgrade. If an optional OPTS argument is provided, apt-get will be run with these command line options instead of the default. apt_dist_upgrade | **Optional.** Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options. apt_include | **Optional.** Include only packages matching REGEXP. Can be specified multiple times the values will be combined together. @@ -279,6 +278,7 @@ apt_critical | **Optional.** If the full package information of any o apt_timeout | **Optional.** Seconds before plugin times out (default: 10). apt_only_critical | **Optional.** Only warn about critical upgrades. apt_list | **Optional.** List packages available for upgrade. +apt_extra_opts | **Optional.** Read extra plugin options from an ini file. ### breeze @@ -319,6 +319,7 @@ by_ssh_options | **Optional.** Call ssh with '-o OPTION' (multiple options m by_ssh_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. by_ssh_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. by_ssh_skip_stderr | **Optional.** Ignore all or (if specified) first n lines on STDERR. +by_ssh_extra_opts | **Optional.** Read extra plugin options from an ini file. ### clamd @@ -350,6 +351,7 @@ clamd_ctime | **Optional.** Response time to result in critical status 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. +clamd_extra_opts | **Optional.** Read extra plugin options from an ini file. ### dhcp @@ -367,6 +369,7 @@ dhcp_timeout | **Optional.** The timeout in seconds. dhcp_interface | **Optional.** The interface to use. dhcp_mac | **Optional.** The MAC address to use in the DHCP request. dhcp_unicast | **Optional.** Whether to use unicast requests. Defaults to false. +dhcp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### dig @@ -390,6 +393,7 @@ dig_critical | **Optional.** Response time to result in critical status 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. +dig_extra_opts | **Optional.** Read extra plugin options from an ini file. ### disk @@ -430,6 +434,7 @@ disk\_units | **Optional.** Choose bytes, kB, MB, GB, TB. disk\_exclude\_type | **Optional.** Ignore all filesystems of indicated type. Multiple regular expression strings must be defined as array. Defaults to "none", "tmpfs", "sysfs", "proc", "configfs", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.\*" (only Monitoring Plugins support this so far), "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fuse.sshfs", "fdescfs", "overlay", "nsfs", "squashfs". disk\_include\_type | **Optional.** Check only filesystems of indicated type. Multiple regular expression strings must be defined as array. disk\_inode\_perfdata | **Optional.** Display inode usage in perfdata +disk\_extra\_opts | **Optional.** Read extra plugin options from an ini file. ### disk_smb @@ -471,6 +476,7 @@ dns_accept_cname | **Optional.** Accept cname responses as a valid result to dns_wtime | **Optional.** Return warning if elapsed time exceeds value. dns_ctime | **Optional.** Return critical if elapsed time exceeds value. dns_timeout | **Optional.** Seconds before connection times out. Defaults to 10. +dns_extra_opts | **Optional.** Read extra plugin options from an ini file. @@ -527,6 +533,7 @@ fping_bytes | **Optional.** The size of ICMP packet. fping_target_timeout | **Optional.** The target timeout in milli-seconds. fping_source_ip | **Optional.** The name or ip address of the source ip. fping_source_interface | **Optional.** The source interface name. +fping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### fping6 @@ -552,6 +559,7 @@ fping_bytes | **Optional.** The size of ICMP packet. fping_target_timeout | **Optional.** The target timeout in milli-seconds. fping_source_ip | **Optional.** The name or ip address of the source ip. fping_source_interface | **Optional.** The source interface name. +fping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ftp @@ -583,6 +591,7 @@ ftp_ctime | **Optional.** Response time to result in critical status (s 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. +ftp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### game @@ -606,6 +615,7 @@ game_mapfield | **Optional.** Field number in raw qstat output that contain game_pingfield | **Optional.** Field number in raw qstat output that contains ping time. game_gametime | **Optional.** Field number in raw qstat output that contains game time. game_hostname | **Optional.** Name of the host running the game. +game_extra_opts | **Optional.** Read extra plugin options from an ini file. ### hostalive @@ -625,6 +635,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 100. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 10. +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### hostalive4 @@ -643,6 +654,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 100. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout). +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### hostalive6 @@ -661,6 +673,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 100. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout). +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### hpjd @@ -676,6 +689,7 @@ Name | Description hpjd_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. hpjd_port | **Optional.** The host's SNMP port. Defaults to 161. hpjd_community | **Optional.** The SNMP community. Defaults to "public". +hpjd_extra_opts | **Optional.** Read extra plugin options from an ini file. ### http @@ -737,8 +751,8 @@ http_ipv4 | **Optional.** Use IPv4 connection. Defaults t http_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. http_link | **Optional.** Wrap output in HTML link. Defaults to false. http_verbose | **Optional.** Show details for command-line debugging. Defaults to false. -http_extra_opts | **Optional.** Read extra plugin options from an ini file. http_verify_host | **Optional.** Verify SSL certificate is for the -H hostname (with --sni and -S). Defaults to false. **Only supported by the Nagios plugins version of check\_http, not by the monitoring plugins one.** +http_extra_opts | **Optional.** Read extra plugin options from an ini file. ### curl @@ -827,6 +841,7 @@ icmp_hosts_alive | **Optional.** The number of hosts which have to be alive for icmp_data_bytes | **Optional.** Payload size for each ICMP request. Defaults to 8. icmp_timeout | **Optional.** The plugin timeout in seconds. Defaults to 10 (seconds). icmp_ttl | **Optional.** The TTL on outgoing packets. +icmp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### imap @@ -857,6 +872,7 @@ imap_critical | **Optional.** Response time to result in critical status 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. +imap_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ldap @@ -887,6 +903,7 @@ ldap_warning_entries | **Optional.** Number of found entries to result in warnin ldap_critical_entries | **Optional.** Number of found entries to result in critical status. ldap_timeout | **Optional.** Seconds before connection times out (default: 10). ldap_verbose | **Optional.** Show details for command-line debugging (disabled by default) +ldap_extra_opts | **Optional.** Read extra plugin options from an ini file. ### load @@ -904,6 +921,7 @@ load_cload1 | **Optional.** The 1-minute critical threshold. Defaults to 10. load_cload5 | **Optional.** The 5-minute critical threshold. Defaults to 6. load_cload15 | **Optional.** The 15-minute critical threshold. Defaults to 4. load_percpu | **Optional.** Divide the load averages by the number of CPUs (when possible). Defaults to false. +load_extra_opts | **Optional.** Read extra plugin options from an ini file. ### mailq @@ -950,6 +968,7 @@ mysql_cert | **Optional.** Path to SSL certificate. mysql_key | **Optional.** Path to private SSL key. mysql_cadir | **Optional.** Path to CA directory. mysql_ciphers | **Optional.** List of valid SSL ciphers. +mysql_extra_opts | **Optional.** Read extra plugin options from an ini file. ### mysql_query @@ -975,6 +994,7 @@ mysql_query_password | **Optional.** Use the indicated password to authentica mysql_query_execute | **Required.** SQL Query to run on the MySQL Server. mysql_query_warning | **Optional.** Exit with WARNING status if query is outside of the range (format: start:end). mysql_query_critical | **Optional.** Exit with CRITICAL status if query is outside of the range. +mysql_query_extra_opts | **Optional.** Read extra plugin options from an ini file. ### negate @@ -1068,6 +1088,7 @@ ntp_timeoffset | **Optional.** Expected offset of the ntp server relative to lo 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_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ntp_peer @@ -1095,6 +1116,7 @@ ntp_csource | **Optional.** Critical threshold for number of usable time sou 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_extra_opts | **Optional.** Read extra plugin options from an ini file. ### pgsql @@ -1122,6 +1144,7 @@ pgsql_timeout | **Optional.** Seconds before connection times out (default: 10) pgsql_query | **Optional.** SQL query to run. Only first column in first row will be read. pgsql_query_warning | **Optional.** SQL query value to result in warning status (double). pgsql_query_critical | **Optional.** SQL query value to result in critical status (double). +pgsql_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ping @@ -1143,6 +1166,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 15. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout). +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ping4 @@ -1165,6 +1189,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 15. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout). +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ping6 @@ -1186,6 +1211,7 @@ ping_crta | **Optional.** The RTA critical threshold in milliseconds. Defa ping_cpl | **Optional.** The packet loss critical threshold in %. Defaults to 15. ping_packets | **Optional.** The number of packets to send. Defaults to 5. ping_timeout | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout). +ping_extra_opts | **Optional.** Read extra plugin options from an ini file. ### pop @@ -1216,6 +1242,7 @@ pop_critical | **Optional.** Response time to result in critical status 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. +pop_extra_opts | **Optional.** Read extra plugin options from an ini file. ### procs @@ -1245,6 +1272,7 @@ procs_argument_regex | **Optional.** Only scan for processes with args that con procs_command | **Optional.** Only scan for exact matches of COMMAND (without path). procs_exclude_process | **Optional.** Exclude processes which match this comma separated list. procs_nokthreads | **Optional.** Only scan for non kernel threads. Defaults to false. +procs_extra_opts | **Optional.** Read extra plugin options from an ini file. ### radius @@ -1274,6 +1302,7 @@ radius_nas_address | **Optional.** The NAS IP address. radius_expect | **Optional.** The response string to expect from the server. radius_retries | **Optional.** The number of times to retry a failed connection. radius_timeout | **Optional.** The number of seconds before connection times out (default: 10). +radius_extra_opts | **Optional.** Read extra plugin options from an ini file. ### rpc @@ -1320,6 +1349,7 @@ simap_critical | **Optional.** Response time to result in critical statu 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. +simap_extra_opts | **Optional.** Read extra plugin options from an ini file. ### smart @@ -1328,9 +1358,10 @@ checks a local hard drive with the (Linux specific) SMART interface. Requires in Custom variables passed as [command parameters](03-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -smart_device | **Required.** The name of a local hard drive to monitor. +Name | Description +-----------------|-------------- +smart_device | **Required.** The name of a local hard drive to monitor. +smart_extra_opts | **Optional.** Read extra plugin options from an ini file. ### smtp @@ -1360,6 +1391,7 @@ smtp_critical | **Optional.** Response time to result in critical status 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. +smtp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### snmp @@ -1396,6 +1428,7 @@ snmp_timeout | **Optional.** The command timeout in seconds. Defaults to snmp_offset | **Optional.** Add/subtract the specified OFFSET to numeric sensor data. snmp_output_delimiter | **Optional.** Separates output on multiple OID requests. snmp_perf_oids | **Optional.** Label performance data with OIDs instead of --label's. +snmp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### snmpv3 @@ -1428,6 +1461,7 @@ snmp3_multiplier |**Optional.** Multiplies current value, 0 < n < 1 works as snmpv3_rate_multiplier | **Optional.** Converts rate per second. For example, set to 60 to convert to per minute. snmpv3_rate | **Optional.** Boolean. Enable rate calculation. snmpv3_timeout | **Optional.** The command timeout in seconds. Defaults to 10 seconds. +snmpv3_extra_opts | **Optional.** Read extra plugin options from an ini file. ### snmp-uptime @@ -1441,6 +1475,7 @@ Name | Description snmp_address | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. snmp_oid | **Optional.** The SNMP OID. Defaults to "1.3.6.1.2.1.1.3.0". snmp_community | **Optional.** The SNMP community. Defaults to "public". +snmp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### spop @@ -1471,6 +1506,7 @@ spop_critical | **Optional.** Response time to result in critical status 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. +spop_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ssh @@ -1489,6 +1525,7 @@ ssh_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. ssh_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. ssh_remote_version | **Optional.** Alert if string doesn't match expected server version (ex: OpenSSH_3.9p1). ssh_remote_protocol | **Optional.** Alert if protocol doesn't match expected protocol version (ex: 2.0). +ssh_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ssl @@ -1506,6 +1543,7 @@ ssl_timeout | **Optional.** Timeout in seconds for the connect ssl_cert_valid_days_warn | **Optional.** Warning threshold for days before the certificate will expire. When used, the default for ssl_cert_valid_days_critical is 0. ssl_cert_valid_days_critical | **Optional.** Critical threshold for days before the certificate will expire. When used, ssl_cert_valid_days_warn must also be set. ssl_sni | **Optional.** The `server_name` that is sent to select the SSL certificate to check. Important if SNI is used. +ssl_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ssmtp @@ -1536,6 +1574,7 @@ ssmtp_critical | **Optional.** Response time to result in critical statu 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. +ssmtp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### swap @@ -1552,6 +1591,7 @@ swap_cfree | **Optional.** The free swap space critical threshold in % (ena swap_integer | **Optional.** Specifies whether the thresholds are passed as number or percent value. Defaults to false (percent values). swap_allswaps | **Optional.** Conduct comparisons for all swap partitions, one by one. Defaults to false. swap_noswap | **Optional.** Resulting state when there is no swap regardless of thresholds. Possible values are "ok", "warning", "critical", "unknown". Defaults to "critical". +swap_extra_opts | **Optional.** Read extra plugin options from an ini file. ### tcp @@ -1584,6 +1624,7 @@ tcp_ctime | **Optional.** Response time to result in critical status (seco tcp_timeout | **Optional.** Seconds before connection times out. Defaults to 10. tcp_ipv4 | **Optional.** Use IPv4 connection. Defaults to false. tcp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. +tcp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### udp @@ -1602,6 +1643,7 @@ 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 connection. Defaults to false. udp_ipv6 | **Optional.** Use IPv6 connection. Defaults to false. +udp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ups @@ -1622,6 +1664,7 @@ ups_warning | **Optional.** The warning threshold for the selected variable. ups_critical | **Optional.** The critical threshold for the selected variable. ups_celsius | **Optional.** Display the temperature in degrees Celsius instead of Fahrenheit. Defaults to `false`. ups_timeout | **Optional.** The number of seconds before the connection times out. Defaults to 10. +ups_extra_opts | **Optional.** Read extra plugin options from an ini file. ### users @@ -1632,10 +1675,11 @@ error if the number exceeds the thresholds specified. Custom variables passed as [command parameters](03-monitoring-basics.md#command-passing-parameters): -Name | Description -----------------|-------------- -users_wgreater | **Optional.** The user count warning threshold. Defaults to 20. -users_cgreater | **Optional.** The user count critical threshold. Defaults to 50. +Name | Description +-----------------|-------------- +users_wgreater | **Optional.** The user count warning threshold. Defaults to 20. +users_cgreater | **Optional.** The user count critical threshold. Defaults to 50. +users_extra_opts | **Optional.** Read extra plugin options from an ini file. ### uptime diff --git a/itl/command-plugins.conf b/itl/command-plugins.conf index 7563801f9..e3eb5e370 100644 --- a/itl/command-plugins.conf +++ b/itl/command-plugins.conf @@ -24,6 +24,10 @@ template CheckCommand "ping-common" { value = "$ping_address$" description = "host to ping" } + "--extra-opts" = { + value = "$ping_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$ping_wrta$,$ping_wpl$%" description = "warning threshold pair" @@ -101,6 +105,10 @@ template CheckCommand "fping-common" { ] arguments = { + "--extra-opts" = { + value = "$fping_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$fping_wrta$,$fping_wpl$%" description = "warning threshold pair" @@ -169,6 +177,10 @@ object CheckCommand "tcp" { value = "$tcp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)." } + "--extra-opts" = { + value = "$tcp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$tcp_port$" description = "The TCP port number." @@ -276,6 +288,10 @@ object CheckCommand "ssl" { value = "$ssl_address$" description = "Host address" } + "--extra-opts" = { + value = "$ssl_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ssl_port$" description ="TCP port (default: 443)" @@ -321,6 +337,10 @@ object CheckCommand "udp" { ] arguments = { + "--extra-opts" = { + value = "$udp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-s" = { value = "$udp_send$" required = true @@ -782,6 +802,10 @@ object CheckCommand "ftp" { value = "$ftp_address$" description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set." } + "--extra-opts" = { + value = "$ftp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ftp_port$" description = "The FTP port number. Defaults to none" @@ -885,6 +909,10 @@ object CheckCommand "smtp" { value = "$smtp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$smtp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$smtp_port$" description = "Port number (default: 25)" @@ -970,6 +998,10 @@ object CheckCommand "ssmtp" { value = "$ssmtp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$ssmtp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ssmtp_port$" description = "Port number (default: none)" @@ -1059,6 +1091,10 @@ object CheckCommand "imap" { value = "$imap_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$imap_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$imap_port$" description = "Port number (default: none)" @@ -1148,6 +1184,10 @@ object CheckCommand "simap" { value = "$simap_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$simap_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$simap_port$" description = "Port number (default: none)" @@ -1237,6 +1277,10 @@ object CheckCommand "pop" { value = "$pop_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$pop_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$pop_port$" description = "Port number (default: none)" @@ -1326,6 +1370,10 @@ object CheckCommand "spop" { value = "$spop_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$spop_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$spop_port$" description = "Port number (default: none)" @@ -1415,6 +1463,10 @@ object CheckCommand "ntp_time" { value = "$ntp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$ntp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ntp_port$" description = "Port number (default: 123)" @@ -1464,6 +1516,10 @@ object CheckCommand "ntp_peer" { value = "$ntp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$ntp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ntp_port$" description = "Port number (default: 123)" @@ -1529,6 +1585,10 @@ object CheckCommand "ssh" { command = [ PluginDir + "/check_ssh" ] arguments = { + "--extra-opts" = { + value = "$ssh_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ssh_port$" description = "Port number (default: 22)" @@ -1569,6 +1629,10 @@ object CheckCommand "disk" { command = [ PluginDir + "/check_disk" ] arguments = { + "--extra-opts" = { + value = "$disk_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$disk_wfree$" description = "Exit with WARNING status if less than INTEGER units of disk are free or Exit with WARNING status if less than PERCENT of disk space is free" @@ -1776,6 +1840,10 @@ object CheckCommand "users" { command = [ PluginDir + "/check_users" ] arguments = { + "--extra-opts" = { + value = "$users_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$users_wgreater$" description = "Set WARNING status if more than INTEGER users are logged in" @@ -1794,6 +1862,10 @@ object CheckCommand "procs" { command = [ PluginDir + "/check_procs" ] arguments = { + "--extra-opts" = { + value = "$procs_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$procs_warning$" description = "Generate warning state if metric is outside this range" @@ -1870,6 +1942,10 @@ object CheckCommand "swap" { command = [ PluginDir + "/check_swap" ] arguments = { + "--extra-opts" = { + value = "$swap_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = {{ if (macro("$swap_integer$")) { return macro("$swap_wfree$") @@ -1904,6 +1980,10 @@ object CheckCommand "load" { command = [ PluginDir + "/check_load" ] arguments = { + "--extra-opts" = { + value = "$load_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$load_wload1$,$load_wload5$,$load_wload15$" description = "Exit with WARNING status if load average exceeds WLOADn" @@ -1937,6 +2017,10 @@ object CheckCommand "snmp" { value = "$snmp_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$snmp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-o" = { value = "$snmp_oid$" description = "Object identifier(s) or SNMP variables whose value you wish to query" @@ -2053,6 +2137,10 @@ object CheckCommand "snmpv3" { value = "$snmpv3_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$snmpv3_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$snmpv3_port$" description = "Port number" @@ -2238,6 +2326,10 @@ object CheckCommand "dhcp" { command = [ PluginDir + "/check_dhcp" ] arguments = { + "--extra-opts" = { + value = "$dhcp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-s" = { value = "$dhcp_serverip$" description = "IP address of DHCP server that we must hear from" @@ -2277,6 +2369,10 @@ object CheckCommand "dns" { value = "$dns_lookup$" description = "The name or address you want to query." } + "--extra-opts" = { + value = "$dns_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-s" = { value = "$dns_server$" description = "Optional DNS server you want to use for the lookup." @@ -2329,6 +2425,10 @@ object CheckCommand "dig" { value = "$dig_server$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$dig_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$dig_port$" description = "Port number (default: 53)" @@ -2387,6 +2487,10 @@ object CheckCommand "nscp" { value = "$nscp_address$" description = "Name of the host to check" } + "--extra-opts" = { + value = "$nscp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$nscp_port$" description = "Optional port number (default: 1248)" @@ -2438,6 +2542,10 @@ object CheckCommand "by_ssh" { value = "$by_ssh_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$by_ssh_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$by_ssh_port$" description = "Port number (default: none)" @@ -2515,6 +2623,10 @@ object CheckCommand "ups" { description = "Address of the upsd server" required = true } + "--extra-opts" = { + value = "$ups_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-u" = { value = "$ups_name$" description = "Name of the UPS to monitor" @@ -2652,6 +2764,10 @@ object CheckCommand "hpjd" { value = "$hpjd_address$" description = "Host address" } + "--extra-opts" = { + value = "$hpjd_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-C" = { value = "$hpjd_community$" description = "The SNMP community name (default=public)" @@ -2675,6 +2791,10 @@ object CheckCommand "icmp" { order = 1 description = "Host address" } + "--extra-opts" = { + value = "$icmp_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-w" = { value = "$icmp_wrta$,$icmp_wpl$%" description = "warning threshold (currently 200.000ms,10%)" @@ -2734,6 +2854,10 @@ object CheckCommand "ldap" { value = "$ldap_address$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$ldap_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$ldap_port$" description = "Port number (default: 389)" @@ -2813,6 +2937,10 @@ object CheckCommand "clamd" { description = "The host's address or unix socket (must be an absolute path)." required = true } + "--extra-opts" = { + value = "$clamd_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-p" = { value = "$clamd_port$" description = "Port number (default: none)." @@ -2957,6 +3085,10 @@ object CheckCommand "pgsql" { value = "$pgsql_hostname$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$pgsql_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-P" = { value = "$pgsql_port$" description = "Port number (default: 5432)" @@ -3021,6 +3153,10 @@ object CheckCommand "mysql" { value = "$mysql_hostname$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$mysql_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-P" = { value = "$mysql_port$" description = "Port number (default: 3306)" @@ -3182,6 +3318,10 @@ object CheckCommand "smart" { command = [ PluginDir + "/check_ide_smart" ] arguments = { + "--extra-opts" = { + value = "$smart_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-d" = { value = "$smart_device$" description = "Name of a local hard drive to monitor" @@ -3244,6 +3384,10 @@ object CheckCommand "game" { command = [ PluginDir + "/check_game" ] arguments = { + "--extra-opts" = { + value = "$game_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-P" = { value = "$game_port$" description = "Port to connect to" @@ -3297,6 +3441,10 @@ object CheckCommand "mysql_query" { value = "$mysql_query_hostname$" description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$mysql_query_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-P" = { value = "$mysql_query_port$" description = "Port number (default: 3306)" @@ -3350,6 +3498,10 @@ object CheckCommand "radius" { value = "$radius_address$", description = "Host name, IP Address, or unix socket (must be an absolute path)" } + "--extra-opts" = { + value = "$radius_extra_opts$" + description = "Read extra plugin options from an ini file." + } "-F" = { value = "$radius_config_file$", description = "Configuration file" From 988ba18be03dc5ed1834c7a2add4548480ad99a2 Mon Sep 17 00:00:00 2001 From: Julian Brost Date: Thu, 6 Feb 2025 16:49:42 +0100 Subject: [PATCH 2/3] ITL docs: list curl_extra_opts as last variable Other plugins list --extra-opts last as it's often some kind of feature of last resort as it provides an option that can't be set in another way. For consistency, this also moves it to the end for the curl check command. --- doc/10-icinga-template-library.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/10-icinga-template-library.md b/doc/10-icinga-template-library.md index 485e6b7e0..736a8acba 100644 --- a/doc/10-icinga-template-library.md +++ b/doc/10-icinga-template-library.md @@ -767,7 +767,6 @@ Custom variables passed as [command parameters](03-monitoring-basics.md#command- Name | Description ---------------------------------|--------------------------------- -curl_extra_opts | **Optional.** Read options from an ini file. curl_vhost | **Optional.** The virtual host that should be sent in the "Host" header. curl_ip | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise. curl_port | **Optional.** The TCP port. Defaults to 80 when not using SSL, 443 otherwise. @@ -814,6 +813,7 @@ curl_cookie_jar_file | **Optional.** Path to a cookie jar file. Stor curl_warning | **Optional.** The warning threshold. curl_critical | **Optional.** The critical threshold. curl_timeout | **Optional.** Seconds before connection times out. +curl_extra_opts | **Optional.** Read options from an ini file. ### icmp From 1df7f3f7c7592c12f88e66fde5bee46855573d71 Mon Sep 17 00:00:00 2001 From: Julian Brost Date: Thu, 6 Feb 2025 17:08:44 +0100 Subject: [PATCH 3/3] ITL docs: add missing nscp_extra_opts --- doc/10-icinga-template-library.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/10-icinga-template-library.md b/doc/10-icinga-template-library.md index 736a8acba..b719f9916 100644 --- a/doc/10-icinga-template-library.md +++ b/doc/10-icinga-template-library.md @@ -1066,6 +1066,7 @@ nscp_warn | **Optional.** The warning threshold. nscp_crit | **Optional.** The critical threshold. nscp_timeout | **Optional.** The query timeout in seconds. nscp_showall | **Optional.** Use with SERVICESTATE to see working services or PROCSTATE for running processes. Defaults to false. +nscp_extra_opts | **Optional.** Read extra plugin options from an ini file. ### ntp_time