1 /******************************************************************************
3 * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) *
5 * This program is free software; you can redistribute it and/or *
6 * modify it under the terms of the GNU General Public License *
7 * as published by the Free Software Foundation; either version 2 *
8 * of the License, or (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the Free Software Foundation *
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ******************************************************************************/
20 template CheckCommand "ipv4-or-ipv6" {
21 vars.check_address = {{
22 var addr_v4 = macro("$address$")
23 var addr_v6 = macro("$address6$")
25 if (addr_v4 && !macro("$check_ipv6$") || macro("$check_ipv4$")) {
32 vars.check_ipv4 = false
33 vars.check_ipv6 = false
36 template CheckCommand "ping-common" {
37 command = [ PluginDir + "/check_ping" ]
41 value = "$ping_address$"
42 description = "host to ping"
45 value = "$ping_wrta$,$ping_wpl$%"
46 description = "warning threshold pair"
49 value = "$ping_crta$,$ping_cpl$%"
50 description = "critical threshold pair"
53 value = "$ping_packets$"
54 description = "number of ICMP ECHO packets to send (Default: 5)"
57 value = "$ping_timeout$"
58 description = "Seconds before connection times out (default: 10)"
68 object CheckCommand "ping" {
72 vars.ping_address = "$check_address$"
75 object CheckCommand "ping4" {
80 vars.ping_address = "$address$"
83 object CheckCommand "ping6" {
88 vars.ping_address = "$address6$"
91 template CheckCommand "hostalive-common" {
92 vars.ping_wrta = 3000.0
95 vars.ping_crta = 5000.0
99 object CheckCommand "hostalive" {
101 import "hostalive-common"
104 object CheckCommand "hostalive4" {
106 import "hostalive-common"
109 object CheckCommand "hostalive6" {
111 import "hostalive-common"
114 template CheckCommand "fping-common" {
116 PluginDir + "/check_fping",
122 value = "$fping_wrta$,$fping_wpl$%"
123 description = "warning threshold pair"
126 value = "$fping_crta$,$fping_cpl$%"
127 description = "critical threshold pair"
130 value = "$fping_number$"
131 description = "number of ICMP packets to send (default: 1)"
134 value = "$fping_interval$"
135 description = "Interval (ms) between sending packets (default: fping's default for -p)"
138 value = "$fping_bytes$"
139 description = "size of ICMP packet (default: 56)"
142 value = "$fping_target_timeout$"
143 description = "Target timeout (ms) (default: fping's default for -t)"
146 value = "$fping_source_ip$"
147 description = "name or IP Address of sourceip"
150 value = "$fping_source_interface$"
151 description = "source interface name"
155 vars.fping_wrta = 100
157 vars.fping_crta = 200
159 vars.fping_number = 5
160 vars.fping_interval = 500
163 object CheckCommand "fping4" {
164 import "fping-common"
168 vars.fping_address = "$address$"
171 object CheckCommand "fping6" {
172 import "fping-common"
176 vars.fping_address = "$address6$"
179 object CheckCommand "tcp" {
180 import "ipv4-or-ipv6"
182 command = [ PluginDir + "/check_tcp" ]
186 value = "$tcp_address$"
187 description = "Host name, IP Address, or unix socket (must be an absolute path)."
191 description = "The TCP port number."
194 value = "$tcp_expect$"
195 description = "String to expect in server response (may be repeated)."
199 description = "All expect strings need to occur in server response. Defaults to false."
204 set_if = "$tcp_escape_send$"
205 description = "Enable usage of \n, \r, \t or \\ in send string."
210 description = "String to send to the server."
215 set_if = "$tcp_escape_quit$"
216 description = "Enable usage of \n, \r, \t or \\ in quit string."
221 description = "String to send server to initiate a clean close of the connection."
224 value = "$tcp_refuse$"
225 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
228 value = "$tcp_mismatch$"
229 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
232 set_if = "$tcp_jail$"
233 description = "Hide output from TCP socket."
236 value = "$tcp_maxbytes$"
237 description = "Close connection once more than this number of bytes are received."
240 value = "$tcp_delay$"
241 description = "Seconds to wait between sending string and polling for response."
244 value = "$tcp_certificate$"
245 description = "Minimum number of days a certificate has to be valid. 1st value is number of days for warning, 2nd is critical (if not specified: 0) - seperated by comma."
249 description = "Use SSL for the connection."
252 value = "$tcp_wtime$"
253 description = "Response time to result in warning status (seconds)."
256 value = "$tcp_ctime$"
257 description = "Response time to result in critical status (seconds)."
260 value = "$tcp_timeout$"
261 description = "Seconds before connection times out. Defaults to 10."
264 set_if = "$tcp_ipv4$"
265 description = "Use IPv4 connection"
268 set_if = "$tcp_ipv6$"
269 description = "Use IPv6 connection"
273 vars.tcp_address = "$check_address$"
275 vars.tcp_refuse = "crit"
276 vars.tcp_mismatch = "warn"
277 vars.tcp_timeout = 10
278 vars.check_ipv4 = "$tcp_ipv4$"
279 vars.check_ipv6 = "$tcp_ipv6$"
282 object CheckCommand "ssl" {
283 import "ipv4-or-ipv6"
285 command = [ PluginDir + "/check_tcp" ]
289 value = "$ssl_address$"
290 description = "Host address"
294 description ="TCP port (default: 443)"
297 description = "Use SSL for the connection"
300 value = "$ssl_timeout$"
301 description = "Seconds before connection times out (default: 10)"
304 var days_warn = macro("$ssl_cert_valid_days_warn$")
305 var days_critical = macro("$ssl_cert_valid_days_critical$")
308 return days_warn + "," + days_critical
316 description = "Enable SSL/TLS hostname extension support (SNI)"
320 vars.ssl_address = "$check_address$"
322 vars.ssl_cert_valid_days_warn = false
323 vars.ssl_cert_valid_days_critical = false
327 object CheckCommand "udp" {
328 import "ipv4-or-ipv6"
331 PluginDir + "/check_udp",
332 "-H", "$udp_address$",
340 description = "String to send to the server"
343 value = "$udp_expect$"
345 description = " String to expect in server response"
349 description = "String to send server to initiate a clean close of the connection"
352 set_if = "$udp_ipv4$"
353 description = "Use IPv4 connection"
356 set_if = "$udp_ipv6$"
357 description = "Use IPv6 connection"
361 vars.udp_address = "$check_address$"
362 vars.check_ipv4 = "$udp_ipv4$"
363 vars.check_ipv6 = "$udp_ipv6$"
366 object CheckCommand "http" {
367 import "ipv4-or-ipv6"
369 command = [ PluginDir + "/check_http" ]
373 value = "$http_vhost$"
374 description = "Host name argument for servers using host headers (virtual host)"
377 value = "$http_address$"
378 description = "IP address or name (use numeric address if possible to bypass DNS lookup)"
382 description = "URL to GET or POST (default: /)"
385 value = "$http_port$"
386 description = "Port number (default: 80)"
389 set_if = "$http_ssl$"
390 description = "Connect via SSL"
393 set_if = "$http_ssl_force_tlsv1$"
394 description = "Connect via SSL version TLSv1"
397 set_if = "$http_ssl_force_tlsv1_1$"
398 description = "Connect via SSL version TLSv1.1"
401 set_if = "$http_ssl_force_tlsv1_2$"
402 description = "Connect via SSL version TLSv1.2"
405 set_if = "$http_ssl_force_sslv2$"
406 description = "Connect via SSL version SSLv2"
409 set_if = "$http_ssl_force_sslv3$"
410 description = "Connect via SSL version SSLv3"
413 set_if = "$http_ssl_force_tlsv1_or_higher$"
414 description = "Connect via SSL version TLSv1 and newer"
417 set_if = "$http_ssl_force_tlsv1_1_or_higher$"
418 description = "Connect via SSL version TLSv1.1 and newer"
421 set_if = "$http_ssl_force_tlsv1_2_or_higher$"
422 description = "Connect via SSL version TLSv1.2 and newer"
425 set_if = "$http_ssl_force_sslv2_or_higher$"
426 description = "Connect via SSL version SSLv2 and newer"
429 set_if = "$http_ssl_force_sslv3_or_higher$"
430 description = "Connect via SSL version SSLv3 and newer"
433 set_if = "$http_sni$"
434 description = "Enable SSL/TLS hostname extension support (SNI)"
437 value = "$http_certificate$"
438 description = "Minimum number of days a certificate has to be valid. This parameter explicitely sets the port to 443 and ignores the URL if passed."
441 value = "$http_clientcert$"
442 description = "Name of file contains the client certificate (PEM format)"
445 value = "$http_privatekey$"
446 description = "Name of file contains the private key (PEM format)"
449 value = "$http_auth_pair$"
450 description = "Username:password on sites with basic authentication"
453 set_if = "$http_ignore_body$"
454 description = "Don't wait for document body: stop reading after headers"
457 value = "$http_warn_time$"
458 description = "Response time to result in warning status (seconds)"
461 value = "$http_critical_time$"
462 description = "Response time to result in critical status (seconds)"
465 value = "$http_expect$"
466 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.)"
469 value = "$http_headerstring$"
470 description = "String to expect in the response headers"
473 value = "$http_string$"
474 description = "String to expect in the content"
477 value = "$http_post$"
478 description = "URL encoded http POST data"
481 value = "$http_method$"
482 description = "Set http method (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"
485 value = "$http_maxage$"
486 description = "Warn if document is more than seconds old"
489 value = "$http_contenttype$"
490 description = "Specify Content-Type header when POSTing"
493 set_if = "$http_linespan$"
494 description = "Allow regex to span newline"
498 value = "$http_expect_body_regex$"
499 description = "Search page for regex"
503 value = "$http_expect_body_eregi$"
504 description = "Search page for case-insensitive regex"
508 set_if = "$http_invertregex$"
509 description = "Return CRITICAL if found, OK if not"
512 value = "$http_proxy_auth_pair$"
513 description = "Username:password on proxy-servers with basic authentication"
516 value = "$http_useragent$"
517 description = "String to be sent in http header as User Agent"
520 value = "$http_header$"
521 description = "Any other tags to be sent in http header"
524 set_if = "$http_extendedperfdata$"
525 description = "Print additional perfdata"
528 value = "$http_onredirect$"
529 description = "How to handle redirect pages"
532 value = "$http_pagesize$"
533 description = "Minim page size required:Maximum page size required"
536 value = "$http_timeout$"
537 description = "Seconds before connection times out"
540 set_if = "$http_ipv4$"
541 description = "Use IPv4 connection"
544 set_if = "$http_ipv6$"
545 description = "Use IPv6 connection"
548 set_if = "$http_link$"
549 description = "Wrap output in HTML link"
552 set_if = "$http_verbose$"
553 description = "Show details for command-line debugging"
557 vars.http_address = "$check_address$"
558 vars.http_ssl = false
559 vars.http_sni = false
560 vars.http_linespan = false
561 vars.http_invertregex = false
562 vars.check_ipv4 = "$http_ipv4$"
563 vars.check_ipv6 = "$http_ipv6$"
564 vars.http_link = false
565 vars.http_verbose = false
568 object CheckCommand "ftp" {
569 import "ipv4-or-ipv6"
571 command = [ PluginDir + "/check_ftp" ]
575 value = "$ftp_address$"
576 description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set."
580 description = "The FTP port number. Defaults to none"
583 value = "$ftp_expect$"
584 description = "String to expect in server response (may be repeated)."
588 description = "All expect strings need to occur in server response. Default is any."
593 set_if = "$ftp_escape_send$"
594 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
599 description = "String to send to the server."
604 set_if = "$ftp_escape_quit$"
605 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
610 description = "String to send server to initiate a clean close of the connection."
613 value = "$ftp_refuse$"
614 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
617 value = "$ftp_mismatch$"
618 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
621 set_if = "$ftp_jail$"
622 description = "Hide output from TCP socket."
625 value = "$ftp_maxbytes$"
626 description = "Close connection once more than this number of bytes are received."
629 value = "$ftp_delay$"
630 description = "Seconds to wait between sending string and polling for response."
633 value = "$ftp_certificate$"
634 description = "Minimum number of days a certificate has to be valid. 1st value is number of days for warning, 2nd is critical (if not specified: 0) - seperated by comma."
638 description = "Use SSL for the connection."
641 value = "$ftp_wtime$"
642 description = "Response time to result in warning status (seconds)."
645 value = "$ftp_ctime$"
646 description = "Response time to result in critical status (seconds)."
649 value = "$ftp_timeout$"
650 description = "Seconds before connection times out. Defaults to 10."
653 set_if = "$ftp_ipv4$"
654 description = "Use IPv4 connection"
657 set_if = "$ftp_ipv6$"
658 description = "Use IPv6 connection"
662 vars.ftp_address = "$check_address$"
664 vars.ftp_refuse = "crit"
665 vars.ftp_mismatch = "warn"
666 vars.ftp_timeout = 10
667 vars.check_ipv4 = "$ftp_ipv4$"
668 vars.check_ipv6 = "$ftp_ipv6$"
671 object CheckCommand "smtp" {
672 import "ipv4-or-ipv6"
674 command = [ PluginDir + "/check_smtp" ]
678 value = "$smtp_address$"
679 description = "Host name, IP Address, or unix socket (must be an absolute path)"
682 value = "$smtp_port$"
683 description = "Port number (default: 25)"
686 value = "$smtp_mail_from$"
687 description = "FROM-address to include in MAIL command, required by Exchange 2000"
690 value = "$smtp_expect$"
691 description = "String to expect in first line of server response (default: '220')"
694 value = "$smtp_command$"
695 description = "SMTP command"
698 value = "$smtp_response$"
699 description = "Expected response to command (may be used repeatedly)"
702 value = "$smtp_helo_fqdn$"
703 description = "FQDN used for HELO"
706 value = "$smtp_certificate_age$"
707 description = "Minimum number of days a certificate has to be valid"
710 set_if = "$smtp_starttls$"
711 description = "Use STARTTLS for the connection."
714 value = "$smtp_authtype$"
715 description = "SMTP AUTH type to check (default none, only LOGIN supported)"
718 value = "$smtp_authuser$"
719 description = "SMTP AUTH username"
722 value = "$smtp_authpass$"
723 description = "SMTP AUTH password"
726 value = "$smtp_ignore_quit$"
727 description = "Ignore failure when sending QUIT command to server"
730 value = "$smtp_warning$"
731 description = "Response time to result in warning status (seconds)"
734 value = "$smtp_critical$"
735 description = "Response time to result in critical status (seconds)"
738 value = "$smtp_timeout$"
739 description = "Seconds before connection times out (default: 10)"
742 set_if = "$smtp_ipv4$"
743 description = "Use IPv4 connection"
746 set_if = "$smtp_ipv6$"
747 description = "Use IPv6 connection"
751 vars.smtp_address = "$check_address$"
752 vars.check_ipv4 = "$smtp_ipv4$"
753 vars.check_ipv6 = "$smtp_ipv6$"
756 object CheckCommand "ssmtp" {
757 import "ipv4-or-ipv6"
759 command = [ PluginDir + "/check_ssmtp" ]
763 value = "$ssmtp_address$"
764 description = "Host name, IP Address, or unix socket (must be an absolute path)"
767 value = "$ssmtp_port$"
768 description = "Port number (default: none)"
771 value = "$ssmtp_escape$"
772 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"
775 value = "$ssmtp_send$"
776 description = "String to send to the server"
779 value = "$ssmtp_expect$"
780 description = "String to expect in server response (may be repeated)"
783 set_if = "$ssmtp_all$"
784 description = "All expect strings need to occur in server response. Default is any."
787 value = "$ssmtp_quit$"
788 description = "String to send server to initiate a clean close of the connection"
791 value = "$ssmtp_refuse$"
792 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
795 value = "$ssmtp_mismatch$"
796 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
799 set_if = "$ssmtp_jail$"
800 description = "Hide output from TCP socket."
803 value = "$ssmtp_maxbytes$"
804 description = "Close connection once more than this number of bytes are received"
807 value = "$ssmtp_delay$"
808 description = "Seconds to wait between sending string and polling for response"
811 value = "$ssmtp_certificate_age$"
812 description = "Minimum number of days a certificate has to be valid"
815 set_if = "$ssmtp_ssl$"
816 description = "Use SSL for the connection."
819 value = "$ssmtp_warning$"
820 description = "Response time to result in warning status (seconds)"
823 value = "$ssmtp_critical$"
824 description = "Response time to result in critical status (seconds)"
827 value = "$ssmtp_timeout$"
828 description = "Seconds before connection times out (default: 10)"
831 set_if = "$ssmtp_ipv4$"
832 description = "Use IPv4 connection"
835 set_if = "$ssmtp_ipv6$"
836 description = "Use IPv6 connection"
840 vars.ssmtp_address = "$check_address$"
841 vars.check_ipv4 = "$ssmtp_ipv4$"
842 vars.check_ipv6 = "$ssmtp_ipv6$"
845 object CheckCommand "imap" {
846 import "ipv4-or-ipv6"
848 command = [ PluginDir + "/check_imap" ]
852 value = "$imap_address$"
853 description = "Host name, IP Address, or unix socket (must be an absolute path)"
856 value = "$imap_port$"
857 description = "Port number (default: none)"
860 value = "$imap_escape$"
861 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"
864 value = "$imap_send$"
865 description = "String to send to the server"
868 value = "$imap_expect$"
869 description = "String to expect in server response (may be repeated)"
872 set_if = "$imap_all$"
873 description = "All expect strings need to occur in server response. Default is any."
876 value = "$imap_quit$"
877 description = "String to send server to initiate a clean close of the connection"
880 value = "$imap_refuse$"
881 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
884 value = "$imap_mismatch$"
885 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
888 set_if = "$imap_jail$"
889 description = "Hide output from TCP socket."
892 value = "$imap_maxbytes$"
893 description = "Close connection once more than this number of bytes are received"
896 value = "$imap_delay$"
897 description = "Seconds to wait between sending string and polling for response"
900 value = "$imap_certificate_age$"
901 description = "Minimum number of days a certificate has to be valid"
904 set_if = "$imap_ssl$"
905 description = "Use SSL for the connection."
908 value = "$imap_warning$"
909 description = "Response time to result in warning status (seconds)"
912 value = "$imap_critical$"
913 description = "Response time to result in critical status (seconds)"
916 value = "$imap_timeout$"
917 description = "Seconds before connection times out (default: 10)"
920 set_if = "$imap_ipv4$"
921 description = "Use IPv4 connection"
924 set_if = "$imap_ipv6$"
925 description = "Use IPv6 connection"
929 vars.imap_address = "$check_address$"
930 vars.check_ipv4 = "$imap_ipv4$"
931 vars.check_ipv6 = "$imap_ipv6$"
934 object CheckCommand "simap" {
935 import "ipv4-or-ipv6"
937 command = [ PluginDir + "/check_simap" ]
941 value = "$simap_address$"
942 description = "Host name, IP Address, or unix socket (must be an absolute path)"
945 value = "$simap_port$"
946 description = "Port number (default: none)"
949 value = "$simap_escape$"
950 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"
953 value = "$simap_send$"
954 description = "String to send to the server"
957 value = "$simap_expect$"
958 description = "String to expect in server response (may be repeated)"
961 set_if = "$simap_all$"
962 description = "All expect strings need to occur in server response. Default is any."
965 value = "$simap_quit$"
966 description = "String to send server to initiate a clean close of the connection"
969 value = "$simap_refuse$"
970 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
973 value = "$simap_mismatch$"
974 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
977 set_if = "$simap_jail$"
978 description = "Hide output from TCP socket."
981 value = "$simap_maxbytes$"
982 description = "Close connection once more than this number of bytes are received"
985 value = "$simap_delay$"
986 description = "Seconds to wait between sending string and polling for response"
989 value = "$simap_certificate_age$"
990 description = "Minimum number of days a certificate has to be valid"
993 set_if = "$simap_ssl$"
994 description = "Use SSL for the connection."
997 value = "$simap_warning$"
998 description = "Response time to result in warning status (seconds)"
1001 value = "$simap_critical$"
1002 description = "Response time to result in critical status (seconds)"
1005 value = "$simap_timeout$"
1006 description = "Seconds before connection times out (default: 10)"
1009 set_if = "$simap_ipv4$"
1010 description = "Use IPv4 connection"
1013 set_if = "$simap_ipv6$"
1014 description = "Use IPv6 connection"
1018 vars.simap_address = "$check_address$"
1019 vars.check_ipv4 = "$simap_ipv4$"
1020 vars.check_ipv6 = "$simap_ipv6$"
1023 object CheckCommand "pop" {
1024 import "ipv4-or-ipv6"
1026 command = [ PluginDir + "/check_pop" ]
1030 value = "$pop_address$"
1031 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1034 value = "$pop_port$"
1035 description = "Port number (default: none)"
1038 value = "$pop_escape$"
1039 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"
1042 value = "$pop_send$"
1043 description = "String to send to the server"
1046 value = "$pop_expect$"
1047 description = "String to expect in server response (may be repeated)"
1050 set_if = "$pop_all$"
1051 description = "All expect strings need to occur in server response. Default is any."
1054 value = "$pop_quit$"
1055 description = "String to send server to initiate a clean close of the connection"
1058 value = "$pop_refuse$"
1059 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1062 value = "$pop_mismatch$"
1063 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1066 set_if = "$pop_jail$"
1067 description = "Hide output from TCP socket."
1070 value = "$pop_maxbytes$"
1071 description = "Close connection once more than this number of bytes are received"
1074 value = "$pop_delay$"
1075 description = "Seconds to wait between sending string and polling for response"
1078 value = "$pop_certificate_age$"
1079 description = "Minimum number of days a certificate has to be valid"
1082 set_if = "$pop_ssl$"
1083 description = "Use SSL for the connection."
1086 value = "$pop_warning$"
1087 description = "Response time to result in warning status (seconds)"
1090 value = "$pop_critical$"
1091 description = "Response time to result in critical status (seconds)"
1094 value = "$pop_timeout$"
1095 description = "Seconds before connection times out (default: 10)"
1098 set_if = "$pop_ipv4$"
1099 description = "Use IPv4 connection"
1102 set_if = "$pop_ipv6$"
1103 description = "Use IPv6 connection"
1107 vars.pop_address = "$check_address$"
1108 vars.check_ipv4 = "$pop_ipv4$"
1109 vars.check_ipv6 = "$pop_ipv6$"
1112 object CheckCommand "spop" {
1113 import "ipv4-or-ipv6"
1115 command = [ PluginDir + "/check_spop" ]
1119 value = "$spop_address$"
1120 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1123 value = "$spop_port$"
1124 description = "Port number (default: none)"
1127 value = "$spop_escape$"
1128 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"
1131 value = "$spop_send$"
1132 description = "String to send to the server"
1135 value = "$spop_expect$"
1136 description = "String to expect in server response (may be repeated)"
1139 set_if = "$spop_all$"
1140 description = "All expect strings need to occur in server response. Default is any."
1143 value = "$spop_quit$"
1144 description = "String to send server to initiate a clean close of the connection"
1147 value = "$spop_refuse$"
1148 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1151 value = "$spop_mismatch$"
1152 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1155 set_if = "$spop_jail$"
1156 description = "Hide output from TCP socket."
1159 value = "$spop_maxbytes$"
1160 description = "Close connection once more than this number of bytes are received"
1163 value = "$spop_delay$"
1164 description = "Seconds to wait between sending string and polling for response"
1167 value = "$spop_certificate_age$"
1168 description = "Minimum number of days a certificate has to be valid"
1171 set_if = "$spop_ssl$"
1172 description = "Use SSL for the connection."
1175 value = "$spop_warning$"
1176 description = "Response time to result in warning status (seconds)"
1179 value = "$spop_critical$"
1180 description = "Response time to result in critical status (seconds)"
1183 value = "$spop_timeout$"
1184 description = "Seconds before connection times out (default: 10)"
1187 set_if = "$spop_ipv4$"
1188 description = "Use IPv4 connection"
1191 set_if = "$spop_ipv6$"
1192 description = "Use IPv6 connection"
1196 vars.spop_address = "$check_address$"
1197 vars.check_ipv4 = "$spop_ipv4$"
1198 vars.check_ipv6 = "$spop_ipv6$"
1201 object CheckCommand "ntp_time" {
1202 import "ipv4-or-ipv6"
1204 command = [ PluginDir + "/check_ntp_time" ]
1208 value = "$ntp_address$"
1209 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1212 value = "$ntp_port$"
1213 description = "Port number (default: 123)"
1216 set_if = "$ntp_quiet$"
1217 description = "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
1220 value = "$ntp_warning$"
1221 description = "Offset to result in warning status (seconds)"
1224 value = "$ntp_critical$"
1225 description = "Offset to result in critical status (seconds)"
1228 value = "$ntp_timeoffset$"
1229 description = "Expected offset of the ntp server relative to local server (seconds)"
1232 value = "$ntp_timeout$"
1233 description = "Seconds before connection times out (default: 10)"
1236 set_if = "$ntp_ipv4$"
1237 description = "Use IPv4 connection"
1240 set_if = "$ntp_ipv6$"
1241 description = "Use IPv6 connection"
1245 vars.ntp_address = "$check_address$"
1246 vars.check_ipv4 = "$ntp_ipv4$"
1247 vars.check_ipv6 = "$ntp_ipv6$"
1250 object CheckCommand "ntp_peer" {
1251 import "ipv4-or-ipv6"
1253 command = [ PluginDir + "/check_ntp_peer" ]
1257 value = "$ntp_address$"
1258 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1261 value = "$ntp_port$"
1262 description = "Port number (default: 123)"
1265 set_if = "$ntp_quiet$"
1266 description = "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
1269 value = "$ntp_warning$"
1270 description = "Offset to result in warning status (seconds)"
1273 value = "$ntp_critical$"
1274 description = "Offset to result in critical status (seconds)"
1277 value = "$ntp_wstratum$"
1278 description = "Warning threshold for stratum of server's synchronization peer"
1281 value = "$ntp_cstratum$"
1282 description = "Critical threshold for stratum of server's synchronization peer"
1285 value = "$ntp_wjitter$"
1286 description = "Warning threshold for jitter"
1289 value = "$ntp_cjitter$"
1290 description = "Critical threshold for jitter"
1293 value = "$ntp_wsource$"
1294 description = "Warning threshold for number of usable time sources (truechimers)"
1297 value = "$ntp_csource$"
1298 description = "Critical threshold for number of usable time sources (truechimers)"
1301 value = "$ntp_timeout$"
1302 description = "Seconds before connection times out (default: 10)"
1305 set_if = "$ntp_ipv4$"
1306 description = "Use IPv4 connection"
1309 set_if = "$ntp_ipv6$"
1310 description = "Use IPv6 connection"
1314 vars.ntp_address = "$check_address$"
1315 vars.check_ipv4 = "$ntp_ipv4$"
1316 vars.check_ipv6 = "$ntp_ipv6$"
1319 object CheckCommand "ssh" {
1320 import "ipv4-or-ipv6"
1322 command = [ PluginDir + "/check_ssh" ]
1326 value = "$ssh_port$"
1327 description = "Port number (default: 22)"
1330 value = "$ssh_timeout$"
1331 description = "Seconds before connection times out (default: 10)"
1334 value = "$ssh_address$"
1339 set_if = "$ssh_ipv4$"
1340 description = "Use IPv4 connection"
1343 set_if = "$ssh_ipv6$"
1344 description = "Use IPv6 connection"
1348 vars.ssh_address = "$check_address$"
1349 vars.check_ipv4 = "$ssh_ipv4$"
1350 vars.check_ipv6 = "$ssh_ipv6$"
1353 object CheckCommand "disk" {
1354 command = [ PluginDir + "/check_disk" ]
1358 value = "$disk_wfree$"
1359 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"
1364 value = "$disk_cfree$"
1365 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"
1370 value = "$disk_inode_wfree$"
1371 description = "Exit with WARNING status if less than PERCENT of inode space is free"
1375 value = "$disk_inode_cfree$"
1376 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
1380 value = "$disk_partitions$"
1381 description = "Path or partition (may be repeated)"
1387 value = "$disk_partition$"
1391 value = "$disk_partitions_excluded$"
1392 description = "Ignore device (only works if -p unspecified)"
1396 value = "$disk_partition_excluded$"
1399 set_if = "$disk_clear$"
1400 description = "Clear thresholds"
1403 set_if = "$disk_exact_match$"
1404 description = "For paths or partitions specified with -p, only check for exact paths"
1407 set_if = "$disk_errors_only$"
1408 description = "Display only devices/mountpoints with errors"
1411 set_if = "$disk_ignore_reserved$"
1412 description = "Don't account root-reserved blocks into freespace in perfdata"
1415 value = "$disk_group$"
1416 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
1419 set_if = "$disk_kilobytes$"
1420 description = "Same as --units kB"
1423 set_if = "$disk_local$"
1424 description = " Only check local filesystems"
1427 set_if = "$disk_stat_remote_fs$"
1428 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)"
1431 set_if = "$disk_mountpoint$"
1432 description = "Display the mountpoint instead of the partition"
1435 set_if = "$disk_megabytes$"
1436 description = "Same as --units MB"
1439 set_if = "$disk_all$"
1440 description = "Explicitly select all paths. This is equivalent to -R .*"
1444 value = "$disk_eregi_path$"
1445 description = "Case insensitive regular expression for path/partition (may be repeated)"
1449 value = "$disk_ereg_path$"
1450 description = "Regular expression for path or partition (may be repeated)"
1454 value = "$disk_ignore_eregi_path$"
1455 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
1460 value = "$disk_ignore_ereg_path$"
1461 description = "Regular expression to ignore selected path or partition (may be repeated)"
1466 value = "$disk_timeout$"
1467 description = "Seconds before connection times out (default: 10)"
1470 value = "$disk_units$"
1471 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
1474 value = "$disk_exclude_type$"
1475 description = "Ignore all filesystems of indicated type (may be repeated)"
1480 vars.disk_wfree = "20%"
1481 vars.disk_cfree = "10%"
1482 vars.disk_megabytes = true
1483 vars.disk_exclude_type = [ "none", "tmpfs", "sysfs", "proc", "configfs", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fdescfs" ]
1486 object CheckCommand "disk_smb" {
1487 command = [ PluginDir + "/check_disk_smb" ]
1491 value = "$disk_smb_hostname$"
1492 description = "NetBIOS name of the server."
1495 value = "$disk_smb_share$"
1496 description = "Share name to be tested."
1499 value = "$disk_smb_workgroup$"
1500 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1503 value = "$disk_smb_address$"
1504 description = "IP-address of HOST (only necessary if HOST is in another network)."
1507 value = "$disk_smb_username$"
1508 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1511 value = "$disk_smb_password$"
1512 description = "Password to log in to server. (Defaults to an empty password if omitted)."
1515 value = "$disk_smb_wused$"
1516 description = "Percent of used space at which a warning will be generated (Default: 85%)."
1519 value = "$disk_smb_cused$"
1520 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1523 value = "$disk_smb_port$"
1524 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1528 vars.disk_smb_wused = "85%"
1529 vars.disk_smb_cused = "95%"
1532 object CheckCommand "users" {
1533 command = [ PluginDir + "/check_users" ]
1537 value = "$users_wgreater$"
1538 description = "Set WARNING status if more than INTEGER users are logged in"
1541 value = "$users_cgreater$"
1542 description = "Set CRITICAL status if more than INTEGER users are logged in"
1546 vars.users_wgreater = 20
1547 vars.users_cgreater = 50
1550 object CheckCommand "procs" {
1551 command = [ PluginDir + "/check_procs" ]
1555 value = "$procs_warning$"
1556 description = "Generate warning state if metric is outside this range"
1559 value = "$procs_critical$"
1560 description = "Generate critical state if metric is outside this range"
1563 value = "$procs_metric$"
1564 description = "Check thresholds against metric"
1567 value = "$procs_timeout$"
1568 description = "Seconds before plugin times out"
1571 set_if = "$procs_traditional$"
1572 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1575 value = "$procs_state$"
1576 description = "Only scan for processes that have one or more of the status flags you specify"
1579 value = "$procs_ppid$"
1580 description = "Only scan for children of the parent process ID indicated"
1583 value = "$procs_vsz$"
1584 description = "Only scan for processes with VSZ higher than indicated"
1587 value = "$procs_rss$"
1588 description = "Only scan for processes with RSS higher than indicated"
1591 value = "$procs_pcpu$"
1592 description = "Only scan for processes with PCPU higher than indicated"
1595 value = "$procs_user$"
1596 description = "Only scan for processes with user name or ID indicated"
1599 value = "$procs_argument$"
1600 description = "Only scan for processes with args that contain STRING"
1602 "--ereg-argument-array" = {
1603 value = "$procs_argument_regex$"
1604 description = "Only scan for processes with args that contain the regex STRING"
1607 value = "$procs_command$"
1608 description = "Only scan for exact matches of COMMAND (without path)"
1611 set_if = "$procs_nokthreads$"
1612 description = "Only scan for non kernel threads"
1616 vars.procs_traditional = false
1617 vars.procs_nokthreads = false
1618 vars.procs_warning = 250
1619 vars.procs_critical = 400
1622 object CheckCommand "swap" {
1623 command = [ PluginDir + "/check_swap" ]
1627 if (macro("$swap_integer$")) {
1628 return macro("$swap_wfree$")
1630 return macro("$swap_wfree$%")
1634 if (macro("$swap_integer$")) {
1635 return macro("$swap_cfree$")
1637 return macro("$swap_cfree$%")
1641 set_if = "$swap_allswaps$"
1642 description = "Conduct comparisons for all swap partitions, one by one"
1645 value = "$swap_noswap$"
1646 description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1650 vars.swap_wfree = 50
1651 vars.swap_cfree = 25
1652 vars.swap_integer = false
1653 vars.swap_allswaps = false
1656 object CheckCommand "load" {
1657 command = [ PluginDir + "/check_load" ]
1661 value = "$load_wload1$,$load_wload5$,$load_wload15$"
1662 description = "Exit with WARNING status if load average exceeds WLOADn"
1665 value = "$load_cload1$,$load_cload5$,$load_cload15$"
1666 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1669 set_if = "$load_percpu$"
1670 description = "Divide the load averages by the number of CPUs (when possible)"
1674 vars.load_wload1 = 5.0
1675 vars.load_wload5 = 4.0
1676 vars.load_wload15 = 3.0
1678 vars.load_cload1 = 10.0
1679 vars.load_cload5 = 6.0
1680 vars.load_cload15 = 4.0
1682 vars.load_percpu = false
1685 object CheckCommand "snmp" {
1686 command = [ PluginDir + "/check_snmp" ]
1690 value = "$snmp_address$"
1691 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1694 value = "$snmp_oid$"
1695 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1698 value = "$snmp_community$"
1699 description = "Optional community string for SNMP communication (default is 'public')"
1702 value = "$snmp_crit$"
1703 description = "Critical threshold range(s)"
1706 value = "$snmp_warn$"
1707 description = "Warning threshold range(s)"
1710 value = "$snmp_string$"
1711 description = "Return OK state (for that OID) if STRING is an exact match"
1714 value = "$snmp_ereg$"
1715 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1718 value = "$snmp_eregi$"
1719 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1722 value = "$snmp_label$"
1723 description = "Prefix label for output from plugin"
1726 value = "$snmp_units$"
1727 description = "Units label(s) for output data (e.g., 'sec.')"
1730 value = "$snmp_timeout$"
1731 description = "Seconds before connection times out (default: 10)"
1734 value = "$snmp_port$"
1735 description = "Port number (default: 161)"
1738 value = "$snmp_retries$"
1739 description = "Number of retries to be used in the requests"
1741 "--invert-search" = {
1742 set_if = "$snmp_invert_search$"
1743 description = "Invert search result and return CRITICAL if found"
1746 value = "$snmp_version$"
1747 description = "SNMP protocol version"
1750 value = "$snmp_miblist$"
1751 description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1753 "--rate-multiplier" = {
1754 value = "$snmp_rate_multiplier$"
1755 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1758 set_if = "$snmp_rate$"
1759 description = "Enable rate calculation"
1762 set_if = "$snmp_getnext$"
1763 description = "Use SNMP GETNEXT instead of SNMP GET"
1766 value = "$snmp_offset$"
1767 description = "Add/substract the specified OFFSET to numeric sensor data"
1770 value = "$snmp_output_delimiter$"
1771 description = "Separates output on multiple OID requests"
1774 set_if = "$snmp_perf_oids$"
1775 description = "Label performance data with OIDs instead of --label's"
1779 vars.snmp_address = {{
1780 var addr_v4 = macro("$address$")
1781 var addr_v6 = macro("$address6$")
1786 return "udp6:[" + addr_v6 + "]"
1790 vars.snmp_community = "public"
1791 vars.snmp_invert_search = false
1792 vars.snmp_timeout = "10"
1795 object CheckCommand "snmpv3" {
1796 import "ipv4-or-ipv6"
1798 command = [ PluginDir + "/check_snmp" ]
1802 value = "$snmpv3_address$"
1803 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1806 value = "$snmpv3_port$"
1807 description = "Port number"
1810 set_if = "$snmpv3_getnext$"
1811 description = "Use SNMP GETNEXT instead of SNMP GET"
1815 description = "SNMP protocol version"
1818 value = "$snmpv3_seclevel$"
1819 description = "SNMPv3 securityLevel"
1822 value = "$snmpv3_auth_alg$"
1823 description = "SNMPv3 auth proto"
1826 value = "$snmpv3_user$"
1827 description = "SNMPv3 username"
1830 value = "$snmpv3_auth_key$"
1831 description = "SNMPv3 authentication password"
1834 value = "$snmpv3_priv_key$"
1835 description = "SNMPv3 privacy password"
1838 value = "$snmpv3_oid$"
1839 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1842 value = "$snmpv3_priv_alg$"
1843 description = "SNMPv3 priv proto (default DES)"
1846 value = "$snmpv3_warn$"
1847 description = "Warning threshold range(s)"
1850 value = "$snmpv3_crit$"
1851 description = "Critical threshold range(s)"
1854 value = "$snmpv3_string$"
1855 description = "Return OK state (for that OID) if STRING is an exact match"
1858 value = "$snmpv3_ereg$"
1859 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1862 value = "$snmpv3_eregi$"
1863 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1865 "--invert-search" = {
1866 set_if = "$snmpv3_invert_search$"
1867 description = "Invert search result and return CRITICAL if found"
1870 value = "$snmpv3_label$"
1871 description = "Prefix label for output from plugin"
1874 value = "$snmpv3_miblist$"
1875 description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1878 value = "$snmpv3_units$"
1879 description = "Units label(s) for output data (e.g., 'sec.')"
1881 "--rate-multiplier" = {
1882 value = "$snmpv3_rate_multiplier$"
1883 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1886 set_if = "$snmpv3_rate$"
1887 description = "Enable rate calculation"
1890 value = "$snmpv3_timeout$"
1891 description = "Seconds before connection times out (default: 10)"
1895 vars.snmpv3_address = "$check_address$"
1896 vars.snmpv3_auth_alg = "SHA"
1897 vars.snmpv3_priv_alg = "AES"
1898 vars.snmpv3_seclevel = "authPriv"
1899 vars.snmpv3_timeout = "10"
1902 object CheckCommand "snmp-uptime" {
1905 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1908 object CheckCommand "apt" {
1909 command = [ PluginDir + "/check_apt" ]
1913 value = "$apt_extra_opts$"
1914 description = "Read options from an ini file."
1917 value = "$apt_upgrade$"
1918 description = "[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."
1920 "--dist-upgrade" = {
1921 value = "$apt_dist_upgrade$"
1922 description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1925 value = "$apt_include$"
1926 description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1929 value = "$apt_exclude$"
1930 description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1933 value = "$apt_critical$"
1934 description = "If the full package information of any of the upgradable packages match this REGEXP, the plugin will return CRITICAL status. Can be specified multiple times."
1937 value = "$apt_timeout$"
1938 description = "Seconds before plugin times out (default: 10)."
1940 "--only-critical" = {
1941 set_if = "$apt_only_critical$"
1942 description = "Only warn about critical upgrades."
1949 object CheckCommand "dhcp" {
1950 command = [ PluginDir + "/check_dhcp" ]
1954 value = "$dhcp_serverip$"
1955 description = "IP address of DHCP server that we must hear from"
1958 value = "$dhcp_requestedip$"
1959 description = "IP address that should be offered by at least one DHCP server"
1962 value = "$dhcp_timeout$"
1963 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1966 value = "$dhcp_interface$"
1967 description = "Interface to to use for listening (i.e. eth0)"
1970 value = "$dhcp_mac$"
1971 description = "MAC address to use in the DHCP request"
1974 set_if = "$dhcp_unicast$"
1975 description = "Unicast testing: mimic a DHCP relay"
1979 vars.dhcp_unicast = false
1982 object CheckCommand "dns" {
1983 import "ipv4-or-ipv6"
1985 command = [ PluginDir + "/check_dns" ]
1989 value = "$dns_lookup$"
1990 description = "The name or address you want to query."
1993 value = "$dns_server$"
1994 description = "Optional DNS server you want to use for the lookup."
1997 value = "$dns_query_type$"
1998 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2001 value = "$dns_expected_answers$"
2002 description = "Optional ip address or host you expect the DNS server to return. Host must end with a dot (.). This option can be repeated multiple times (Returns OK if any value match). If multiple addresses are returned at once, you have to match the whole string of addresses separated with commas (sorted alphabetically)."
2005 set_if = "$dns_authoritative$"
2006 description = "Optionally expect the DNS server to be authoritative for the lookup"
2009 set_if = "$dns_accept_cname$"
2010 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2013 value = "$dns_wtime$"
2014 description = "Return warning if elapsed time exceeds value."
2017 value = "$dns_ctime$"
2018 description = "Return critical if elapsed time exceeds value."
2021 value = "$dns_timeout$"
2022 description = "Seconds before connection times out. Defaults to 10."
2026 vars.dns_lookup = "$host.name$"
2027 vars.dns_timeout = 10
2030 object CheckCommand "dig" {
2031 import "ipv4-or-ipv6"
2033 command = [ PluginDir + "/check_dig" ]
2037 value = "$dig_server$"
2038 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2041 value = "$dig_port$"
2042 description = "Port number (default: 53)"
2045 value = "$dig_lookup$"
2047 description = "Machine name to lookup"
2050 value = "$dig_record_type$"
2051 description = "Record type to lookup (default: A)"
2054 value = "$dig_expected_address$"
2055 description = "An address expected to be in the answer section"
2058 value = "$dig_arguments$"
2059 description = "Pass STRING as argument(s) to dig"
2062 value = "$dig_warning$"
2063 description = "Response time to result in warning status (seconds)"
2066 value = "$dig_critical$"
2067 description = "Response time to result in critical status (seconds)"
2070 value = "$dig_timeout$"
2071 description = "Seconds before connection times out (default: 10)"
2074 set_if = "$dig_ipv4$"
2075 description = "Force dig to only use IPv4 query transport"
2078 set_if = "$dig_ipv6$"
2079 description = "Force dig to only use IPv6 query transport"
2083 vars.dig_server = "$check_address$"
2084 vars.check_ipv4 = "$dig_ipv4$"
2085 vars.check_ipv6 = "$dig_ipv6$"
2088 object CheckCommand "nscp" {
2089 import "ipv4-or-ipv6"
2091 command = [ PluginDir + "/check_nt" ]
2095 value = "$nscp_address$"
2096 description = "Name of the host to check"
2099 value = "$nscp_port$"
2100 description = "Optional port number (default: 1248)"
2103 value = "$nscp_password$"
2104 description = "Password needed for the request"
2107 value = "$nscp_variable$"
2109 description = "Variable to check"
2112 value = "$nscp_params$"
2116 value = "$nscp_warn$"
2117 description = "Threshold which will result in a warning status"
2120 value = "$nscp_crit$"
2121 description = "Threshold which will result in a critical status"
2124 value = "$nscp_timeout$"
2125 description = "Seconds before connection attempt times out"
2129 set_if = "$nscp_showall$"
2130 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2134 vars.nscp_address = "$check_address$"
2135 vars.nscp_port = 12489
2136 vars.nscp_showall = false
2139 object CheckCommand "by_ssh" {
2140 import "ipv4-or-ipv6"
2142 command = [ PluginDir + "/check_by_ssh" ]
2146 value = "$by_ssh_address$"
2147 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2150 value = "$by_ssh_port$"
2151 description = "Port number (default: none)"
2154 var command = macro("$by_ssh_command$")
2155 var arguments = macro("$by_ssh_arguments$")
2157 if (typeof(command) == String && !arguments) {
2161 var escaped_args = []
2162 for (arg in resolve_arguments(command, arguments)) {
2163 escaped_args.add(escape_shell_arg(arg))
2165 return escaped_args.join(" ")
2168 value = "$by_ssh_logname$"
2169 description = "SSH user name on remote host [optional]"
2172 value = "$by_ssh_identity$"
2173 description = "identity of an authorized key [optional]"
2176 set_if = "$by_ssh_quiet$"
2177 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2180 value = "$by_ssh_warn$"
2181 description = "Response time to result in warning status (seconds)"
2184 value = "$by_ssh_crit$"
2185 description = "Response time to result in critical status (seconds)"
2188 value = "$by_ssh_timeout$"
2189 description = "Seconds before connection times out (default: 10)"
2192 value = "$by_ssh_options$"
2193 description = "Provide ssh options (may be repeated)"
2196 set_if = "$by_ssh_ipv4$"
2197 description = "Use IPv4 only"
2200 set_if = "$by_ssh_ipv6$"
2201 description = "Use IPv6 only"
2204 value = "$by_ssh_skip_stderr$"
2205 description = "Ignore all or (if specified) first n lines on STDERR [optional]"
2209 vars.by_ssh_address = "$check_address$"
2210 vars.by_ssh_quiet = false
2211 vars.check_ipv4 = "$by_ssh_ipv4$"
2212 vars.check_ipv6 = "$by_ssh_ipv6$"
2215 object CheckCommand "ups" {
2216 import "ipv4-or-ipv6"
2218 command = [ PluginDir + "/check_ups" ]
2222 value = "$ups_address$"
2223 description = "Address of the upsd server"
2227 value = "$ups_name$"
2228 description = "Name of the UPS to monitor"
2232 value = "$ups_port$"
2233 description = "Port number (default: 3493)"
2236 value = "$ups_variable$"
2237 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2240 value = "$ups_warning$"
2241 description = "Warning threshold for the selected variable"
2244 value = "$ups_critical$"
2245 description = "Critical threshold for the selected variable"
2248 set_if = "$ups_celsius$"
2249 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2252 value = "$ups_timeout$"
2253 description = "Seconds before the connection times out (default: 10)"
2257 vars.ups_address = "$check_address$"
2258 vars.ups_name = "ups"
2261 object CheckCommand "nrpe" {
2262 import "ipv4-or-ipv6"
2264 command = [ PluginDir + "/check_nrpe" ]
2268 value = "$nrpe_address$"
2269 description = "The address of the host running the NRPE daemon"
2272 value = "$nrpe_port$"
2275 value = "$nrpe_command$"
2278 set_if = "$nrpe_no_ssl$"
2279 description = "Do not use SSL"
2282 set_if = "$nrpe_timeout_unknown$"
2283 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2286 value = "$nrpe_timeout$"
2287 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2290 value = "$nrpe_arguments$"
2295 set_if = "$nrpe_ipv4$"
2296 description = "Use IPv4 connection"
2299 set_if = "$nrpe_ipv6$"
2300 description = "Use IPv6 connection"
2303 set_if = "$nrpe_version_2$"
2304 description = "Use this if you want to connect to NRPE v2"
2308 vars.nrpe_address = "$check_address$"
2309 vars.nrpe_no_ssl = false
2310 vars.nrpe_timeout_unknown = false
2311 vars.check_ipv4 = "$nrpe_ipv4$"
2312 vars.check_ipv6 = "$nrpe_ipv6$"
2313 vars.nrpe_version_2 = false
2317 object CheckCommand "hpjd" {
2318 import "ipv4-or-ipv6"
2320 command = [ PluginDir + "/check_hpjd" ]
2324 value = "$hpjd_address$"
2325 description = "Host address"
2328 value = "$hpjd_community$"
2329 description = "The SNMP community name (default=public)"
2332 value = "$hpjd_port$"
2333 description = "Specify the port to check (default=161)"
2337 vars.hpjd_address = "$check_address$"
2340 object CheckCommand "icmp" {
2341 command = [ PluginDir + "/check_icmp" ]
2345 value = "$icmp_address$"
2348 description = "Host address"
2351 value = "$icmp_wrta$,$icmp_wpl$%"
2352 description = "warning threshold (currently 200.000ms,40%)"
2355 value = "$icmp_crta$,$icmp_cpl$%"
2356 description = "critical threshold (currently 500.000ms,80%)"
2359 value = "$icmp_source$"
2360 description = "specify a source IP address or device name"
2363 value = "$icmp_packets$"
2364 description = "number of packets to send (currently 5)"
2367 value = "$icmp_packet_interval$"
2368 description = "max packet interval (currently 80.000ms)"
2371 value = "$icmp_target_interval$"
2372 description = "max target interval (currently 0.000ms)"
2375 value = "$icmp_hosts_alive$"
2376 description = "number of alive hosts required for success"
2379 value = "$icmp_data_bytes$"
2380 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2383 value = "$icmp_timeout$"
2384 description = "timeout value (seconds, currently 10)"
2387 value = "$icmp_ttl$"
2388 description = "TTL on outgoing packets (currently 0)"
2392 vars.icmp_address = "$address$"
2393 vars.icmp_wrta = 100
2395 vars.icmp_crta = 200
2399 object CheckCommand "ldap" {
2400 import "ipv4-or-ipv6"
2402 command = [ PluginDir + "/check_ldap" ]
2406 value = "$ldap_address$"
2407 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2410 value = "$ldap_port$"
2411 description = "Port number (default: 389)"
2414 value = "$ldap_attr$"
2415 description = "ldap attribute to search (default: \"(objectclass=*)\""
2418 value = "$ldap_base$"
2420 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2423 value = "$ldap_bind$"
2424 description = "ldap bind DN (if required)"
2427 value = "$ldap_pass$"
2428 description = "ldap password (if required)"
2431 set_if = "$ldap_starttls$"
2432 description = "use starttls mechanism introduced in protocol version 3"
2435 set_if = "$ldap_ssl$"
2436 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2439 set_if = "$ldap_v2$"
2440 description = "Use LDAP protocol version 2"
2443 set_if = "$ldap_v3$"
2444 description = "Use LDAP protocol version 3"
2447 value = "$ldap_warning$"
2448 description = "Response time to result in warning status (seconds)"
2451 value = "$ldap_critical$"
2452 description = "Response time to result in critical status (seconds)"
2455 value = "$ldap_warning_entries$"
2456 description = "Number of found entries to result in warning status (optional)"
2459 value = "$ldap_critical_entries$"
2460 description = "Number of found entries to result in critical status (optional)"
2463 value = "$ldap_timeout$"
2464 description = "Seconds before connection times out (default: 10)"
2467 set_if = "$ldap_verbose$"
2468 description = "Show details for command-line debugging"
2472 vars.ldap_address = "$check_address$"
2474 vars.ldap_v3 = false
2475 vars.ldap_timeout = 10s
2476 vars.ldap_verbose = false
2479 object CheckCommand "clamd" {
2480 command = [ PluginDir + "/check_clamd" ]
2484 value = "$clamd_address$"
2485 description = "The host's address or unix socket (must be an absolute path)."
2489 value = "$clamd_port$"
2490 description = "Port number (default: none)."
2493 value = "$clamd_expect$"
2494 description = "String to expect in server response (may be repeated)."
2498 set_if = "$clamd_all$"
2499 description = "All expect strings need to occur in server response. Default is any."
2504 set_if = "$clamd_escape_send$"
2505 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2509 value = "$clamd_send$"
2510 description = "String to send to the server."
2515 set_if = "$clamd_escape_quit$"
2516 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2520 value = "$clamd_quit$"
2521 description = "String to send server to initiate a clean close of the connection."
2524 value = "$clamd_refuse$"
2525 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2528 value = "$clamd_mismatch$"
2529 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2532 set_if = "$clamd_jail$"
2533 description = "Hide output from TCP socket."
2536 value = "$clamd_maxbytes$"
2537 description = "Close connection once more than this number of bytes are received."
2540 value = "$clamd_delay$"
2541 description = "Seconds to wait between sending string and polling for response."
2544 value = "$clamd_certificate$"
2545 description = "Minimum number of days a certificate has to be valid. 1st value is number of days for warning, 2nd is critical (if not specified: 0) - seperated by comma."
2548 set_if = "$clamd_ssl$"
2549 description = "Use SSL for the connection."
2552 value = "$clamd_wtime$"
2553 description = "Response time to result in warning status (seconds)."
2556 value = "$clamd_ctime$"
2557 description = "Response time to result in critical status (seconds)."
2560 value = "$clamd_timeout$"
2561 description = "Seconds before connection times out. Defaults to 10."
2564 set_if = "$clamd_ipv4$"
2565 description = "Use IPv4 only"
2568 set_if = "$clamd_ipv6$"
2569 description = "Use IPv6 only"
2573 vars.clamd_ssl = false
2574 vars.clamd_refuse = "crit"
2575 vars.clamd_mismatch = "warn"
2576 vars.clamd_timeout = 10
2577 vars.check_ipv4 = "$clamd_ipv4$"
2578 vars.check_ipv6 = "$clamd_ipv6$"
2581 object CheckCommand "mailq" {
2582 command = [ PluginDir + "/check_mailq" ]
2586 value = "$mailq_warning$"
2587 description = "Min. number of messages in queue to generate warning"
2591 value = "$mailq_critical$"
2592 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2596 value = "$mailq_domain_warning$"
2597 description = "Min. number of messages for same domain in queue to generate warning"
2600 value = "$mailq_domain_critical$"
2601 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2604 value = "$mailq_timeout$"
2605 description = "Plugin timeout in seconds (default = 15)"
2608 value = "$mailq_servertype$"
2609 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2612 set_if = "$mailq_sudo$"
2613 description = "Use sudo for mailq command"
2618 object CheckCommand "pgsql" {
2619 import "ipv4-or-ipv6"
2621 command = [ PluginDir + "/check_pgsql" ]
2625 value = "$pgsql_hostname$"
2626 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2629 value = "$pgsql_port$"
2630 description = "Port number (default: 5432)"
2633 value = "$pgsql_database$"
2634 description = "Database to check (default: template1)"
2637 value = "$pgsql_username$"
2638 description = "Login name of user"
2641 value = "$pgsql_password$"
2642 description = "Password (BIG SECURITY ISSUE)"
2645 value = "$pgsql_options$"
2646 description = "Connection parameters (keyword = value), see below"
2649 value = "$pgsql_warning$"
2650 description = "Response time to result in warning status (seconds)"
2653 value = "$pgsql_critical$"
2654 description = "Response time to result in critical status (seconds)"
2657 value = "$pgsql_timeout$"
2658 description = "Seconds before connection times out (default: 10)"
2661 value = "$pgsql_query$"
2662 description = "SQL query to run. Only first column in first row will be read"
2665 value = "$pgsql_query_warning$"
2666 description = "SQL query value to result in warning status (double)"
2669 value = "$pgsql_query_critical$"
2670 description = "SQL query value to result in critical status (double)"
2674 vars.pgsql_hostname = "$check_address$"
2677 object CheckCommand "mysql" {
2678 import "ipv4-or-ipv6"
2680 command = [ PluginDir + "/check_mysql" ]
2684 value = "$mysql_hostname$"
2685 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2688 value = "$mysql_port$"
2689 description = "Port number (default: 3306)"
2692 set_if = "$mysql_ignore_auth$"
2693 description = "Ignore authentication failure and check for mysql connectivity only"
2696 value = "$mysql_socket$"
2697 description = "Use the specified socket"
2700 value = "$mysql_database$"
2701 description = "Check database with indicated name"
2704 value = "$mysql_file$"
2705 description = "Read from the specified client options file"
2708 value = "$mysql_group$"
2709 description = "Use a client options group"
2712 value = "$mysql_username$"
2713 description = "Connect using the indicated username"
2716 value = "$mysql_password$"
2717 description = "Use the indicated password to authenticate the connection"
2720 set_if = "$mysql_check_slave$"
2721 description = "Check if the slave thread is running properly"
2724 value = "$mysql_warning$"
2725 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2728 value = "$mysql_critical$"
2729 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2732 set_if = "$mysql_ssl$"
2733 description = "Use ssl encryptation"
2736 value = "$mysql_cacert$"
2737 description = "Path to CA signing the cert"
2740 value = "$mysql_cert$"
2741 description = "Path to SSL certificate"
2744 value = "$mysql_key$"
2745 description = "Path to private SSL key"
2748 value = "$mysql_cadir$"
2749 description = "Path to CA directory"
2752 value = "$mysql_ciphers$"
2753 description = "List of valid SSL ciphers"
2757 vars.mysql_hostname = "$check_address$"
2760 object CheckCommand "negate" {
2761 command = [ PluginDir + "/negate" ]
2765 value = "$negate_timeout$"
2766 description = "Seconds before plugin times out (default: 11)"
2769 value = "$negate_timeout_result$"
2770 description = "Custom result on Negate timeouts"
2773 value = "$negate_ok$"
2776 value = "$negate_warning$"
2779 value = "$negate_critical$"
2782 value = "$negate_unknown$"
2785 set_if = "$negate_substitute$"
2786 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2788 "--wrapped-plugin" = {
2790 var command = macro("$negate_command$")
2791 var arguments = macro("$negate_arguments$")
2793 if (typeof(command) == String && !arguments) {
2797 var escaped_args = []
2798 for (arg in resolve_arguments(command, arguments)) {
2799 escaped_args.add(arg)
2801 return escaped_args.join(" ")
2808 vars.negate_timeout_result = "UNKNOWN"
2811 object CheckCommand "file_age" {
2812 command = [ PluginDir + "/check_file_age" ]
2816 value = "$file_age_warning_time$"
2817 description = "File must be no more than this many seconds old (default: 240s)"
2820 value = "$file_age_critical_time$"
2821 description = "File must be no more than this many seconds old (default: 600s)"
2824 value = "$file_age_warning_size$"
2825 description = "File must be at least this many bytes long"
2828 value = "$file_age_critical_size$"
2829 description = "File must be at least this many bytes long (default: 0B)"
2832 set_if = "$file_age_ignoremissing$"
2833 description = "return OK if the file does not exist"
2836 value = "$file_age_file$"
2837 description = "File to monitor"
2841 vars.file_age_ignoremissing = false
2844 object CheckCommand "smart" {
2845 command = [ PluginDir + "/check_ide_smart" ]
2849 value = "$smart_device$"
2850 description = "Name of a local hard drive to monitor"
2856 object CheckCommand "breeze" {
2857 import "ipv4-or-ipv6"
2859 command = [ PluginDir + "/check_breeze" ]
2863 value = "$breeze_hostname$"
2864 description = "Name or IP address of host to check"
2868 value = "$breeze_community$"
2869 description = "SNMPv1 community (default public)"
2872 value = "$breeze_warning$"
2873 description = "Percentage strength below which a WARNING status will result"
2877 value = "$breeze_critical$"
2878 description = "Percentage strength below which a CRITICAL status will result"
2883 vars.breeze_hostname = "$check_address$"
2884 vars.breeze_warning = "50"
2885 vars.breeze_critical = "20"
2888 object CheckCommand "flexlm" {
2889 command = [ PluginDir + "/check_flexlm" ]
2893 value = "$flexlm_licensefile$"
2894 description = "Name of license file (usually license.dat)"
2898 value = "$flexlm_timeout$"
2899 description = "Plugin time out in seconds (default = 15)"
2904 object CheckCommand "game" {
2905 import "ipv4-or-ipv6"
2907 command = [ PluginDir + "/check_game" ]
2911 value = "$game_port$"
2912 description = "Port to connect to"
2915 value = "$game_timeout$"
2916 description = "Seconds before connection times out (default: 10)"
2919 value = "$game_gamefield$"
2920 description = "Field number in raw qstat output that contains game name"
2923 value = "$game_mapfield$"
2924 description = "Field number in raw qstat output that contains map name"
2927 value = "$game_pingfield$"
2928 description = "Field number in raw qstat output that contains ping time"
2931 value = "$game_gametime$"
2932 description = "Field number in raw qstat output that contains game time"
2935 value = "$game_hostname$"
2936 description = "Name of the host running the game"
2939 value = "$game_game$"
2940 description = "Name of the game"
2945 value = "$game_ipaddress$"
2946 description = "Ipaddress of the game server to query"
2953 object CheckCommand "mysql_query" {
2954 import "ipv4-or-ipv6"
2956 command = [ PluginDir + "/check_mysql_query" ]
2960 value = "$mysql_query_hostname$"
2961 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2964 value = "$mysql_query_port$"
2965 description = "Port number (default: 3306)"
2968 value = "$mysql_query_username$"
2969 description = "Username to login with"
2972 value = "$mysql_query_password$"
2973 description = "Password to login with"
2976 value = "$mysql_query_database$"
2977 description = "Database to check"
2980 value = "$mysql_query_file$"
2981 description = "Read from the specified client options file"
2984 value = "$mysql_query_group$"
2985 description = "Use a client options group"
2988 value = "$mysql_query_execute$"
2989 description = "SQL query to run. Only first column in first row will be read"
2992 value = "$mysql_query_warning$"
2993 description = "Warning range (format: start:end). Alert if outside this range"
2996 value = "$mysql_query_critical$"
2997 description = "Critical range"
3001 vars.mysql_query_hostname = "$check_address$"
3004 object CheckCommand "radius" {
3005 import "ipv4-or-ipv6"
3008 PluginDir + "/check_radius",
3013 value = "$radius_address$",
3014 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3017 value = "$radius_config_file$",
3018 description = "Configuration file"
3021 value = "$radius_username$",
3022 description = "The user to authenticate"
3025 value = "$radius_password$",
3026 description = "Password for authentication"
3029 value = "$radius_port$",
3030 description = "Port number (default: 1645)"
3033 value = "$radius_nas_id$",
3034 description = "NAS identifier"
3037 value = "$radius_nas_address$",
3038 description = "NAS IP Address"
3041 value = "$radius_expect$",
3042 description = "Response string to expect from the server"
3045 value = "$radius_retries$",
3046 description = "Number of times to retry a failed connection"
3049 value = "$radius_timeout$",
3050 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3054 vars.radius_address = "$check_address$"
3057 object CheckCommand "nscp_api" {
3058 import "ipv4-or-ipv6"
3060 command = [ PluginDir + "/check_nscp_api" ]
3064 value = "$nscp_api_host$"
3065 description = "NSCP API host address"
3069 value = "$nscp_api_port$"
3070 description = "NSCP API host port. Defaults to 8443."
3073 value = "$nscp_api_password$"
3074 description = "NSCP API password"
3077 value = "$nscp_api_query$"
3078 description = "NSCPI API Query endpoint to use"
3081 value = "$nscp_api_arguments$"
3082 description = "NSCP API Query arguments"
3087 vars.nscp_api_host = "$check_address$"
3090 object CheckCommand "rpc" {
3091 import "ipv4-or-ipv6"
3093 command = [ PluginDir + "/check_rpc" ]
3097 value = "$rpc_address$"
3098 description = "RPC host address"
3102 value = "$rpc_command$"
3103 description = "Programm name (or number)"
3107 value = "$rpc_port$"
3108 description = "RPC port"
3111 value = "$rpc_version$"
3112 description = "The version to check"
3115 set_if = "$rpc_udp$"
3116 description = "Test UDP"
3119 set_if = "$rpc_tcp$"
3120 description = "Test TCP"
3123 set_if = "$rpc_verbose$"
3124 description = "Show verbose details"
3128 vars.rpc_address = "$check_address$"