1 /******************************************************************************
3 * Copyright (C) 2012-2018 Icinga Development Team (https://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 = [
1495 "fuse.gvfs-fuse-daemon",
1503 object CheckCommand "disk_smb" {
1504 command = [ PluginDir + "/check_disk_smb" ]
1508 value = "$disk_smb_hostname$"
1509 description = "NetBIOS name of the server."
1512 value = "$disk_smb_share$"
1513 description = "Share name to be tested."
1516 value = "$disk_smb_workgroup$"
1517 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1520 value = "$disk_smb_address$"
1521 description = "IP-address of HOST (only necessary if HOST is in another network)."
1524 value = "$disk_smb_username$"
1525 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1528 value = "$disk_smb_password$"
1529 description = "Password to log in to server. (Defaults to an empty password if omitted)."
1532 value = "$disk_smb_wused$"
1533 description = "Percent of used space at which a warning will be generated (Default: 85%)."
1536 value = "$disk_smb_cused$"
1537 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1540 value = "$disk_smb_port$"
1541 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1545 vars.disk_smb_wused = "85%"
1546 vars.disk_smb_cused = "95%"
1549 object CheckCommand "users" {
1550 command = [ PluginDir + "/check_users" ]
1554 value = "$users_wgreater$"
1555 description = "Set WARNING status if more than INTEGER users are logged in"
1558 value = "$users_cgreater$"
1559 description = "Set CRITICAL status if more than INTEGER users are logged in"
1563 vars.users_wgreater = 20
1564 vars.users_cgreater = 50
1567 object CheckCommand "procs" {
1568 command = [ PluginDir + "/check_procs" ]
1572 value = "$procs_warning$"
1573 description = "Generate warning state if metric is outside this range"
1576 value = "$procs_critical$"
1577 description = "Generate critical state if metric is outside this range"
1580 value = "$procs_metric$"
1581 description = "Check thresholds against metric"
1584 value = "$procs_timeout$"
1585 description = "Seconds before plugin times out"
1588 set_if = "$procs_traditional$"
1589 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1592 value = "$procs_state$"
1593 description = "Only scan for processes that have one or more of the status flags you specify"
1596 value = "$procs_ppid$"
1597 description = "Only scan for children of the parent process ID indicated"
1600 value = "$procs_vsz$"
1601 description = "Only scan for processes with VSZ higher than indicated"
1604 value = "$procs_rss$"
1605 description = "Only scan for processes with RSS higher than indicated"
1608 value = "$procs_pcpu$"
1609 description = "Only scan for processes with PCPU higher than indicated"
1612 value = "$procs_user$"
1613 description = "Only scan for processes with user name or ID indicated"
1616 value = "$procs_argument$"
1617 description = "Only scan for processes with args that contain STRING"
1619 "--ereg-argument-array" = {
1620 value = "$procs_argument_regex$"
1621 description = "Only scan for processes with args that contain the regex STRING"
1624 value = "$procs_command$"
1625 description = "Only scan for exact matches of COMMAND (without path)"
1628 set_if = "$procs_nokthreads$"
1629 description = "Only scan for non kernel threads"
1633 vars.procs_traditional = false
1634 vars.procs_nokthreads = false
1635 vars.procs_warning = 250
1636 vars.procs_critical = 400
1639 object CheckCommand "swap" {
1640 command = [ PluginDir + "/check_swap" ]
1644 if (macro("$swap_integer$")) {
1645 return macro("$swap_wfree$")
1647 return macro("$swap_wfree$%")
1651 if (macro("$swap_integer$")) {
1652 return macro("$swap_cfree$")
1654 return macro("$swap_cfree$%")
1658 set_if = "$swap_allswaps$"
1659 description = "Conduct comparisons for all swap partitions, one by one"
1662 value = "$swap_noswap$"
1663 description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1667 vars.swap_wfree = 50
1668 vars.swap_cfree = 25
1669 vars.swap_integer = false
1670 vars.swap_allswaps = false
1673 object CheckCommand "load" {
1674 command = [ PluginDir + "/check_load" ]
1678 value = "$load_wload1$,$load_wload5$,$load_wload15$"
1679 description = "Exit with WARNING status if load average exceeds WLOADn"
1682 value = "$load_cload1$,$load_cload5$,$load_cload15$"
1683 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1686 set_if = "$load_percpu$"
1687 description = "Divide the load averages by the number of CPUs (when possible)"
1691 vars.load_wload1 = 5.0
1692 vars.load_wload5 = 4.0
1693 vars.load_wload15 = 3.0
1695 vars.load_cload1 = 10.0
1696 vars.load_cload5 = 6.0
1697 vars.load_cload15 = 4.0
1699 vars.load_percpu = false
1702 object CheckCommand "snmp" {
1703 command = [ PluginDir + "/check_snmp" ]
1707 value = "$snmp_address$"
1708 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1711 value = "$snmp_oid$"
1712 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1715 value = "$snmp_community$"
1716 description = "Optional community string for SNMP communication (default is 'public')"
1719 value = "$snmp_crit$"
1720 description = "Critical threshold range(s)"
1723 value = "$snmp_warn$"
1724 description = "Warning threshold range(s)"
1727 value = "$snmp_string$"
1728 description = "Return OK state (for that OID) if STRING is an exact match"
1731 value = "$snmp_ereg$"
1732 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1735 value = "$snmp_eregi$"
1736 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1739 value = "$snmp_label$"
1740 description = "Prefix label for output from plugin"
1743 value = "$snmp_units$"
1744 description = "Units label(s) for output data (e.g., 'sec.')"
1747 value = "$snmp_timeout$"
1748 description = "Seconds before connection times out (default: 10)"
1751 value = "$snmp_port$"
1752 description = "Port number (default: 161)"
1755 value = "$snmp_retries$"
1756 description = "Number of retries to be used in the requests"
1758 "--invert-search" = {
1759 set_if = "$snmp_invert_search$"
1760 description = "Invert search result and return CRITICAL if found"
1763 value = "$snmp_version$"
1764 description = "SNMP protocol version"
1767 value = "$snmp_miblist$"
1768 description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1770 "--rate-multiplier" = {
1771 value = "$snmp_rate_multiplier$"
1772 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1775 set_if = "$snmp_rate$"
1776 description = "Enable rate calculation"
1779 set_if = "$snmp_getnext$"
1780 description = "Use SNMP GETNEXT instead of SNMP GET"
1783 value = "$snmp_offset$"
1784 description = "Add/substract the specified OFFSET to numeric sensor data"
1787 value = "$snmp_output_delimiter$"
1788 description = "Separates output on multiple OID requests"
1791 set_if = "$snmp_perf_oids$"
1792 description = "Label performance data with OIDs instead of --label's"
1796 vars.snmp_address = {{
1797 var addr_v4 = macro("$address$")
1798 var addr_v6 = macro("$address6$")
1803 return "udp6:[" + addr_v6 + "]"
1807 vars.snmp_community = "public"
1808 vars.snmp_invert_search = false
1809 vars.snmp_timeout = "10"
1812 object CheckCommand "snmpv3" {
1813 import "ipv4-or-ipv6"
1815 command = [ PluginDir + "/check_snmp" ]
1819 value = "$snmpv3_address$"
1820 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1823 value = "$snmpv3_port$"
1824 description = "Port number"
1827 set_if = "$snmpv3_getnext$"
1828 description = "Use SNMP GETNEXT instead of SNMP GET"
1832 description = "SNMP protocol version"
1835 value = "$snmpv3_seclevel$"
1836 description = "SNMPv3 securityLevel"
1839 value = "$snmpv3_auth_alg$"
1840 description = "SNMPv3 auth proto"
1843 value = "$snmpv3_user$"
1844 description = "SNMPv3 username"
1847 value = "$snmpv3_auth_key$"
1848 description = "SNMPv3 authentication password"
1851 value = "$snmpv3_priv_key$"
1852 description = "SNMPv3 privacy password"
1855 value = "$snmpv3_oid$"
1856 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1859 value = "$snmpv3_priv_alg$"
1860 description = "SNMPv3 priv proto (default DES)"
1863 value = "$snmpv3_warn$"
1864 description = "Warning threshold range(s)"
1867 value = "$snmpv3_crit$"
1868 description = "Critical threshold range(s)"
1871 value = "$snmpv3_string$"
1872 description = "Return OK state (for that OID) if STRING is an exact match"
1875 value = "$snmpv3_ereg$"
1876 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1879 value = "$snmpv3_eregi$"
1880 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1882 "--invert-search" = {
1883 set_if = "$snmpv3_invert_search$"
1884 description = "Invert search result and return CRITICAL if found"
1887 value = "$snmpv3_label$"
1888 description = "Prefix label for output from plugin"
1891 value = "$snmpv3_miblist$"
1892 description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1895 value = "$snmpv3_units$"
1896 description = "Units label(s) for output data (e.g., 'sec.')"
1898 "--rate-multiplier" = {
1899 value = "$snmpv3_rate_multiplier$"
1900 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1903 set_if = "$snmpv3_rate$"
1904 description = "Enable rate calculation"
1907 value = "$snmpv3_timeout$"
1908 description = "Seconds before connection times out (default: 10)"
1912 vars.snmpv3_address = "$check_address$"
1913 vars.snmpv3_auth_alg = "SHA"
1914 vars.snmpv3_priv_alg = "AES"
1915 vars.snmpv3_seclevel = "authPriv"
1916 vars.snmpv3_timeout = "10"
1919 object CheckCommand "snmp-uptime" {
1922 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1925 object CheckCommand "apt" {
1926 command = [ PluginDir + "/check_apt" ]
1930 value = "$apt_extra_opts$"
1931 description = "Read options from an ini file."
1934 value = "$apt_upgrade$"
1935 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."
1937 "--dist-upgrade" = {
1938 value = "$apt_dist_upgrade$"
1939 description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1942 value = "$apt_include$"
1943 description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1946 value = "$apt_exclude$"
1947 description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1950 value = "$apt_critical$"
1951 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."
1954 value = "$apt_timeout$"
1955 description = "Seconds before plugin times out (default: 10)."
1957 "--only-critical" = {
1958 set_if = "$apt_only_critical$"
1959 description = "Only warn about critical upgrades."
1962 set_if = "$apt_list$"
1963 description = "List packages available for upgrade."
1970 object CheckCommand "dhcp" {
1971 command = [ PluginDir + "/check_dhcp" ]
1975 value = "$dhcp_serverip$"
1976 description = "IP address of DHCP server that we must hear from"
1979 value = "$dhcp_requestedip$"
1980 description = "IP address that should be offered by at least one DHCP server"
1983 value = "$dhcp_timeout$"
1984 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1987 value = "$dhcp_interface$"
1988 description = "Interface to to use for listening (i.e. eth0)"
1991 value = "$dhcp_mac$"
1992 description = "MAC address to use in the DHCP request"
1995 set_if = "$dhcp_unicast$"
1996 description = "Unicast testing: mimic a DHCP relay"
2000 vars.dhcp_unicast = false
2003 object CheckCommand "dns" {
2004 import "ipv4-or-ipv6"
2006 command = [ PluginDir + "/check_dns" ]
2010 value = "$dns_lookup$"
2011 description = "The name or address you want to query."
2014 value = "$dns_server$"
2015 description = "Optional DNS server you want to use for the lookup."
2018 value = "$dns_query_type$"
2019 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2022 value = "$dns_expected_answers$"
2023 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)."
2026 set_if = "$dns_authoritative$"
2027 description = "Optionally expect the DNS server to be authoritative for the lookup"
2030 set_if = "$dns_accept_cname$"
2031 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2034 value = "$dns_wtime$"
2035 description = "Return warning if elapsed time exceeds value."
2038 value = "$dns_ctime$"
2039 description = "Return critical if elapsed time exceeds value."
2042 value = "$dns_timeout$"
2043 description = "Seconds before connection times out. Defaults to 10."
2047 vars.dns_lookup = "$host.name$"
2048 vars.dns_timeout = 10
2051 object CheckCommand "dig" {
2052 import "ipv4-or-ipv6"
2054 command = [ PluginDir + "/check_dig" ]
2058 value = "$dig_server$"
2059 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2062 value = "$dig_port$"
2063 description = "Port number (default: 53)"
2066 value = "$dig_lookup$"
2068 description = "Machine name to lookup"
2071 value = "$dig_record_type$"
2072 description = "Record type to lookup (default: A)"
2075 value = "$dig_expected_address$"
2076 description = "An address expected to be in the answer section"
2079 value = "$dig_arguments$"
2080 description = "Pass STRING as argument(s) to dig"
2083 value = "$dig_warning$"
2084 description = "Response time to result in warning status (seconds)"
2087 value = "$dig_critical$"
2088 description = "Response time to result in critical status (seconds)"
2091 value = "$dig_timeout$"
2092 description = "Seconds before connection times out (default: 10)"
2095 set_if = "$dig_ipv4$"
2096 description = "Force dig to only use IPv4 query transport"
2099 set_if = "$dig_ipv6$"
2100 description = "Force dig to only use IPv6 query transport"
2104 vars.dig_server = "$check_address$"
2105 vars.check_ipv4 = "$dig_ipv4$"
2106 vars.check_ipv6 = "$dig_ipv6$"
2109 object CheckCommand "nscp" {
2110 import "ipv4-or-ipv6"
2112 command = [ PluginDir + "/check_nt" ]
2116 value = "$nscp_address$"
2117 description = "Name of the host to check"
2120 value = "$nscp_port$"
2121 description = "Optional port number (default: 1248)"
2124 value = "$nscp_password$"
2125 description = "Password needed for the request"
2128 value = "$nscp_variable$"
2130 description = "Variable to check"
2133 value = "$nscp_params$"
2137 value = "$nscp_warn$"
2138 description = "Threshold which will result in a warning status"
2141 value = "$nscp_crit$"
2142 description = "Threshold which will result in a critical status"
2145 value = "$nscp_timeout$"
2146 description = "Seconds before connection attempt times out"
2150 set_if = "$nscp_showall$"
2151 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2155 vars.nscp_address = "$check_address$"
2156 vars.nscp_port = 12489
2157 vars.nscp_showall = false
2160 object CheckCommand "by_ssh" {
2161 import "ipv4-or-ipv6"
2163 command = [ PluginDir + "/check_by_ssh" ]
2167 value = "$by_ssh_address$"
2168 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2171 value = "$by_ssh_port$"
2172 description = "Port number (default: none)"
2175 var command = macro("$by_ssh_command$")
2176 var arguments = macro("$by_ssh_arguments$")
2178 if (typeof(command) == String && !arguments) {
2182 var escaped_args = []
2183 for (arg in resolve_arguments(command, arguments)) {
2184 escaped_args.add(escape_shell_arg(arg))
2186 return escaped_args.join(" ")
2189 value = "$by_ssh_logname$"
2190 description = "SSH user name on remote host [optional]"
2193 value = "$by_ssh_identity$"
2194 description = "identity of an authorized key [optional]"
2197 set_if = "$by_ssh_quiet$"
2198 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2201 value = "$by_ssh_warn$"
2202 description = "Response time to result in warning status (seconds)"
2205 value = "$by_ssh_crit$"
2206 description = "Response time to result in critical status (seconds)"
2209 value = "$by_ssh_timeout$"
2210 description = "Seconds before connection times out (default: 10)"
2213 value = "$by_ssh_options$"
2214 description = "Provide ssh options (may be repeated)"
2217 set_if = "$by_ssh_ipv4$"
2218 description = "Use IPv4 only"
2221 set_if = "$by_ssh_ipv6$"
2222 description = "Use IPv6 only"
2225 value = "$by_ssh_skip_stderr$"
2226 description = "Ignore all or (if specified) first n lines on STDERR [optional]"
2230 vars.by_ssh_address = "$check_address$"
2231 vars.by_ssh_quiet = false
2232 vars.check_ipv4 = "$by_ssh_ipv4$"
2233 vars.check_ipv6 = "$by_ssh_ipv6$"
2236 object CheckCommand "ups" {
2237 import "ipv4-or-ipv6"
2239 command = [ PluginDir + "/check_ups" ]
2243 value = "$ups_address$"
2244 description = "Address of the upsd server"
2248 value = "$ups_name$"
2249 description = "Name of the UPS to monitor"
2253 value = "$ups_port$"
2254 description = "Port number (default: 3493)"
2257 value = "$ups_variable$"
2258 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2261 value = "$ups_warning$"
2262 description = "Warning threshold for the selected variable"
2265 value = "$ups_critical$"
2266 description = "Critical threshold for the selected variable"
2269 set_if = "$ups_celsius$"
2270 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2273 value = "$ups_timeout$"
2274 description = "Seconds before the connection times out (default: 10)"
2278 vars.ups_address = "$check_address$"
2279 vars.ups_name = "ups"
2282 object CheckCommand "nrpe" {
2283 import "ipv4-or-ipv6"
2285 command = [ PluginDir + "/check_nrpe" ]
2289 value = "$nrpe_address$"
2290 description = "The address of the host running the NRPE daemon"
2293 value = "$nrpe_port$"
2296 value = "$nrpe_command$"
2299 set_if = "$nrpe_no_ssl$"
2300 description = "Do not use SSL"
2303 set_if = "$nrpe_timeout_unknown$"
2304 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2307 value = "$nrpe_timeout$"
2308 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2311 value = "$nrpe_arguments$"
2316 set_if = "$nrpe_ipv4$"
2317 description = "Use IPv4 connection"
2320 set_if = "$nrpe_ipv6$"
2321 description = "Use IPv6 connection"
2324 set_if = "$nrpe_version_2$"
2325 description = "Use this if you want to connect to NRPE v2"
2329 vars.nrpe_address = "$check_address$"
2330 vars.nrpe_no_ssl = false
2331 vars.nrpe_timeout_unknown = false
2332 vars.check_ipv4 = "$nrpe_ipv4$"
2333 vars.check_ipv6 = "$nrpe_ipv6$"
2334 vars.nrpe_version_2 = false
2338 object CheckCommand "hpjd" {
2339 import "ipv4-or-ipv6"
2341 command = [ PluginDir + "/check_hpjd" ]
2345 value = "$hpjd_address$"
2346 description = "Host address"
2349 value = "$hpjd_community$"
2350 description = "The SNMP community name (default=public)"
2353 value = "$hpjd_port$"
2354 description = "Specify the port to check (default=161)"
2358 vars.hpjd_address = "$check_address$"
2361 object CheckCommand "icmp" {
2362 command = [ PluginDir + "/check_icmp" ]
2366 value = "$icmp_address$"
2369 description = "Host address"
2372 value = "$icmp_wrta$,$icmp_wpl$%"
2373 description = "warning threshold (currently 200.000ms,40%)"
2376 value = "$icmp_crta$,$icmp_cpl$%"
2377 description = "critical threshold (currently 500.000ms,80%)"
2380 value = "$icmp_source$"
2381 description = "specify a source IP address or device name"
2384 value = "$icmp_packets$"
2385 description = "number of packets to send (currently 5)"
2388 value = "$icmp_packet_interval$"
2389 description = "max packet interval (currently 80.000ms)"
2392 value = "$icmp_target_interval$"
2393 description = "max target interval (currently 0.000ms)"
2396 value = "$icmp_hosts_alive$"
2397 description = "number of alive hosts required for success"
2400 value = "$icmp_data_bytes$"
2401 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2404 value = "$icmp_timeout$"
2405 description = "timeout value (seconds, currently 10)"
2408 value = "$icmp_ttl$"
2409 description = "TTL on outgoing packets (currently 0)"
2413 vars.icmp_address = "$address$"
2414 vars.icmp_wrta = 100
2416 vars.icmp_crta = 200
2420 object CheckCommand "ldap" {
2421 import "ipv4-or-ipv6"
2423 command = [ PluginDir + "/check_ldap" ]
2427 value = "$ldap_address$"
2428 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2431 value = "$ldap_port$"
2432 description = "Port number (default: 389)"
2435 value = "$ldap_attr$"
2436 description = "ldap attribute to search (default: \"(objectclass=*)\""
2439 value = "$ldap_base$"
2441 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2444 value = "$ldap_bind$"
2445 description = "ldap bind DN (if required)"
2448 value = "$ldap_pass$"
2449 description = "ldap password (if required)"
2452 set_if = "$ldap_starttls$"
2453 description = "use starttls mechanism introduced in protocol version 3"
2456 set_if = "$ldap_ssl$"
2457 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2460 set_if = "$ldap_v2$"
2461 description = "Use LDAP protocol version 2"
2464 set_if = "$ldap_v3$"
2465 description = "Use LDAP protocol version 3"
2468 value = "$ldap_warning$"
2469 description = "Response time to result in warning status (seconds)"
2472 value = "$ldap_critical$"
2473 description = "Response time to result in critical status (seconds)"
2476 value = "$ldap_warning_entries$"
2477 description = "Number of found entries to result in warning status (optional)"
2480 value = "$ldap_critical_entries$"
2481 description = "Number of found entries to result in critical status (optional)"
2484 value = "$ldap_timeout$"
2485 description = "Seconds before connection times out (default: 10)"
2488 set_if = "$ldap_verbose$"
2489 description = "Show details for command-line debugging"
2493 vars.ldap_address = "$check_address$"
2495 vars.ldap_v3 = false
2496 vars.ldap_timeout = 10s
2497 vars.ldap_verbose = false
2500 object CheckCommand "clamd" {
2501 command = [ PluginDir + "/check_clamd" ]
2505 value = "$clamd_address$"
2506 description = "The host's address or unix socket (must be an absolute path)."
2510 value = "$clamd_port$"
2511 description = "Port number (default: none)."
2514 value = "$clamd_expect$"
2515 description = "String to expect in server response (may be repeated)."
2519 set_if = "$clamd_all$"
2520 description = "All expect strings need to occur in server response. Default is any."
2525 set_if = "$clamd_escape_send$"
2526 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2530 value = "$clamd_send$"
2531 description = "String to send to the server."
2536 set_if = "$clamd_escape_quit$"
2537 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2541 value = "$clamd_quit$"
2542 description = "String to send server to initiate a clean close of the connection."
2545 value = "$clamd_refuse$"
2546 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2549 value = "$clamd_mismatch$"
2550 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2553 set_if = "$clamd_jail$"
2554 description = "Hide output from TCP socket."
2557 value = "$clamd_maxbytes$"
2558 description = "Close connection once more than this number of bytes are received."
2561 value = "$clamd_delay$"
2562 description = "Seconds to wait between sending string and polling for response."
2565 value = "$clamd_certificate$"
2566 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."
2569 set_if = "$clamd_ssl$"
2570 description = "Use SSL for the connection."
2573 value = "$clamd_wtime$"
2574 description = "Response time to result in warning status (seconds)."
2577 value = "$clamd_ctime$"
2578 description = "Response time to result in critical status (seconds)."
2581 value = "$clamd_timeout$"
2582 description = "Seconds before connection times out. Defaults to 10."
2585 set_if = "$clamd_ipv4$"
2586 description = "Use IPv4 only"
2589 set_if = "$clamd_ipv6$"
2590 description = "Use IPv6 only"
2594 vars.clamd_ssl = false
2595 vars.clamd_refuse = "crit"
2596 vars.clamd_mismatch = "warn"
2597 vars.clamd_timeout = 10
2598 vars.check_ipv4 = "$clamd_ipv4$"
2599 vars.check_ipv6 = "$clamd_ipv6$"
2602 object CheckCommand "mailq" {
2603 command = [ PluginDir + "/check_mailq" ]
2607 value = "$mailq_warning$"
2608 description = "Min. number of messages in queue to generate warning"
2612 value = "$mailq_critical$"
2613 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2617 value = "$mailq_domain_warning$"
2618 description = "Min. number of messages for same domain in queue to generate warning"
2621 value = "$mailq_domain_critical$"
2622 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2625 value = "$mailq_timeout$"
2626 description = "Plugin timeout in seconds (default = 15)"
2629 value = "$mailq_servertype$"
2630 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2633 set_if = "$mailq_sudo$"
2634 description = "Use sudo for mailq command"
2639 object CheckCommand "pgsql" {
2640 import "ipv4-or-ipv6"
2642 command = [ PluginDir + "/check_pgsql" ]
2646 value = "$pgsql_hostname$"
2647 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2650 value = "$pgsql_port$"
2651 description = "Port number (default: 5432)"
2654 value = "$pgsql_database$"
2655 description = "Database to check (default: template1)"
2658 value = "$pgsql_username$"
2659 description = "Login name of user"
2662 value = "$pgsql_password$"
2663 description = "Password (BIG SECURITY ISSUE)"
2666 value = "$pgsql_options$"
2667 description = "Connection parameters (keyword = value), see below"
2670 value = "$pgsql_warning$"
2671 description = "Response time to result in warning status (seconds)"
2674 value = "$pgsql_critical$"
2675 description = "Response time to result in critical status (seconds)"
2678 value = "$pgsql_timeout$"
2679 description = "Seconds before connection times out (default: 10)"
2682 value = "$pgsql_query$"
2683 description = "SQL query to run. Only first column in first row will be read"
2686 value = "$pgsql_query_warning$"
2687 description = "SQL query value to result in warning status (double)"
2690 value = "$pgsql_query_critical$"
2691 description = "SQL query value to result in critical status (double)"
2695 vars.pgsql_hostname = "$check_address$"
2698 object CheckCommand "mysql" {
2699 import "ipv4-or-ipv6"
2701 command = [ PluginDir + "/check_mysql" ]
2705 value = "$mysql_hostname$"
2706 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2709 value = "$mysql_port$"
2710 description = "Port number (default: 3306)"
2713 set_if = "$mysql_ignore_auth$"
2714 description = "Ignore authentication failure and check for mysql connectivity only"
2717 value = "$mysql_socket$"
2718 description = "Use the specified socket"
2721 value = "$mysql_database$"
2722 description = "Check database with indicated name"
2725 value = "$mysql_file$"
2726 description = "Read from the specified client options file"
2729 value = "$mysql_group$"
2730 description = "Use a client options group"
2733 value = "$mysql_username$"
2734 description = "Connect using the indicated username"
2737 value = "$mysql_password$"
2738 description = "Use the indicated password to authenticate the connection"
2741 set_if = "$mysql_check_slave$"
2742 description = "Check if the slave thread is running properly"
2745 value = "$mysql_warning$"
2746 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2749 value = "$mysql_critical$"
2750 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2753 set_if = "$mysql_ssl$"
2754 description = "Use ssl encryptation"
2757 value = "$mysql_cacert$"
2758 description = "Path to CA signing the cert"
2761 value = "$mysql_cert$"
2762 description = "Path to SSL certificate"
2765 value = "$mysql_key$"
2766 description = "Path to private SSL key"
2769 value = "$mysql_cadir$"
2770 description = "Path to CA directory"
2773 value = "$mysql_ciphers$"
2774 description = "List of valid SSL ciphers"
2778 vars.mysql_hostname = "$check_address$"
2781 object CheckCommand "negate" {
2782 command = [ PluginDir + "/negate" ]
2786 value = "$negate_timeout$"
2787 description = "Seconds before plugin times out (default: 11)"
2790 value = "$negate_timeout_result$"
2791 description = "Custom result on Negate timeouts"
2794 value = "$negate_ok$"
2797 value = "$negate_warning$"
2800 value = "$negate_critical$"
2803 value = "$negate_unknown$"
2806 set_if = "$negate_substitute$"
2807 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2809 "--wrapped-plugin" = {
2811 var command = macro("$negate_command$")
2812 var arguments = macro("$negate_arguments$")
2814 if (typeof(command) == String && !arguments) {
2818 var escaped_args = []
2819 for (arg in resolve_arguments(command, arguments)) {
2820 escaped_args.add(arg)
2822 return escaped_args.join(" ")
2829 vars.negate_timeout_result = "UNKNOWN"
2832 object CheckCommand "file_age" {
2833 command = [ PluginDir + "/check_file_age" ]
2837 value = "$file_age_warning_time$"
2838 description = "File must be no more than this many seconds old (default: 240s)"
2841 value = "$file_age_critical_time$"
2842 description = "File must be no more than this many seconds old (default: 600s)"
2845 value = "$file_age_warning_size$"
2846 description = "File must be at least this many bytes long"
2849 value = "$file_age_critical_size$"
2850 description = "File must be at least this many bytes long (default: 0B)"
2853 set_if = "$file_age_ignoremissing$"
2854 description = "return OK if the file does not exist"
2857 value = "$file_age_file$"
2858 description = "File to monitor"
2862 vars.file_age_ignoremissing = false
2865 object CheckCommand "smart" {
2866 command = [ PluginDir + "/check_ide_smart" ]
2870 value = "$smart_device$"
2871 description = "Name of a local hard drive to monitor"
2877 object CheckCommand "breeze" {
2878 import "ipv4-or-ipv6"
2880 command = [ PluginDir + "/check_breeze" ]
2884 value = "$breeze_hostname$"
2885 description = "Name or IP address of host to check"
2889 value = "$breeze_community$"
2890 description = "SNMPv1 community (default public)"
2893 value = "$breeze_warning$"
2894 description = "Percentage strength below which a WARNING status will result"
2898 value = "$breeze_critical$"
2899 description = "Percentage strength below which a CRITICAL status will result"
2904 vars.breeze_hostname = "$check_address$"
2905 vars.breeze_warning = "50"
2906 vars.breeze_critical = "20"
2909 object CheckCommand "flexlm" {
2910 command = [ PluginDir + "/check_flexlm" ]
2914 value = "$flexlm_licensefile$"
2915 description = "Name of license file (usually license.dat)"
2919 value = "$flexlm_timeout$"
2920 description = "Plugin time out in seconds (default = 15)"
2925 object CheckCommand "game" {
2926 import "ipv4-or-ipv6"
2928 command = [ PluginDir + "/check_game" ]
2932 value = "$game_port$"
2933 description = "Port to connect to"
2936 value = "$game_timeout$"
2937 description = "Seconds before connection times out (default: 10)"
2940 value = "$game_gamefield$"
2941 description = "Field number in raw qstat output that contains game name"
2944 value = "$game_mapfield$"
2945 description = "Field number in raw qstat output that contains map name"
2948 value = "$game_pingfield$"
2949 description = "Field number in raw qstat output that contains ping time"
2952 value = "$game_gametime$"
2953 description = "Field number in raw qstat output that contains game time"
2956 value = "$game_hostname$"
2957 description = "Name of the host running the game"
2960 value = "$game_game$"
2961 description = "Name of the game"
2966 value = "$game_ipaddress$"
2967 description = "Ipaddress of the game server to query"
2974 object CheckCommand "mysql_query" {
2975 import "ipv4-or-ipv6"
2977 command = [ PluginDir + "/check_mysql_query" ]
2981 value = "$mysql_query_hostname$"
2982 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2985 value = "$mysql_query_port$"
2986 description = "Port number (default: 3306)"
2989 value = "$mysql_query_username$"
2990 description = "Username to login with"
2993 value = "$mysql_query_password$"
2994 description = "Password to login with"
2997 value = "$mysql_query_database$"
2998 description = "Database to check"
3001 value = "$mysql_query_file$"
3002 description = "Read from the specified client options file"
3005 value = "$mysql_query_group$"
3006 description = "Use a client options group"
3009 value = "$mysql_query_execute$"
3010 description = "SQL query to run. Only first column in first row will be read"
3013 value = "$mysql_query_warning$"
3014 description = "Warning range (format: start:end). Alert if outside this range"
3017 value = "$mysql_query_critical$"
3018 description = "Critical range"
3022 vars.mysql_query_hostname = "$check_address$"
3025 object CheckCommand "radius" {
3026 import "ipv4-or-ipv6"
3029 PluginDir + "/check_radius",
3034 value = "$radius_address$",
3035 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3038 value = "$radius_config_file$",
3039 description = "Configuration file"
3042 value = "$radius_username$",
3043 description = "The user to authenticate"
3046 value = "$radius_password$",
3047 description = "Password for authentication"
3050 value = "$radius_port$",
3051 description = "Port number (default: 1645)"
3054 value = "$radius_nas_id$",
3055 description = "NAS identifier"
3058 value = "$radius_nas_address$",
3059 description = "NAS IP Address"
3062 value = "$radius_expect$",
3063 description = "Response string to expect from the server"
3066 value = "$radius_retries$",
3067 description = "Number of times to retry a failed connection"
3070 value = "$radius_timeout$",
3071 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3075 vars.radius_address = "$check_address$"
3078 object CheckCommand "nscp_api" {
3079 import "ipv4-or-ipv6"
3081 command = [ PluginDir + "/check_nscp_api" ]
3085 value = "$nscp_api_host$"
3086 description = "NSCP API host address"
3090 value = "$nscp_api_port$"
3091 description = "NSCP API host port. Defaults to 8443."
3094 value = "$nscp_api_password$"
3095 description = "NSCP API password"
3098 value = "$nscp_api_query$"
3099 description = "NSCPI API Query endpoint to use"
3102 value = "$nscp_api_arguments$"
3103 description = "NSCP API Query arguments"
3108 vars.nscp_api_host = "$check_address$"
3111 object CheckCommand "rpc" {
3112 import "ipv4-or-ipv6"
3114 command = [ PluginDir + "/check_rpc" ]
3118 value = "$rpc_address$"
3119 description = "RPC host address"
3123 value = "$rpc_command$"
3124 description = "Programm name (or number)"
3128 value = "$rpc_port$"
3129 description = "RPC port"
3132 value = "$rpc_version$"
3133 description = "The version to check"
3136 set_if = "$rpc_udp$"
3137 description = "Test UDP"
3140 set_if = "$rpc_tcp$"
3141 description = "Test TCP"
3144 set_if = "$rpc_verbose$"
3145 description = "Show verbose details"
3149 vars.rpc_address = "$check_address$"