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 = [
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."
1966 object CheckCommand "dhcp" {
1967 command = [ PluginDir + "/check_dhcp" ]
1971 value = "$dhcp_serverip$"
1972 description = "IP address of DHCP server that we must hear from"
1975 value = "$dhcp_requestedip$"
1976 description = "IP address that should be offered by at least one DHCP server"
1979 value = "$dhcp_timeout$"
1980 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1983 value = "$dhcp_interface$"
1984 description = "Interface to to use for listening (i.e. eth0)"
1987 value = "$dhcp_mac$"
1988 description = "MAC address to use in the DHCP request"
1991 set_if = "$dhcp_unicast$"
1992 description = "Unicast testing: mimic a DHCP relay"
1996 vars.dhcp_unicast = false
1999 object CheckCommand "dns" {
2000 import "ipv4-or-ipv6"
2002 command = [ PluginDir + "/check_dns" ]
2006 value = "$dns_lookup$"
2007 description = "The name or address you want to query."
2010 value = "$dns_server$"
2011 description = "Optional DNS server you want to use for the lookup."
2014 value = "$dns_query_type$"
2015 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2018 value = "$dns_expected_answers$"
2019 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)."
2022 set_if = "$dns_authoritative$"
2023 description = "Optionally expect the DNS server to be authoritative for the lookup"
2026 set_if = "$dns_accept_cname$"
2027 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2030 value = "$dns_wtime$"
2031 description = "Return warning if elapsed time exceeds value."
2034 value = "$dns_ctime$"
2035 description = "Return critical if elapsed time exceeds value."
2038 value = "$dns_timeout$"
2039 description = "Seconds before connection times out. Defaults to 10."
2043 vars.dns_lookup = "$host.name$"
2044 vars.dns_timeout = 10
2047 object CheckCommand "dig" {
2048 import "ipv4-or-ipv6"
2050 command = [ PluginDir + "/check_dig" ]
2054 value = "$dig_server$"
2055 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2058 value = "$dig_port$"
2059 description = "Port number (default: 53)"
2062 value = "$dig_lookup$"
2064 description = "Machine name to lookup"
2067 value = "$dig_record_type$"
2068 description = "Record type to lookup (default: A)"
2071 value = "$dig_expected_address$"
2072 description = "An address expected to be in the answer section"
2075 value = "$dig_arguments$"
2076 description = "Pass STRING as argument(s) to dig"
2079 value = "$dig_warning$"
2080 description = "Response time to result in warning status (seconds)"
2083 value = "$dig_critical$"
2084 description = "Response time to result in critical status (seconds)"
2087 value = "$dig_timeout$"
2088 description = "Seconds before connection times out (default: 10)"
2091 set_if = "$dig_ipv4$"
2092 description = "Force dig to only use IPv4 query transport"
2095 set_if = "$dig_ipv6$"
2096 description = "Force dig to only use IPv6 query transport"
2100 vars.dig_server = "$check_address$"
2101 vars.check_ipv4 = "$dig_ipv4$"
2102 vars.check_ipv6 = "$dig_ipv6$"
2105 object CheckCommand "nscp" {
2106 import "ipv4-or-ipv6"
2108 command = [ PluginDir + "/check_nt" ]
2112 value = "$nscp_address$"
2113 description = "Name of the host to check"
2116 value = "$nscp_port$"
2117 description = "Optional port number (default: 1248)"
2120 value = "$nscp_password$"
2121 description = "Password needed for the request"
2124 value = "$nscp_variable$"
2126 description = "Variable to check"
2129 value = "$nscp_params$"
2133 value = "$nscp_warn$"
2134 description = "Threshold which will result in a warning status"
2137 value = "$nscp_crit$"
2138 description = "Threshold which will result in a critical status"
2141 value = "$nscp_timeout$"
2142 description = "Seconds before connection attempt times out"
2146 set_if = "$nscp_showall$"
2147 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2151 vars.nscp_address = "$check_address$"
2152 vars.nscp_port = 12489
2153 vars.nscp_showall = false
2156 object CheckCommand "by_ssh" {
2157 import "ipv4-or-ipv6"
2159 command = [ PluginDir + "/check_by_ssh" ]
2163 value = "$by_ssh_address$"
2164 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2167 value = "$by_ssh_port$"
2168 description = "Port number (default: none)"
2171 var command = macro("$by_ssh_command$")
2172 var arguments = macro("$by_ssh_arguments$")
2174 if (typeof(command) == String && !arguments) {
2178 var escaped_args = []
2179 for (arg in resolve_arguments(command, arguments)) {
2180 escaped_args.add(escape_shell_arg(arg))
2182 return escaped_args.join(" ")
2185 value = "$by_ssh_logname$"
2186 description = "SSH user name on remote host [optional]"
2189 value = "$by_ssh_identity$"
2190 description = "identity of an authorized key [optional]"
2193 set_if = "$by_ssh_quiet$"
2194 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2197 value = "$by_ssh_warn$"
2198 description = "Response time to result in warning status (seconds)"
2201 value = "$by_ssh_crit$"
2202 description = "Response time to result in critical status (seconds)"
2205 value = "$by_ssh_timeout$"
2206 description = "Seconds before connection times out (default: 10)"
2209 value = "$by_ssh_options$"
2210 description = "Provide ssh options (may be repeated)"
2213 set_if = "$by_ssh_ipv4$"
2214 description = "Use IPv4 only"
2217 set_if = "$by_ssh_ipv6$"
2218 description = "Use IPv6 only"
2221 value = "$by_ssh_skip_stderr$"
2222 description = "Ignore all or (if specified) first n lines on STDERR [optional]"
2226 vars.by_ssh_address = "$check_address$"
2227 vars.by_ssh_quiet = false
2228 vars.check_ipv4 = "$by_ssh_ipv4$"
2229 vars.check_ipv6 = "$by_ssh_ipv6$"
2232 object CheckCommand "ups" {
2233 import "ipv4-or-ipv6"
2235 command = [ PluginDir + "/check_ups" ]
2239 value = "$ups_address$"
2240 description = "Address of the upsd server"
2244 value = "$ups_name$"
2245 description = "Name of the UPS to monitor"
2249 value = "$ups_port$"
2250 description = "Port number (default: 3493)"
2253 value = "$ups_variable$"
2254 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2257 value = "$ups_warning$"
2258 description = "Warning threshold for the selected variable"
2261 value = "$ups_critical$"
2262 description = "Critical threshold for the selected variable"
2265 set_if = "$ups_celsius$"
2266 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2269 value = "$ups_timeout$"
2270 description = "Seconds before the connection times out (default: 10)"
2274 vars.ups_address = "$check_address$"
2275 vars.ups_name = "ups"
2278 object CheckCommand "nrpe" {
2279 import "ipv4-or-ipv6"
2281 command = [ PluginDir + "/check_nrpe" ]
2285 value = "$nrpe_address$"
2286 description = "The address of the host running the NRPE daemon"
2289 value = "$nrpe_port$"
2292 value = "$nrpe_command$"
2295 set_if = "$nrpe_no_ssl$"
2296 description = "Do not use SSL"
2299 set_if = "$nrpe_timeout_unknown$"
2300 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2303 value = "$nrpe_timeout$"
2304 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2307 value = "$nrpe_arguments$"
2312 set_if = "$nrpe_ipv4$"
2313 description = "Use IPv4 connection"
2316 set_if = "$nrpe_ipv6$"
2317 description = "Use IPv6 connection"
2320 set_if = "$nrpe_version_2$"
2321 description = "Use this if you want to connect to NRPE v2"
2325 vars.nrpe_address = "$check_address$"
2326 vars.nrpe_no_ssl = false
2327 vars.nrpe_timeout_unknown = false
2328 vars.check_ipv4 = "$nrpe_ipv4$"
2329 vars.check_ipv6 = "$nrpe_ipv6$"
2330 vars.nrpe_version_2 = false
2334 object CheckCommand "hpjd" {
2335 import "ipv4-or-ipv6"
2337 command = [ PluginDir + "/check_hpjd" ]
2341 value = "$hpjd_address$"
2342 description = "Host address"
2345 value = "$hpjd_community$"
2346 description = "The SNMP community name (default=public)"
2349 value = "$hpjd_port$"
2350 description = "Specify the port to check (default=161)"
2354 vars.hpjd_address = "$check_address$"
2357 object CheckCommand "icmp" {
2358 command = [ PluginDir + "/check_icmp" ]
2362 value = "$icmp_address$"
2365 description = "Host address"
2368 value = "$icmp_wrta$,$icmp_wpl$%"
2369 description = "warning threshold (currently 200.000ms,40%)"
2372 value = "$icmp_crta$,$icmp_cpl$%"
2373 description = "critical threshold (currently 500.000ms,80%)"
2376 value = "$icmp_source$"
2377 description = "specify a source IP address or device name"
2380 value = "$icmp_packets$"
2381 description = "number of packets to send (currently 5)"
2384 value = "$icmp_packet_interval$"
2385 description = "max packet interval (currently 80.000ms)"
2388 value = "$icmp_target_interval$"
2389 description = "max target interval (currently 0.000ms)"
2392 value = "$icmp_hosts_alive$"
2393 description = "number of alive hosts required for success"
2396 value = "$icmp_data_bytes$"
2397 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2400 value = "$icmp_timeout$"
2401 description = "timeout value (seconds, currently 10)"
2404 value = "$icmp_ttl$"
2405 description = "TTL on outgoing packets (currently 0)"
2409 vars.icmp_address = "$address$"
2410 vars.icmp_wrta = 100
2412 vars.icmp_crta = 200
2416 object CheckCommand "ldap" {
2417 import "ipv4-or-ipv6"
2419 command = [ PluginDir + "/check_ldap" ]
2423 value = "$ldap_address$"
2424 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2427 value = "$ldap_port$"
2428 description = "Port number (default: 389)"
2431 value = "$ldap_attr$"
2432 description = "ldap attribute to search (default: \"(objectclass=*)\""
2435 value = "$ldap_base$"
2437 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2440 value = "$ldap_bind$"
2441 description = "ldap bind DN (if required)"
2444 value = "$ldap_pass$"
2445 description = "ldap password (if required)"
2448 set_if = "$ldap_starttls$"
2449 description = "use starttls mechanism introduced in protocol version 3"
2452 set_if = "$ldap_ssl$"
2453 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2456 set_if = "$ldap_v2$"
2457 description = "Use LDAP protocol version 2"
2460 set_if = "$ldap_v3$"
2461 description = "Use LDAP protocol version 3"
2464 value = "$ldap_warning$"
2465 description = "Response time to result in warning status (seconds)"
2468 value = "$ldap_critical$"
2469 description = "Response time to result in critical status (seconds)"
2472 value = "$ldap_warning_entries$"
2473 description = "Number of found entries to result in warning status (optional)"
2476 value = "$ldap_critical_entries$"
2477 description = "Number of found entries to result in critical status (optional)"
2480 value = "$ldap_timeout$"
2481 description = "Seconds before connection times out (default: 10)"
2484 set_if = "$ldap_verbose$"
2485 description = "Show details for command-line debugging"
2489 vars.ldap_address = "$check_address$"
2491 vars.ldap_v3 = false
2492 vars.ldap_timeout = 10s
2493 vars.ldap_verbose = false
2496 object CheckCommand "clamd" {
2497 command = [ PluginDir + "/check_clamd" ]
2501 value = "$clamd_address$"
2502 description = "The host's address or unix socket (must be an absolute path)."
2506 value = "$clamd_port$"
2507 description = "Port number (default: none)."
2510 value = "$clamd_expect$"
2511 description = "String to expect in server response (may be repeated)."
2515 set_if = "$clamd_all$"
2516 description = "All expect strings need to occur in server response. Default is any."
2521 set_if = "$clamd_escape_send$"
2522 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2526 value = "$clamd_send$"
2527 description = "String to send to the server."
2532 set_if = "$clamd_escape_quit$"
2533 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2537 value = "$clamd_quit$"
2538 description = "String to send server to initiate a clean close of the connection."
2541 value = "$clamd_refuse$"
2542 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2545 value = "$clamd_mismatch$"
2546 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2549 set_if = "$clamd_jail$"
2550 description = "Hide output from TCP socket."
2553 value = "$clamd_maxbytes$"
2554 description = "Close connection once more than this number of bytes are received."
2557 value = "$clamd_delay$"
2558 description = "Seconds to wait between sending string and polling for response."
2561 value = "$clamd_certificate$"
2562 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."
2565 set_if = "$clamd_ssl$"
2566 description = "Use SSL for the connection."
2569 value = "$clamd_wtime$"
2570 description = "Response time to result in warning status (seconds)."
2573 value = "$clamd_ctime$"
2574 description = "Response time to result in critical status (seconds)."
2577 value = "$clamd_timeout$"
2578 description = "Seconds before connection times out. Defaults to 10."
2581 set_if = "$clamd_ipv4$"
2582 description = "Use IPv4 only"
2585 set_if = "$clamd_ipv6$"
2586 description = "Use IPv6 only"
2590 vars.clamd_ssl = false
2591 vars.clamd_refuse = "crit"
2592 vars.clamd_mismatch = "warn"
2593 vars.clamd_timeout = 10
2594 vars.check_ipv4 = "$clamd_ipv4$"
2595 vars.check_ipv6 = "$clamd_ipv6$"
2598 object CheckCommand "mailq" {
2599 command = [ PluginDir + "/check_mailq" ]
2603 value = "$mailq_warning$"
2604 description = "Min. number of messages in queue to generate warning"
2608 value = "$mailq_critical$"
2609 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2613 value = "$mailq_domain_warning$"
2614 description = "Min. number of messages for same domain in queue to generate warning"
2617 value = "$mailq_domain_critical$"
2618 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2621 value = "$mailq_timeout$"
2622 description = "Plugin timeout in seconds (default = 15)"
2625 value = "$mailq_servertype$"
2626 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2629 set_if = "$mailq_sudo$"
2630 description = "Use sudo for mailq command"
2635 object CheckCommand "pgsql" {
2636 import "ipv4-or-ipv6"
2638 command = [ PluginDir + "/check_pgsql" ]
2642 value = "$pgsql_hostname$"
2643 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2646 value = "$pgsql_port$"
2647 description = "Port number (default: 5432)"
2650 value = "$pgsql_database$"
2651 description = "Database to check (default: template1)"
2654 value = "$pgsql_username$"
2655 description = "Login name of user"
2658 value = "$pgsql_password$"
2659 description = "Password (BIG SECURITY ISSUE)"
2662 value = "$pgsql_options$"
2663 description = "Connection parameters (keyword = value), see below"
2666 value = "$pgsql_warning$"
2667 description = "Response time to result in warning status (seconds)"
2670 value = "$pgsql_critical$"
2671 description = "Response time to result in critical status (seconds)"
2674 value = "$pgsql_timeout$"
2675 description = "Seconds before connection times out (default: 10)"
2678 value = "$pgsql_query$"
2679 description = "SQL query to run. Only first column in first row will be read"
2682 value = "$pgsql_query_warning$"
2683 description = "SQL query value to result in warning status (double)"
2686 value = "$pgsql_query_critical$"
2687 description = "SQL query value to result in critical status (double)"
2691 vars.pgsql_hostname = "$check_address$"
2694 object CheckCommand "mysql" {
2695 import "ipv4-or-ipv6"
2697 command = [ PluginDir + "/check_mysql" ]
2701 value = "$mysql_hostname$"
2702 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2705 value = "$mysql_port$"
2706 description = "Port number (default: 3306)"
2709 set_if = "$mysql_ignore_auth$"
2710 description = "Ignore authentication failure and check for mysql connectivity only"
2713 value = "$mysql_socket$"
2714 description = "Use the specified socket"
2717 value = "$mysql_database$"
2718 description = "Check database with indicated name"
2721 value = "$mysql_file$"
2722 description = "Read from the specified client options file"
2725 value = "$mysql_group$"
2726 description = "Use a client options group"
2729 value = "$mysql_username$"
2730 description = "Connect using the indicated username"
2733 value = "$mysql_password$"
2734 description = "Use the indicated password to authenticate the connection"
2737 set_if = "$mysql_check_slave$"
2738 description = "Check if the slave thread is running properly"
2741 value = "$mysql_warning$"
2742 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2745 value = "$mysql_critical$"
2746 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2749 set_if = "$mysql_ssl$"
2750 description = "Use ssl encryptation"
2753 value = "$mysql_cacert$"
2754 description = "Path to CA signing the cert"
2757 value = "$mysql_cert$"
2758 description = "Path to SSL certificate"
2761 value = "$mysql_key$"
2762 description = "Path to private SSL key"
2765 value = "$mysql_cadir$"
2766 description = "Path to CA directory"
2769 value = "$mysql_ciphers$"
2770 description = "List of valid SSL ciphers"
2774 vars.mysql_hostname = "$check_address$"
2777 object CheckCommand "negate" {
2778 command = [ PluginDir + "/negate" ]
2782 value = "$negate_timeout$"
2783 description = "Seconds before plugin times out (default: 11)"
2786 value = "$negate_timeout_result$"
2787 description = "Custom result on Negate timeouts"
2790 value = "$negate_ok$"
2793 value = "$negate_warning$"
2796 value = "$negate_critical$"
2799 value = "$negate_unknown$"
2802 set_if = "$negate_substitute$"
2803 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2805 "--wrapped-plugin" = {
2807 var command = macro("$negate_command$")
2808 var arguments = macro("$negate_arguments$")
2810 if (typeof(command) == String && !arguments) {
2814 var escaped_args = []
2815 for (arg in resolve_arguments(command, arguments)) {
2816 escaped_args.add(arg)
2818 return escaped_args.join(" ")
2825 vars.negate_timeout_result = "UNKNOWN"
2828 object CheckCommand "file_age" {
2829 command = [ PluginDir + "/check_file_age" ]
2833 value = "$file_age_warning_time$"
2834 description = "File must be no more than this many seconds old (default: 240s)"
2837 value = "$file_age_critical_time$"
2838 description = "File must be no more than this many seconds old (default: 600s)"
2841 value = "$file_age_warning_size$"
2842 description = "File must be at least this many bytes long"
2845 value = "$file_age_critical_size$"
2846 description = "File must be at least this many bytes long (default: 0B)"
2849 set_if = "$file_age_ignoremissing$"
2850 description = "return OK if the file does not exist"
2853 value = "$file_age_file$"
2854 description = "File to monitor"
2858 vars.file_age_ignoremissing = false
2861 object CheckCommand "smart" {
2862 command = [ PluginDir + "/check_ide_smart" ]
2866 value = "$smart_device$"
2867 description = "Name of a local hard drive to monitor"
2873 object CheckCommand "breeze" {
2874 import "ipv4-or-ipv6"
2876 command = [ PluginDir + "/check_breeze" ]
2880 value = "$breeze_hostname$"
2881 description = "Name or IP address of host to check"
2885 value = "$breeze_community$"
2886 description = "SNMPv1 community (default public)"
2889 value = "$breeze_warning$"
2890 description = "Percentage strength below which a WARNING status will result"
2894 value = "$breeze_critical$"
2895 description = "Percentage strength below which a CRITICAL status will result"
2900 vars.breeze_hostname = "$check_address$"
2901 vars.breeze_warning = "50"
2902 vars.breeze_critical = "20"
2905 object CheckCommand "flexlm" {
2906 command = [ PluginDir + "/check_flexlm" ]
2910 value = "$flexlm_licensefile$"
2911 description = "Name of license file (usually license.dat)"
2915 value = "$flexlm_timeout$"
2916 description = "Plugin time out in seconds (default = 15)"
2921 object CheckCommand "game" {
2922 import "ipv4-or-ipv6"
2924 command = [ PluginDir + "/check_game" ]
2928 value = "$game_port$"
2929 description = "Port to connect to"
2932 value = "$game_timeout$"
2933 description = "Seconds before connection times out (default: 10)"
2936 value = "$game_gamefield$"
2937 description = "Field number in raw qstat output that contains game name"
2940 value = "$game_mapfield$"
2941 description = "Field number in raw qstat output that contains map name"
2944 value = "$game_pingfield$"
2945 description = "Field number in raw qstat output that contains ping time"
2948 value = "$game_gametime$"
2949 description = "Field number in raw qstat output that contains game time"
2952 value = "$game_hostname$"
2953 description = "Name of the host running the game"
2956 value = "$game_game$"
2957 description = "Name of the game"
2962 value = "$game_ipaddress$"
2963 description = "Ipaddress of the game server to query"
2970 object CheckCommand "mysql_query" {
2971 import "ipv4-or-ipv6"
2973 command = [ PluginDir + "/check_mysql_query" ]
2977 value = "$mysql_query_hostname$"
2978 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2981 value = "$mysql_query_port$"
2982 description = "Port number (default: 3306)"
2985 value = "$mysql_query_username$"
2986 description = "Username to login with"
2989 value = "$mysql_query_password$"
2990 description = "Password to login with"
2993 value = "$mysql_query_database$"
2994 description = "Database to check"
2997 value = "$mysql_query_file$"
2998 description = "Read from the specified client options file"
3001 value = "$mysql_query_group$"
3002 description = "Use a client options group"
3005 value = "$mysql_query_execute$"
3006 description = "SQL query to run. Only first column in first row will be read"
3009 value = "$mysql_query_warning$"
3010 description = "Warning range (format: start:end). Alert if outside this range"
3013 value = "$mysql_query_critical$"
3014 description = "Critical range"
3018 vars.mysql_query_hostname = "$check_address$"
3021 object CheckCommand "radius" {
3022 import "ipv4-or-ipv6"
3025 PluginDir + "/check_radius",
3030 value = "$radius_address$",
3031 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3034 value = "$radius_config_file$",
3035 description = "Configuration file"
3038 value = "$radius_username$",
3039 description = "The user to authenticate"
3042 value = "$radius_password$",
3043 description = "Password for authentication"
3046 value = "$radius_port$",
3047 description = "Port number (default: 1645)"
3050 value = "$radius_nas_id$",
3051 description = "NAS identifier"
3054 value = "$radius_nas_address$",
3055 description = "NAS IP Address"
3058 value = "$radius_expect$",
3059 description = "Response string to expect from the server"
3062 value = "$radius_retries$",
3063 description = "Number of times to retry a failed connection"
3066 value = "$radius_timeout$",
3067 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3071 vars.radius_address = "$check_address$"
3074 object CheckCommand "nscp_api" {
3075 import "ipv4-or-ipv6"
3077 command = [ PluginDir + "/check_nscp_api" ]
3081 value = "$nscp_api_host$"
3082 description = "NSCP API host address"
3086 value = "$nscp_api_port$"
3087 description = "NSCP API host port. Defaults to 8443."
3090 value = "$nscp_api_password$"
3091 description = "NSCP API password"
3094 value = "$nscp_api_query$"
3095 description = "NSCPI API Query endpoint to use"
3098 value = "$nscp_api_arguments$"
3099 description = "NSCP API Query arguments"
3104 vars.nscp_api_host = "$check_address$"
3107 object CheckCommand "rpc" {
3108 import "ipv4-or-ipv6"
3110 command = [ PluginDir + "/check_rpc" ]
3114 value = "$rpc_address$"
3115 description = "RPC host address"
3119 value = "$rpc_command$"
3120 description = "Programm name (or number)"
3124 value = "$rpc_port$"
3125 description = "RPC port"
3128 value = "$rpc_version$"
3129 description = "The version to check"
3132 set_if = "$rpc_udp$"
3133 description = "Test UDP"
3136 set_if = "$rpc_tcp$"
3137 description = "Test TCP"
3140 set_if = "$rpc_verbose$"
3141 description = "Show verbose details"
3145 vars.rpc_address = "$check_address$"