1 /******************************************************************************
3 * Copyright (C) 2012-2017 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 "dummy" {
180 command = [ PluginDir + "/check_dummy" ]
184 value = "$dummy_state$"
187 description = "The state. Can be one of 0 (ok), 1 (warning), 2 (critical) and 3 (unknown). Defaults to 0."
190 value = "$dummy_text$"
193 description = "Plugin output. Defaults to Check was successful."
198 vars.dummy_text = "Check was successful."
201 object CheckCommand "passive" {
205 vars.dummy_text = "No Passive Check Result Received."
208 object CheckCommand "tcp" {
209 import "ipv4-or-ipv6"
211 command = [ PluginDir + "/check_tcp" ]
215 value = "$tcp_address$"
216 description = "Host name, IP Address, or unix socket (must be an absolute path)."
220 description = "The TCP port number."
223 value = "$tcp_expect$"
224 description = "String to expect in server response (may be repeated)."
228 description = "All expect strings need to occur in server response. Defaults to false."
233 set_if = "$tcp_escape_send$"
234 description = "Enable usage of \n, \r, \t or \\ in send string."
239 description = "String to send to the server."
244 set_if = "$tcp_escape_quit$"
245 description = "Enable usage of \n, \r, \t or \\ in quit string."
250 description = "String to send server to initiate a clean close of the connection."
253 value = "$tcp_refuse$"
254 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
257 value = "$tcp_mismatch$"
258 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
261 set_if = "$tcp_jail$"
262 description = "Hide output from TCP socket."
265 value = "$tcp_maxbytes$"
266 description = "Close connection once more than this number of bytes are received."
269 value = "$tcp_delay$"
270 description = "Seconds to wait between sending string and polling for response."
273 value = "$tcp_certificate$"
274 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."
278 description = "Use SSL for the connection."
281 value = "$tcp_wtime$"
282 description = "Response time to result in warning status (seconds)."
285 value = "$tcp_ctime$"
286 description = "Response time to result in critical status (seconds)."
289 value = "$tcp_timeout$"
290 description = "Seconds before connection times out. Defaults to 10."
293 set_if = "$tcp_ipv4$"
294 description = "Use IPv4 connection"
297 set_if = "$tcp_ipv6$"
298 description = "Use IPv6 connection"
302 vars.tcp_address = "$check_address$"
304 vars.tcp_refuse = "crit"
305 vars.tcp_mismatch = "warn"
306 vars.tcp_timeout = 10
307 vars.check_ipv4 = "$tcp_ipv4$"
308 vars.check_ipv6 = "$tcp_ipv6$"
311 object CheckCommand "ssl" {
312 import "ipv4-or-ipv6"
314 command = [ PluginDir + "/check_tcp" ]
318 value = "$ssl_address$"
319 description = "Host address"
323 description ="TCP port (default: 443)"
326 description = "Use SSL for the connection"
329 value = "$ssl_timeout$"
330 description = "Seconds before connection times out (default: 10)"
333 var days_warn = macro("$ssl_cert_valid_days_warn$")
334 var days_critical = macro("$ssl_cert_valid_days_critical$")
337 return days_warn + "," + days_critical
345 description = "Enable SSL/TLS hostname extension support (SNI)"
349 vars.ssl_address = "$check_address$"
351 vars.ssl_cert_valid_days_warn = false
352 vars.ssl_cert_valid_days_critical = false
353 vars.ssl_sni = "$ssl_address$"
357 object CheckCommand "udp" {
358 import "ipv4-or-ipv6"
361 PluginDir + "/check_udp",
362 "-H", "$udp_address$",
370 description = "String to send to the server"
373 value = "$udp_expect$"
375 description = " String to expect in server response"
379 description = "String to send server to initiate a clean close of the connection"
382 set_if = "$udp_ipv4$"
383 description = "Use IPv4 connection"
386 set_if = "$udp_ipv6$"
387 description = "Use IPv6 connection"
391 vars.udp_address = "$check_address$"
392 vars.check_ipv4 = "$udp_ipv4$"
393 vars.check_ipv6 = "$udp_ipv6$"
396 object CheckCommand "http" {
397 import "ipv4-or-ipv6"
399 command = [ PluginDir + "/check_http" ]
403 value = "$http_vhost$"
404 description = "Host name argument for servers using host headers (virtual host)"
407 value = "$http_address$"
408 description = "IP address or name (use numeric address if possible to bypass DNS lookup)"
412 description = "URL to GET or POST (default: /)"
415 value = "$http_port$"
416 description = "Port number (default: 80)"
419 set_if = "$http_ssl$"
420 description = "Connect via SSL"
423 set_if = "$http_ssl_force_tlsv1$"
424 description = "Connect via SSL version TLSv1"
427 set_if = "$http_ssl_force_tlsv1_1$"
428 description = "Connect via SSL version TLSv1.1"
431 set_if = "$http_ssl_force_tlsv1_2$"
432 description = "Connect via SSL version TLSv1.2"
435 set_if = "$http_ssl_force_sslv2$"
436 description = "Connect via SSL version SSLv2"
439 set_if = "$http_ssl_force_sslv3$"
440 description = "Connect via SSL version SSLv3"
443 set_if = "$http_ssl_force_tlsv1_or_higher$"
444 description = "Connect via SSL version TLSv1 and newer"
447 set_if = "$http_ssl_force_tlsv1_1_or_higher$"
448 description = "Connect via SSL version TLSv1.1 and newer"
451 set_if = "$http_ssl_force_tlsv1_2_or_higher$"
452 description = "Connect via SSL version TLSv1.2 and newer"
455 set_if = "$http_ssl_force_sslv2_or_higher$"
456 description = "Connect via SSL version SSLv2 and newer"
459 set_if = "$http_ssl_force_sslv3_or_higher$"
460 description = "Connect via SSL version SSLv3 and newer"
463 set_if = "$http_sni$"
464 description = "Enable SSL/TLS hostname extension support (SNI)"
467 value = "$http_certificate$"
468 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."
471 value = "$http_clientcert$"
472 description = "Name of file contains the client certificate (PEM format)"
475 value = "$http_privatekey$"
476 description = "Name of file contains the private key (PEM format)"
479 value = "$http_auth_pair$"
480 description = "Username:password on sites with basic authentication"
483 set_if = "$http_ignore_body$"
484 description = "Don't wait for document body: stop reading after headers"
487 value = "$http_warn_time$"
488 description = "Response time to result in warning status (seconds)"
491 value = "$http_critical_time$"
492 description = "Response time to result in critical status (seconds)"
495 value = "$http_expect$"
496 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.)"
499 value = "$http_headerstring$"
500 description = "String to expect in the response headers"
503 value = "$http_string$"
504 description = "String to expect in the content"
507 value = "$http_post$"
508 description = "URL encoded http POST data"
511 value = "$http_method$"
512 description = "Set http method (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"
515 value = "$http_maxage$"
516 description = "Warn if document is more than seconds old"
519 value = "$http_contenttype$"
520 description = "Specify Content-Type header when POSTing"
523 set_if = "$http_linespan$"
524 description = "Allow regex to span newline"
528 value = "$http_expect_body_regex$"
529 description = "Search page for regex"
533 value = "$http_expect_body_eregi$"
534 description = "Search page for case-insensitive regex"
538 set_if = "$http_invertregex$"
539 description = "Return CRITICAL if found, OK if not"
542 value = "$http_proxy_auth_pair$"
543 description = "Username:password on proxy-servers with basic authentication"
546 value = "$http_useragent$"
547 description = "String to be sent in http header as User Agent"
550 value = "$http_header$"
551 description = "Any other tags to be sent in http header"
554 set_if = "$http_extendedperfdata$"
555 description = "Print additional perfdata"
558 value = "$http_onredirect$"
559 description = "How to handle redirect pages"
562 value = "$http_pagesize$"
563 description = "Minim page size required:Maximum page size required"
566 value = "$http_timeout$"
567 description = "Seconds before connection times out"
570 set_if = "$http_ipv4$"
571 description = "Use IPv4 connection"
574 set_if = "$http_ipv6$"
575 description = "Use IPv6 connection"
578 set_if = "$http_link$"
579 description = "Wrap output in HTML link"
582 set_if = "$http_verbose$"
583 description = "Show details for command-line debugging"
587 vars.http_address = "$check_address$"
588 vars.http_ssl = false
589 vars.http_sni = false
590 vars.http_linespan = false
591 vars.http_invertregex = false
592 vars.check_ipv4 = "$http_ipv4$"
593 vars.check_ipv6 = "$http_ipv6$"
594 vars.http_link = false
595 vars.http_verbose = false
598 object CheckCommand "ftp" {
599 import "ipv4-or-ipv6"
601 command = [ PluginDir + "/check_ftp" ]
605 value = "$ftp_address$"
606 description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set."
610 description = "The FTP port number. Defaults to none"
613 value = "$ftp_expect$"
614 description = "String to expect in server response (may be repeated)."
618 description = "All expect strings need to occur in server response. Default is any."
623 set_if = "$ftp_escape_send$"
624 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
629 description = "String to send to the server."
634 set_if = "$ftp_escape_quit$"
635 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
640 description = "String to send server to initiate a clean close of the connection."
643 value = "$ftp_refuse$"
644 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
647 value = "$ftp_mismatch$"
648 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
651 set_if = "$ftp_jail$"
652 description = "Hide output from TCP socket."
655 value = "$ftp_maxbytes$"
656 description = "Close connection once more than this number of bytes are received."
659 value = "$ftp_delay$"
660 description = "Seconds to wait between sending string and polling for response."
663 value = "$ftp_certificate$"
664 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."
668 description = "Use SSL for the connection."
671 value = "$ftp_wtime$"
672 description = "Response time to result in warning status (seconds)."
675 value = "$ftp_ctime$"
676 description = "Response time to result in critical status (seconds)."
679 value = "$ftp_timeout$"
680 description = "Seconds before connection times out. Defaults to 10."
683 set_if = "$ftp_ipv4$"
684 description = "Use IPv4 connection"
687 set_if = "$ftp_ipv6$"
688 description = "Use IPv6 connection"
692 vars.ftp_address = "$check_address$"
694 vars.ftp_refuse = "crit"
695 vars.ftp_mismatch = "warn"
696 vars.ftp_timeout = 10
697 vars.check_ipv4 = "$ftp_ipv4$"
698 vars.check_ipv6 = "$ftp_ipv6$"
701 object CheckCommand "smtp" {
702 import "ipv4-or-ipv6"
704 command = [ PluginDir + "/check_smtp" ]
708 value = "$smtp_address$"
709 description = "Host name, IP Address, or unix socket (must be an absolute path)"
712 value = "$smtp_port$"
713 description = "Port number (default: 25)"
716 value = "$smtp_mail_from$"
717 description = "FROM-address to include in MAIL command, required by Exchange 2000"
720 value = "$smtp_expect$"
721 description = "String to expect in first line of server response (default: '220')"
724 value = "$smtp_command$"
725 description = "SMTP command"
728 value = "$smtp_response$"
729 description = "Expected response to command (may be used repeatedly)"
732 value = "$smtp_helo_fqdn$"
733 description = "FQDN used for HELO"
736 value = "$smtp_certificate_age$"
737 description = "Minimum number of days a certificate has to be valid"
740 set_if = "$smtp_starttls$"
741 description = "Use STARTTLS for the connection."
744 value = "$smtp_authtype$"
745 description = "SMTP AUTH type to check (default none, only LOGIN supported)"
748 value = "$smtp_authuser$"
749 description = "SMTP AUTH username"
752 value = "$smtp_authpass$"
753 description = "SMTP AUTH password"
756 value = "$smtp_ignore_quit$"
757 description = "Ignore failure when sending QUIT command to server"
760 value = "$smtp_warning$"
761 description = "Response time to result in warning status (seconds)"
764 value = "$smtp_critical$"
765 description = "Response time to result in critical status (seconds)"
768 value = "$smtp_timeout$"
769 description = "Seconds before connection times out (default: 10)"
772 set_if = "$smtp_ipv4$"
773 description = "Use IPv4 connection"
776 set_if = "$smtp_ipv6$"
777 description = "Use IPv6 connection"
781 vars.smtp_address = "$check_address$"
782 vars.check_ipv4 = "$smtp_ipv4$"
783 vars.check_ipv6 = "$smtp_ipv6$"
786 object CheckCommand "ssmtp" {
787 import "ipv4-or-ipv6"
789 command = [ PluginDir + "/check_ssmtp" ]
793 value = "$ssmtp_address$"
794 description = "Host name, IP Address, or unix socket (must be an absolute path)"
797 value = "$ssmtp_port$"
798 description = "Port number (default: none)"
801 value = "$ssmtp_escape$"
802 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"
805 value = "$ssmtp_send$"
806 description = "String to send to the server"
809 value = "$ssmtp_expect$"
810 description = "String to expect in server response (may be repeated)"
813 set_if = "$ssmtp_all$"
814 description = "All expect strings need to occur in server response. Default is any."
817 value = "$ssmtp_quit$"
818 description = "String to send server to initiate a clean close of the connection"
821 value = "$ssmtp_refuse$"
822 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
825 value = "$ssmtp_mismatch$"
826 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
829 set_if = "$ssmtp_jail$"
830 description = "Hide output from TCP socket."
833 value = "$ssmtp_maxbytes$"
834 description = "Close connection once more than this number of bytes are received"
837 value = "$ssmtp_delay$"
838 description = "Seconds to wait between sending string and polling for response"
841 value = "$ssmtp_certificate_age$"
842 description = "Minimum number of days a certificate has to be valid"
845 set_if = "$ssmtp_ssl$"
846 description = "Use SSL for the connection."
849 value = "$ssmtp_warning$"
850 description = "Response time to result in warning status (seconds)"
853 value = "$ssmtp_critical$"
854 description = "Response time to result in critical status (seconds)"
857 value = "$ssmtp_timeout$"
858 description = "Seconds before connection times out (default: 10)"
861 set_if = "$ssmtp_ipv4$"
862 description = "Use IPv4 connection"
865 set_if = "$ssmtp_ipv6$"
866 description = "Use IPv6 connection"
870 vars.ssmtp_address = "$check_address$"
871 vars.check_ipv4 = "$ssmtp_ipv4$"
872 vars.check_ipv6 = "$ssmtp_ipv6$"
875 object CheckCommand "imap" {
876 import "ipv4-or-ipv6"
878 command = [ PluginDir + "/check_imap" ]
882 value = "$imap_address$"
883 description = "Host name, IP Address, or unix socket (must be an absolute path)"
886 value = "$imap_port$"
887 description = "Port number (default: none)"
890 value = "$imap_escape$"
891 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"
894 value = "$imap_send$"
895 description = "String to send to the server"
898 value = "$imap_expect$"
899 description = "String to expect in server response (may be repeated)"
902 set_if = "$imap_all$"
903 description = "All expect strings need to occur in server response. Default is any."
906 value = "$imap_quit$"
907 description = "String to send server to initiate a clean close of the connection"
910 value = "$imap_refuse$"
911 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
914 value = "$imap_mismatch$"
915 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
918 set_if = "$imap_jail$"
919 description = "Hide output from TCP socket."
922 value = "$imap_maxbytes$"
923 description = "Close connection once more than this number of bytes are received"
926 value = "$imap_delay$"
927 description = "Seconds to wait between sending string and polling for response"
930 value = "$imap_certificate_age$"
931 description = "Minimum number of days a certificate has to be valid"
934 set_if = "$imap_ssl$"
935 description = "Use SSL for the connection."
938 value = "$imap_warning$"
939 description = "Response time to result in warning status (seconds)"
942 value = "$imap_critical$"
943 description = "Response time to result in critical status (seconds)"
946 value = "$imap_timeout$"
947 description = "Seconds before connection times out (default: 10)"
950 set_if = "$imap_ipv4$"
951 description = "Use IPv4 connection"
954 set_if = "$imap_ipv6$"
955 description = "Use IPv6 connection"
959 vars.imap_address = "$check_address$"
960 vars.check_ipv4 = "$imap_ipv4$"
961 vars.check_ipv6 = "$imap_ipv6$"
964 object CheckCommand "simap" {
965 import "ipv4-or-ipv6"
967 command = [ PluginDir + "/check_simap" ]
971 value = "$simap_address$"
972 description = "Host name, IP Address, or unix socket (must be an absolute path)"
975 value = "$simap_port$"
976 description = "Port number (default: none)"
979 value = "$simap_escape$"
980 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"
983 value = "$simap_send$"
984 description = "String to send to the server"
987 value = "$simap_expect$"
988 description = "String to expect in server response (may be repeated)"
991 set_if = "$simap_all$"
992 description = "All expect strings need to occur in server response. Default is any."
995 value = "$simap_quit$"
996 description = "String to send server to initiate a clean close of the connection"
999 value = "$simap_refuse$"
1000 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1003 value = "$simap_mismatch$"
1004 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1007 set_if = "$simap_jail$"
1008 description = "Hide output from TCP socket."
1011 value = "$simap_maxbytes$"
1012 description = "Close connection once more than this number of bytes are received"
1015 value = "$simap_delay$"
1016 description = "Seconds to wait between sending string and polling for response"
1019 value = "$simap_certificate_age$"
1020 description = "Minimum number of days a certificate has to be valid"
1023 set_if = "$simap_ssl$"
1024 description = "Use SSL for the connection."
1027 value = "$simap_warning$"
1028 description = "Response time to result in warning status (seconds)"
1031 value = "$simap_critical$"
1032 description = "Response time to result in critical status (seconds)"
1035 value = "$simap_timeout$"
1036 description = "Seconds before connection times out (default: 10)"
1039 set_if = "$simap_ipv4$"
1040 description = "Use IPv4 connection"
1043 set_if = "$simap_ipv6$"
1044 description = "Use IPv6 connection"
1048 vars.simap_address = "$check_address$"
1049 vars.check_ipv4 = "$simap_ipv4$"
1050 vars.check_ipv6 = "$simap_ipv6$"
1053 object CheckCommand "pop" {
1054 import "ipv4-or-ipv6"
1056 command = [ PluginDir + "/check_pop" ]
1060 value = "$pop_address$"
1061 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1064 value = "$pop_port$"
1065 description = "Port number (default: none)"
1068 value = "$pop_escape$"
1069 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"
1072 value = "$pop_send$"
1073 description = "String to send to the server"
1076 value = "$pop_expect$"
1077 description = "String to expect in server response (may be repeated)"
1080 set_if = "$pop_all$"
1081 description = "All expect strings need to occur in server response. Default is any."
1084 value = "$pop_quit$"
1085 description = "String to send server to initiate a clean close of the connection"
1088 value = "$pop_refuse$"
1089 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1092 value = "$pop_mismatch$"
1093 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1096 set_if = "$pop_jail$"
1097 description = "Hide output from TCP socket."
1100 value = "$pop_maxbytes$"
1101 description = "Close connection once more than this number of bytes are received"
1104 value = "$pop_delay$"
1105 description = "Seconds to wait between sending string and polling for response"
1108 value = "$pop_certificate_age$"
1109 description = "Minimum number of days a certificate has to be valid"
1112 set_if = "$pop_ssl$"
1113 description = "Use SSL for the connection."
1116 value = "$pop_warning$"
1117 description = "Response time to result in warning status (seconds)"
1120 value = "$pop_critical$"
1121 description = "Response time to result in critical status (seconds)"
1124 value = "$pop_timeout$"
1125 description = "Seconds before connection times out (default: 10)"
1128 set_if = "$pop_ipv4$"
1129 description = "Use IPv4 connection"
1132 set_if = "$pop_ipv6$"
1133 description = "Use IPv6 connection"
1137 vars.pop_address = "$check_address$"
1138 vars.check_ipv4 = "$pop_ipv4$"
1139 vars.check_ipv6 = "$pop_ipv6$"
1142 object CheckCommand "spop" {
1143 import "ipv4-or-ipv6"
1145 command = [ PluginDir + "/check_spop" ]
1149 value = "$spop_address$"
1150 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1153 value = "$spop_port$"
1154 description = "Port number (default: none)"
1157 value = "$spop_escape$"
1158 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"
1161 value = "$spop_send$"
1162 description = "String to send to the server"
1165 value = "$spop_expect$"
1166 description = "String to expect in server response (may be repeated)"
1169 set_if = "$spop_all$"
1170 description = "All expect strings need to occur in server response. Default is any."
1173 value = "$spop_quit$"
1174 description = "String to send server to initiate a clean close of the connection"
1177 value = "$spop_refuse$"
1178 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1181 value = "$spop_mismatch$"
1182 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1185 set_if = "$spop_jail$"
1186 description = "Hide output from TCP socket."
1189 value = "$spop_maxbytes$"
1190 description = "Close connection once more than this number of bytes are received"
1193 value = "$spop_delay$"
1194 description = "Seconds to wait between sending string and polling for response"
1197 value = "$spop_certificate_age$"
1198 description = "Minimum number of days a certificate has to be valid"
1201 set_if = "$spop_ssl$"
1202 description = "Use SSL for the connection."
1205 value = "$spop_warning$"
1206 description = "Response time to result in warning status (seconds)"
1209 value = "$spop_critical$"
1210 description = "Response time to result in critical status (seconds)"
1213 value = "$spop_timeout$"
1214 description = "Seconds before connection times out (default: 10)"
1217 set_if = "$spop_ipv4$"
1218 description = "Use IPv4 connection"
1221 set_if = "$spop_ipv6$"
1222 description = "Use IPv6 connection"
1226 vars.spop_address = "$check_address$"
1227 vars.check_ipv4 = "$spop_ipv4$"
1228 vars.check_ipv6 = "$spop_ipv6$"
1231 object CheckCommand "ntp_time" {
1232 import "ipv4-or-ipv6"
1234 command = [ PluginDir + "/check_ntp_time" ]
1238 value = "$ntp_address$"
1239 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1242 value = "$ntp_port$"
1243 description = "Port number (default: 123)"
1246 set_if = "$ntp_quiet$"
1247 description = "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
1250 value = "$ntp_warning$"
1251 description = "Offset to result in warning status (seconds)"
1254 value = "$ntp_critical$"
1255 description = "Offset to result in critical status (seconds)"
1258 value = "$ntp_timeoffset$"
1259 description = "Expected offset of the ntp server relative to local server (seconds)"
1262 value = "$ntp_timeout$"
1263 description = "Seconds before connection times out (default: 10)"
1266 set_if = "$ntp_ipv4$"
1267 description = "Use IPv4 connection"
1270 set_if = "$ntp_ipv6$"
1271 description = "Use IPv6 connection"
1275 vars.ntp_address = "$check_address$"
1276 vars.check_ipv4 = "$ntp_ipv4$"
1277 vars.check_ipv6 = "$ntp_ipv6$"
1280 object CheckCommand "ntp_peer" {
1281 import "ipv4-or-ipv6"
1283 command = [ PluginDir + "/check_ntp_peer" ]
1287 value = "$ntp_address$"
1288 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1291 value = "$ntp_port$"
1292 description = "Port number (default: 123)"
1295 value = "$ntp_warning$"
1296 description = "Offset to result in warning status (seconds)"
1299 value = "$ntp_critical$"
1300 description = "Offset to result in critical status (seconds)"
1303 value = "$ntp_wstratum$"
1304 description = "Warning threshold for stratum of server's synchronization peer"
1307 value = "$ntp_cstratum$"
1308 description = "Critical threshold for stratum of server's synchronization peer"
1311 value = "$ntp_wjitter$"
1312 description = "Warning threshold for jitter"
1315 value = "$ntp_cjitter$"
1316 description = "Critical threshold for jitter"
1319 value = "$ntp_wsource$"
1320 description = "Warning threshold for number of usable time sources (truechimers)"
1323 value = "$ntp_csource$"
1324 description = "Critical threshold for number of usable time sources (truechimers)"
1327 value = "$ntp_timeout$"
1328 description = "Seconds before connection times out (default: 10)"
1331 set_if = "$ntp_ipv4$"
1332 description = "Use IPv4 connection"
1335 set_if = "$ntp_ipv6$"
1336 description = "Use IPv6 connection"
1340 vars.ntp_address = "$check_address$"
1341 vars.check_ipv4 = "$ntp_ipv4$"
1342 vars.check_ipv6 = "$ntp_ipv6$"
1345 object CheckCommand "ssh" {
1346 import "ipv4-or-ipv6"
1348 command = [ PluginDir + "/check_ssh" ]
1352 value = "$ssh_port$"
1353 description = "Port number (default: 22)"
1356 value = "$ssh_timeout$"
1357 description = "Seconds before connection times out (default: 10)"
1360 value = "$ssh_address$"
1365 set_if = "$ssh_ipv4$"
1366 description = "Use IPv4 connection"
1369 set_if = "$ssh_ipv6$"
1370 description = "Use IPv6 connection"
1374 vars.ssh_address = "$check_address$"
1375 vars.check_ipv4 = "$ssh_ipv4$"
1376 vars.check_ipv6 = "$ssh_ipv6$"
1379 object CheckCommand "disk" {
1380 command = [ PluginDir + "/check_disk" ]
1384 value = "$disk_wfree$"
1385 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"
1390 value = "$disk_cfree$"
1391 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"
1396 value = "$disk_inode_wfree$"
1397 description = "Exit with WARNING status if less than PERCENT of inode space is free"
1400 value = "$disk_inode_cfree$"
1401 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
1404 value = "$disk_partitions$"
1405 description = "Path or partition (may be repeated)"
1411 value = "$disk_partition$"
1415 value = "$disk_partitions_excluded$"
1416 description = "Ignore device (only works if -p unspecified)"
1420 value = "$disk_partition_excluded$"
1423 set_if = "$disk_clear$"
1424 description = "Clear thresholds"
1427 set_if = "$disk_exact_match$"
1428 description = "For paths or partitions specified with -p, only check for exact paths"
1431 set_if = "$disk_errors_only$"
1432 description = "Display only devices/mountpoints with errors"
1435 set_if = "$disk_ignore_reserved$"
1436 description = "Don't account root-reserved blocks into freespace in perfdata"
1439 value = "$disk_group$"
1440 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
1443 set_if = "$disk_kilobytes$"
1444 description = "Same as --units kB"
1447 set_if = "$disk_local$"
1448 description = " Only check local filesystems"
1451 set_if = "$disk_stat_remote_fs$"
1452 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)"
1455 set_if = "$disk_mountpoint$"
1456 description = "Display the mountpoint instead of the partition"
1459 set_if = "$disk_megabytes$"
1460 description = "Same as --units MB"
1463 set_if = "$disk_all$"
1464 description = "Explicitly select all paths. This is equivalent to -R .*"
1467 value = "$disk_eregi_path$"
1468 description = "Case insensitive regular expression for path/partition (may be repeated)"
1472 value = "$disk_ereg_path$"
1473 description = "Regular expression for path or partition (may be repeated)"
1477 value = "$disk_ignore_eregi_path$"
1478 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
1483 value = "$disk_ignore_ereg_path$"
1484 description = "Regular expression to ignore selected path or partition (may be repeated)"
1489 value = "$disk_timeout$"
1490 description = "Seconds before connection times out (default: 10)"
1493 value = "$disk_units$"
1494 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
1497 value = "$disk_exclude_type$"
1498 description = "Ignore all filesystems of indicated type (may be repeated)"
1503 vars.disk_wfree = "20%"
1504 vars.disk_cfree = "10%"
1505 vars.disk_megabytes = true
1506 vars.disk_exclude_type = [ "none", "tmpfs", "sysfs", "proc", "configfs", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fdescfs" ]
1509 object CheckCommand "disk_smb" {
1510 command = [ PluginDir + "/check_disk_smb" ]
1514 value = "$disk_smb_hostname$"
1515 description = "NetBIOS name of the server."
1518 value = "$disk_smb_share$"
1519 description = "Share name to be tested."
1522 value = "$disk_smb_workgroup$"
1523 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1526 value = "$disk_smb_address$"
1527 description = "IP-address of HOST (only necessary if HOST is in another network)."
1530 value = "$disk_smb_username$"
1531 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1534 value = "$disk_smb_password$"
1535 description = "Password to log in to server. (Defaults to an empty password if omitted)."
1538 value = "$disk_smb_wused$"
1539 description = "Percent of used space at which a warning will be generated (Default: 85%)."
1542 value = "$disk_smb_cused$"
1543 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1546 value = "$disk_smb_port$"
1547 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1551 vars.disk_smb_wused = "85%"
1552 vars.disk_smb_cused = "95%"
1555 object CheckCommand "users" {
1556 command = [ PluginDir + "/check_users" ]
1560 value = "$users_wgreater$"
1561 description = "Set WARNING status if more than INTEGER users are logged in"
1564 value = "$users_cgreater$"
1565 description = "Set CRITICAL status if more than INTEGER users are logged in"
1569 vars.users_wgreater = 20
1570 vars.users_cgreater = 50
1573 object CheckCommand "procs" {
1574 command = [ PluginDir + "/check_procs" ]
1578 value = "$procs_warning$"
1579 description = "Generate warning state if metric is outside this range"
1582 value = "$procs_critical$"
1583 description = "Generate critical state if metric is outside this range"
1586 value = "$procs_metric$"
1587 description = "Check thresholds against metric"
1590 value = "$procs_timeout$"
1591 description = "Seconds before plugin times out"
1594 set_if = "$procs_traditional$"
1595 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1598 value = "$procs_state$"
1599 description = "Only scan for processes that have one or more of the status flags you specify"
1602 value = "$procs_ppid$"
1603 description = "Only scan for children of the parent process ID indicated"
1606 value = "$procs_vsz$"
1607 description = "Only scan for processes with VSZ higher than indicated"
1610 value = "$procs_rss$"
1611 description = "Only scan for processes with RSS higher than indicated"
1614 value = "$procs_pcpu$"
1615 description = "Only scan for processes with PCPU higher than indicated"
1618 value = "$procs_user$"
1619 description = "Only scan for processes with user name or ID indicated"
1622 value = "$procs_argument$"
1623 description = "Only scan for processes with args that contain STRING"
1625 "--ereg-argument-array" = {
1626 value = "$procs_argument_regex$"
1627 description = "Only scan for processes with args that contain the regex STRING"
1630 value = "$procs_command$"
1631 description = "Only scan for exact matches of COMMAND (without path)"
1634 set_if = "$procs_nokthreads$"
1635 description = "Only scan for non kernel threads"
1639 vars.procs_traditional = false
1640 vars.procs_nokthreads = false
1641 vars.procs_warning = 250
1642 vars.procs_critical = 400
1645 object CheckCommand "swap" {
1646 command = [ PluginDir + "/check_swap" ]
1650 if (macro("$swap_integer$")) {
1651 return macro("$swap_wfree$")
1653 return macro("$swap_wfree$%")
1657 if (macro("$swap_integer$")) {
1658 return macro("$swap_cfree$")
1660 return macro("$swap_cfree$%")
1664 set_if = "$swap_allswaps$"
1665 description = "Conduct comparisons for all swap partitions, one by one"
1668 value = "$swap_noswap$"
1669 description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1673 vars.swap_wfree = 50
1674 vars.swap_cfree = 25
1675 vars.swap_integer = false
1676 vars.swap_allswaps = false
1679 object CheckCommand "load" {
1680 command = [ PluginDir + "/check_load" ]
1684 value = "$load_wload1$,$load_wload5$,$load_wload15$"
1685 description = "Exit with WARNING status if load average exceeds WLOADn"
1688 value = "$load_cload1$,$load_cload5$,$load_cload15$"
1689 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1692 set_if = "$load_percpu$"
1693 description = "Divide the load averages by the number of CPUs (when possible)"
1697 vars.load_wload1 = 5.0
1698 vars.load_wload5 = 4.0
1699 vars.load_wload15 = 3.0
1701 vars.load_cload1 = 10.0
1702 vars.load_cload5 = 6.0
1703 vars.load_cload15 = 4.0
1705 vars.load_percpu = false
1708 object CheckCommand "snmp" {
1709 command = [ PluginDir + "/check_snmp" ]
1713 value = "$snmp_address$"
1714 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1717 value = "$snmp_oid$"
1718 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1721 value = "$snmp_community$"
1722 description = "Optional community string for SNMP communication (default is 'public')"
1725 value = "$snmp_crit$"
1726 description = "Critical threshold range(s)"
1729 value = "$snmp_warn$"
1730 description = "Warning threshold range(s)"
1733 value = "$snmp_string$"
1734 description = "Return OK state (for that OID) if STRING is an exact match"
1737 value = "$snmp_ereg$"
1738 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1741 value = "$snmp_eregi$"
1742 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1745 value = "$snmp_label$"
1746 description = "Prefix label for output from plugin"
1749 value = "$snmp_units$"
1750 description = "Units label(s) for output data (e.g., 'sec.')"
1753 value = "$snmp_timeout$"
1754 description = "Seconds before connection times out (default: 10)"
1757 value = "$snmp_port$"
1758 description = "Port number (default: 161)"
1761 value = "$snmp_retries$"
1762 description = "Number of retries to be used in the requests"
1764 "--invert-search" = {
1765 set_if = "$snmp_invert_search$"
1766 description = "Invert search result and return CRITICAL if found"
1769 value = "$snmp_version$"
1770 description = "SNMP protocol version"
1773 value = "$snmp_miblist$"
1774 description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1776 "--rate-multiplier" = {
1777 value = "$snmp_rate_multiplier$"
1778 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1781 set_if = "$snmp_rate$"
1782 description = "Enable rate calculation"
1785 set_if = "$snmp_getnext$"
1786 description = "Use SNMP GETNEXT instead of SNMP GET"
1789 value = "$snmp_offset$"
1790 description = "Add/substract the specified OFFSET to numeric sensor data"
1793 value = "$snmp_output_delimiter$"
1794 description = "Separates output on multiple OID requests"
1797 set_if = "$snmp_perf_oids$"
1798 description = "Label performance data with OIDs instead of --label's"
1802 vars.snmp_address = {{
1803 var addr_v4 = macro("$address$")
1804 var addr_v6 = macro("$address6$")
1809 return "udp6:[" + addr_v6 + "]"
1813 vars.snmp_community = "public"
1814 vars.snmp_invert_search = false
1815 vars.snmp_timeout = "10"
1818 object CheckCommand "snmpv3" {
1819 import "ipv4-or-ipv6"
1821 command = [ PluginDir + "/check_snmp" ]
1825 value = "$snmpv3_address$"
1826 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1829 value = "$snmpv3_port$"
1830 description = "Port number"
1833 set_if = "$snmpv3_getnext$"
1834 description = "Use SNMP GETNEXT instead of SNMP GET"
1838 description = "SNMP protocol version"
1841 value = "$snmpv3_seclevel$"
1842 description = "SNMPv3 securityLevel"
1845 value = "$snmpv3_auth_alg$"
1846 description = "SNMPv3 auth proto"
1849 value = "$snmpv3_user$"
1850 description = "SNMPv3 username"
1853 value = "$snmpv3_auth_key$"
1854 description = "SNMPv3 authentication password"
1857 value = "$snmpv3_priv_key$"
1858 description = "SNMPv3 privacy password"
1861 value = "$snmpv3_oid$"
1862 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1865 value = "$snmpv3_priv_alg$"
1866 description = "SNMPv3 priv proto (default DES)"
1869 value = "$snmpv3_warn$"
1870 description = "Warning threshold range(s)"
1873 value = "$snmpv3_crit$"
1874 description = "Critical threshold range(s)"
1877 value = "$snmpv3_string$"
1878 description = "Return OK state (for that OID) if STRING is an exact match"
1881 value = "$snmpv3_ereg$"
1882 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1885 value = "$snmpv3_eregi$"
1886 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1888 "--invert-search" = {
1889 set_if = "$snmpv3_invert_search$"
1890 description = "Invert search result and return CRITICAL if found"
1893 value = "$snmpv3_label$"
1894 description = "Prefix label for output from plugin"
1897 value = "$snmpv3_miblist$"
1898 description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1901 value = "$snmpv3_units$"
1902 description = "Units label(s) for output data (e.g., 'sec.')"
1904 "--rate-multiplier" = {
1905 value = "$snmpv3_rate_multiplier$"
1906 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1909 set_if = "$snmpv3_rate$"
1910 description = "Enable rate calculation"
1913 value = "$snmpv3_timeout$"
1914 description = "Seconds before connection times out (default: 10)"
1918 vars.snmpv3_address = "$check_address$"
1919 vars.snmpv3_auth_alg = "SHA"
1920 vars.snmpv3_priv_alg = "AES"
1921 vars.snmpv3_seclevel = "authPriv"
1922 vars.snmpv3_timeout = "10"
1925 object CheckCommand "snmp-uptime" {
1928 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1931 object CheckCommand "apt" {
1932 command = [ PluginDir + "/check_apt" ]
1936 value = "$apt_extra_opts$"
1937 description = "Read options from an ini file."
1940 value = "$apt_upgrade$"
1941 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."
1943 "--dist-upgrade" = {
1944 value = "$apt_dist_upgrade$"
1945 description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1948 value = "$apt_include$"
1949 description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1952 value = "$apt_exclude$"
1953 description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1956 value = "$apt_critical$"
1957 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."
1960 value = "$apt_timeout$"
1961 description = "Seconds before plugin times out (default: 10)."
1963 "--only-critical" = {
1964 set_if = "$apt_only_critical$"
1965 description = "Only warn about critical upgrades."
1972 object CheckCommand "dhcp" {
1973 command = [ PluginDir + "/check_dhcp" ]
1977 value = "$dhcp_serverip$"
1978 description = "IP address of DHCP server that we must hear from"
1981 value = "$dhcp_requestedip$"
1982 description = "IP address that should be offered by at least one DHCP server"
1985 value = "$dhcp_timeout$"
1986 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1989 value = "$dhcp_interface$"
1990 description = "Interface to to use for listening (i.e. eth0)"
1993 value = "$dhcp_mac$"
1994 description = "MAC address to use in the DHCP request"
1997 set_if = "$dhcp_unicast$"
1998 description = "Unicast testing: mimic a DHCP relay"
2002 vars.dhcp_unicast = false
2005 object CheckCommand "dns" {
2006 import "ipv4-or-ipv6"
2008 command = [ PluginDir + "/check_dns" ]
2012 value = "$dns_lookup$"
2013 description = "The name or address you want to query."
2016 value = "$dns_server$"
2017 description = "Optional DNS server you want to use for the lookup."
2020 value = "$dns_query_type$"
2021 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2024 value = "$dns_expected_answers$"
2025 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)."
2028 set_if = "$dns_authoritative$"
2029 description = "Optionally expect the DNS server to be authoritative for the lookup"
2032 set_if = "$dns_accept_cname$"
2033 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2036 value = "$dns_wtime$"
2037 description = "Return warning if elapsed time exceeds value."
2040 value = "$dns_ctime$"
2041 description = "Return critical if elapsed time exceeds value."
2044 value = "$dns_timeout$"
2045 description = "Seconds before connection times out. Defaults to 10."
2049 vars.dns_lookup = "$host.name$"
2050 vars.dns_timeout = 10
2053 object CheckCommand "dig" {
2054 import "ipv4-or-ipv6"
2056 command = [ PluginDir + "/check_dig" ]
2060 value = "$dig_server$"
2061 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2064 value = "$dig_port$"
2065 description = "Port number (default: 53)"
2068 value = "$dig_lookup$"
2070 description = "Machine name to lookup"
2073 value = "$dig_record_type$"
2074 description = "Record type to lookup (default: A)"
2077 value = "$dig_expected_address$"
2078 description = "An address expected to be in the answer section"
2081 value = "$dig_arguments$"
2082 description = "Pass STRING as argument(s) to dig"
2085 value = "$dig_warning$"
2086 description = "Response time to result in warning status (seconds)"
2089 value = "$dig_critical$"
2090 description = "Response time to result in critical status (seconds)"
2093 value = "$dig_timeout$"
2094 description = "Seconds before connection times out (default: 10)"
2097 set_if = "$dig_ipv4$"
2098 description = "Force dig to only use IPv4 query transport"
2101 set_if = "$dig_ipv6$"
2102 description = "Force dig to only use IPv6 query transport"
2106 vars.dig_server = "$check_address$"
2107 vars.check_ipv4 = "$dig_ipv4$"
2108 vars.check_ipv6 = "$dig_ipv6$"
2111 object CheckCommand "nscp" {
2112 import "ipv4-or-ipv6"
2114 command = [ PluginDir + "/check_nt" ]
2118 value = "$nscp_address$"
2119 description = "Name of the host to check"
2122 value = "$nscp_port$"
2123 description = "Optional port number (default: 1248)"
2126 value = "$nscp_password$"
2127 description = "Password needed for the request"
2130 value = "$nscp_variable$"
2132 description = "Variable to check"
2135 value = "$nscp_params$"
2139 value = "$nscp_warn$"
2140 description = "Threshold which will result in a warning status"
2143 value = "$nscp_crit$"
2144 description = "Threshold which will result in a critical status"
2147 value = "$nscp_timeout$"
2148 description = "Seconds before connection attempt times out"
2152 set_if = "$nscp_showall$"
2153 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2157 vars.nscp_address = "$check_address$"
2158 vars.nscp_port = 12489
2159 vars.nscp_showall = false
2162 object CheckCommand "by_ssh" {
2163 import "ipv4-or-ipv6"
2165 command = [ PluginDir + "/check_by_ssh" ]
2169 value = "$by_ssh_address$"
2170 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2173 value = "$by_ssh_port$"
2174 description = "Port number (default: none)"
2177 var command = macro("$by_ssh_command$")
2178 var arguments = macro("$by_ssh_arguments$")
2180 if (typeof(command) == String && !arguments) {
2184 var escaped_args = []
2185 for (arg in resolve_arguments(command, arguments)) {
2186 escaped_args.add(escape_shell_arg(arg))
2188 return escaped_args.join(" ")
2191 value = "$by_ssh_logname$"
2192 description = "SSH user name on remote host [optional]"
2195 value = "$by_ssh_identity$"
2196 description = "identity of an authorized key [optional]"
2199 set_if = "$by_ssh_quiet$"
2200 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2203 value = "$by_ssh_warn$"
2204 description = "Response time to result in warning status (seconds)"
2207 value = "$by_ssh_crit$"
2208 description = "Response time to result in critical status (seconds)"
2211 value = "$by_ssh_timeout$"
2212 description = "Seconds before connection times out (default: 10)"
2215 value = "$by_ssh_options$"
2216 description = "Provide ssh options (may be repeated)"
2219 set_if = "$by_ssh_ipv4$"
2220 description = "Use IPv4 only"
2223 set_if = "$by_ssh_ipv6$"
2224 description = "Use IPv6 only"
2228 vars.by_ssh_address = "$check_address$"
2229 vars.by_ssh_quiet = false
2230 vars.check_ipv4 = "$by_ssh_ipv4$"
2231 vars.check_ipv6 = "$by_ssh_ipv6$"
2234 object CheckCommand "ups" {
2235 import "ipv4-or-ipv6"
2237 command = [ PluginDir + "/check_ups" ]
2241 value = "$ups_address$"
2242 description = "Address of the upsd server"
2246 value = "$ups_name$"
2247 description = "Name of the UPS to monitor"
2251 value = "$ups_port$"
2252 description = "Port number (default: 3493)"
2255 value = "$ups_variable$"
2256 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2259 value = "$ups_warning$"
2260 description = "Warning threshold for the selected variable"
2263 value = "$ups_critical$"
2264 description = "Critical threshold for the selected variable"
2267 set_if = "$ups_celsius$"
2268 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2271 value = "$ups_timeout$"
2272 description = "Seconds before the connection times out (default: 10)"
2276 vars.ups_address = "$check_address$"
2277 vars.ups_name = "ups"
2280 object CheckCommand "nrpe" {
2281 import "ipv4-or-ipv6"
2283 command = [ PluginDir + "/check_nrpe" ]
2287 value = "$nrpe_address$"
2288 description = "The address of the host running the NRPE daemon"
2291 value = "$nrpe_port$"
2294 value = "$nrpe_command$"
2297 set_if = "$nrpe_no_ssl$"
2298 description = "Do not use SSL"
2301 set_if = "$nrpe_timeout_unknown$"
2302 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2305 value = "$nrpe_timeout$"
2306 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2309 value = "$nrpe_arguments$"
2314 set_if = "$nrpe_ipv4$"
2315 description = "Use IPv4 connection"
2318 set_if = "$nrpe_ipv6$"
2319 description = "Use IPv6 connection"
2322 set_if = "$nrpe_version_2$"
2323 description = "Use this if you want to connect to NRPE v2"
2327 vars.nrpe_address = "$check_address$"
2328 vars.nrpe_no_ssl = false
2329 vars.nrpe_timeout_unknown = false
2330 vars.check_ipv4 = "$nrpe_ipv4$"
2331 vars.check_ipv6 = "$nrpe_ipv6$"
2332 vars.nrpe_version_2 = false
2336 object CheckCommand "hpjd" {
2337 import "ipv4-or-ipv6"
2339 command = [ PluginDir + "/check_hpjd" ]
2343 value = "$hpjd_address$"
2344 description = "Host address"
2347 value = "$hpjd_community$"
2348 description = "The SNMP community name (default=public)"
2351 value = "$hpjd_port$"
2352 description = "Specify the port to check (default=161)"
2356 vars.hpjd_address = "$check_address$"
2359 object CheckCommand "icmp" {
2360 command = [ PluginDir + "/check_icmp" ]
2364 value = "$icmp_address$"
2367 description = "Host address"
2370 value = "$icmp_wrta$,$icmp_wpl$%"
2371 description = "warning threshold (currently 200.000ms,40%)"
2374 value = "$icmp_crta$,$icmp_cpl$%"
2375 description = "critical threshold (currently 500.000ms,80%)"
2378 value = "$icmp_source$"
2379 description = "specify a source IP address or device name"
2382 value = "$icmp_packets$"
2383 description = "number of packets to send (currently 5)"
2386 value = "$icmp_packet_interval$"
2387 description = "max packet interval (currently 80.000ms)"
2390 value = "$icmp_target_interval$"
2391 description = "max target interval (currently 0.000ms)"
2394 value = "$icmp_hosts_alive$"
2395 description = "number of alive hosts required for success"
2398 value = "$icmp_data_bytes$"
2399 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2402 value = "$icmp_timeout$"
2403 description = "timeout value (seconds, currently 10)"
2406 value = "$icmp_ttl$"
2407 description = "TTL on outgoing packets (currently 0)"
2411 vars.icmp_address = "$address$"
2412 vars.icmp_wrta = 100
2414 vars.icmp_crta = 200
2418 object CheckCommand "ldap" {
2419 import "ipv4-or-ipv6"
2421 command = [ PluginDir + "/check_ldap" ]
2425 value = "$ldap_address$"
2426 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2429 value = "$ldap_port$"
2430 description = "Port number (default: 389)"
2433 value = "$ldap_attr$"
2434 description = "ldap attribute to search (default: \"(objectclass=*)\""
2437 value = "$ldap_base$"
2439 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2442 value = "$ldap_bind$"
2443 description = "ldap bind DN (if required)"
2446 value = "$ldap_pass$"
2447 description = "ldap password (if required)"
2450 set_if = "$ldap_starttls$"
2451 description = "use starttls mechanism introduced in protocol version 3"
2454 set_if = "$ldap_ssl$"
2455 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2458 set_if = "$ldap_v2$"
2459 description = "Use LDAP protocol version 2"
2462 set_if = "$ldap_v3$"
2463 description = "Use LDAP protocol version 3"
2466 value = "$ldap_warning$"
2467 description = "Response time to result in warning status (seconds)"
2470 value = "$ldap_critical$"
2471 description = "Response time to result in critical status (seconds)"
2474 value = "$ldap_warning_entries$"
2475 description = "Number of found entries to result in warning status (optional)"
2478 value = "$ldap_critical_entries$"
2479 description = "Number of found entries to result in critical status (optional)"
2482 value = "$ldap_timeout$"
2483 description = "Seconds before connection times out (default: 10)"
2486 set_if = "$ldap_verbose$"
2487 description = "Show details for command-line debugging"
2491 vars.ldap_address = "$check_address$"
2493 vars.ldap_v3 = false
2494 vars.ldap_timeout = 10s
2495 vars.ldap_verbose = false
2498 object CheckCommand "clamd" {
2499 command = [ PluginDir + "/check_clamd" ]
2503 value = "$clamd_address$"
2504 description = "The host's address or unix socket (must be an absolute path)."
2508 value = "$clamd_port$"
2509 description = "Port number (default: none)."
2512 value = "$clamd_expect$"
2513 description = "String to expect in server response (may be repeated)."
2517 set_if = "$clamd_all$"
2518 description = "All expect strings need to occur in server response. Default is any."
2523 set_if = "$clamd_escape_send$"
2524 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2528 value = "$clamd_send$"
2529 description = "String to send to the server."
2534 set_if = "$clamd_escape_quit$"
2535 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2539 value = "$clamd_quit$"
2540 description = "String to send server to initiate a clean close of the connection."
2543 value = "$clamd_refuse$"
2544 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2547 value = "$clamd_mismatch$"
2548 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2551 set_if = "$clamd_jail$"
2552 description = "Hide output from TCP socket."
2555 value = "$clamd_maxbytes$"
2556 description = "Close connection once more than this number of bytes are received."
2559 value = "$clamd_delay$"
2560 description = "Seconds to wait between sending string and polling for response."
2563 value = "$clamd_certificate$"
2564 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."
2567 set_if = "$clamd_ssl$"
2568 description = "Use SSL for the connection."
2571 value = "$clamd_wtime$"
2572 description = "Response time to result in warning status (seconds)."
2575 value = "$clamd_ctime$"
2576 description = "Response time to result in critical status (seconds)."
2579 value = "$clamd_timeout$"
2580 description = "Seconds before connection times out. Defaults to 10."
2583 set_if = "$clamd_ipv4$"
2584 description = "Use IPv4 only"
2587 set_if = "$clamd_ipv6$"
2588 description = "Use IPv6 only"
2592 vars.clamd_ssl = false
2593 vars.clamd_refuse = "crit"
2594 vars.clamd_mismatch = "warn"
2595 vars.clamd_timeout = 10
2596 vars.check_ipv4 = "$clamd_ipv4$"
2597 vars.check_ipv6 = "$clamd_ipv6$"
2600 object CheckCommand "mailq" {
2601 command = [ PluginDir + "/check_mailq" ]
2605 value = "$mailq_warning$"
2606 description = "Min. number of messages in queue to generate warning"
2610 value = "$mailq_critical$"
2611 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2615 value = "$mailq_domain_warning$"
2616 description = "Min. number of messages for same domain in queue to generate warning"
2619 value = "$mailq_domain_critical$"
2620 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2623 value = "$mailq_timeout$"
2624 description = "Plugin timeout in seconds (default = 15)"
2627 value = "$mailq_servertype$"
2628 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2631 set_if = "$mailq_sudo$"
2632 description = "Use sudo for mailq command"
2637 object CheckCommand "pgsql" {
2638 import "ipv4-or-ipv6"
2640 command = [ PluginDir + "/check_pgsql" ]
2644 value = "$pgsql_hostname$"
2645 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2648 value = "$pgsql_port$"
2649 description = "Port number (default: 5432)"
2652 value = "$pgsql_database$"
2653 description = "Database to check (default: template1)"
2656 value = "$pgsql_username$"
2657 description = "Login name of user"
2660 value = "$pgsql_password$"
2661 description = "Password (BIG SECURITY ISSUE)"
2664 value = "$pgsql_options$"
2665 description = "Connection parameters (keyword = value), see below"
2668 value = "$pgsql_warning$"
2669 description = "Response time to result in warning status (seconds)"
2672 value = "$pgsql_critical$"
2673 description = "Response time to result in critical status (seconds)"
2676 value = "$pgsql_timeout$"
2677 description = "Seconds before connection times out (default: 10)"
2680 value = "$pgsql_query$"
2681 description = "SQL query to run. Only first column in first row will be read"
2684 value = "$pgsql_query_warning$"
2685 description = "SQL query value to result in warning status (double)"
2688 value = "$pgsql_query_critical$"
2689 description = "SQL query value to result in critical status (double)"
2693 vars.pgsql_hostname = "$check_address$"
2696 object CheckCommand "mysql" {
2697 import "ipv4-or-ipv6"
2699 command = [ PluginDir + "/check_mysql" ]
2703 value = "$mysql_hostname$"
2704 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2707 value = "$mysql_port$"
2708 description = "Port number (default: 3306)"
2711 set_if = "$mysql_ignore_auth$"
2712 description = "Ignore authentication failure and check for mysql connectivity only"
2715 value = "$mysql_socket$"
2716 description = "Use the specified socket"
2719 value = "$mysql_database$"
2720 description = "Check database with indicated name"
2723 value = "$mysql_file$"
2724 description = "Read from the specified client options file"
2727 value = "$mysql_group$"
2728 description = "Use a client options group"
2731 value = "$mysql_username$"
2732 description = "Connect using the indicated username"
2735 value = "$mysql_password$"
2736 description = "Use the indicated password to authenticate the connection"
2739 set_if = "$mysql_check_slave$"
2740 description = "Check if the slave thread is running properly"
2743 value = "$mysql_warning$"
2744 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2747 value = "$mysql_critical$"
2748 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2751 set_if = "$mysql_ssl$"
2752 description = "Use ssl encryptation"
2755 value = "$mysql_cacert$"
2756 description = "Path to CA signing the cert"
2759 value = "$mysql_cert$"
2760 description = "Path to SSL certificate"
2763 value = "$mysql_key$"
2764 description = "Path to private SSL key"
2767 value = "$mysql_cadir$"
2768 description = "Path to CA directory"
2771 value = "$mysql_ciphers$"
2772 description = "List of valid SSL ciphers"
2776 vars.mysql_hostname = "$check_address$"
2779 object CheckCommand "negate" {
2780 command = [ PluginDir + "/negate" ]
2784 value = "$negate_timeout$"
2785 description = "Seconds before plugin times out (default: 11)"
2788 value = "$negate_timeout_result$"
2789 description = "Custom result on Negate timeouts"
2792 value = "$negate_ok$"
2795 value = "$negate_warning$"
2798 value = "$negate_critical$"
2801 value = "$negate_unknown$"
2804 set_if = "$negate_substitute$"
2805 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2807 "--wrapped-plugin" = {
2809 var command = macro("$negate_command$")
2810 var arguments = macro("$negate_arguments$")
2812 if (typeof(command) == String && !arguments) {
2816 var escaped_args = []
2817 for (arg in resolve_arguments(command, arguments)) {
2818 escaped_args.add(arg)
2820 return escaped_args.join(" ")
2827 vars.negate_timeout_result = "UNKNOWN"
2830 object CheckCommand "file_age" {
2831 command = [ PluginDir + "/check_file_age" ]
2835 value = "$file_age_warning_time$"
2836 description = "File must be no more than this many seconds old (default: 240s)"
2839 value = "$file_age_critical_time$"
2840 description = "File must be no more than this many seconds old (default: 600s)"
2843 value = "$file_age_warning_size$"
2844 description = "File must be at least this many bytes long"
2847 value = "$file_age_critical_size$"
2848 description = "File must be at least this many bytes long (default: 0B)"
2851 set_if = "$file_age_ignoremissing$"
2852 description = "return OK if the file does not exist"
2855 value = "$file_age_file$"
2856 description = "File to monitor"
2860 vars.file_age_ignoremissing = false
2863 object CheckCommand "smart" {
2864 command = [ PluginDir + "/check_ide_smart" ]
2868 value = "$smart_device$"
2869 description = "Name of a local hard drive to monitor"
2875 object CheckCommand "breeze" {
2876 import "ipv4-or-ipv6"
2878 command = [ PluginDir + "/check_breeze" ]
2882 value = "$breeze_hostname$"
2883 description = "Name or IP address of host to check"
2887 value = "$breeze_community$"
2888 description = "SNMPv1 community (default public)"
2891 value = "$breeze_warning$"
2892 description = "Percentage strength below which a WARNING status will result"
2896 value = "$breeze_critical$"
2897 description = "Percentage strength below which a CRITICAL status will result"
2902 vars.breeze_hostname = "$check_address$"
2903 vars.breeze_warning = "50"
2904 vars.breeze_critical = "20"
2907 object CheckCommand "flexlm" {
2908 command = [ PluginDir + "/check_flexlm" ]
2912 value = "$flexlm_licensefile$"
2913 description = "Name of license file (usually license.dat)"
2917 value = "$flexlm_timeout$"
2918 description = "Plugin time out in seconds (default = 15)"
2923 object CheckCommand "game" {
2924 import "ipv4-or-ipv6"
2926 command = [ PluginDir + "/check_game" ]
2930 value = "$game_port$"
2931 description = "Port to connect to"
2934 value = "$game_timeout$"
2935 description = "Seconds before connection times out (default: 10)"
2938 value = "$game_gamefield$"
2939 description = "Field number in raw qstat output that contains game name"
2942 value = "$game_mapfield$"
2943 description = "Field number in raw qstat output that contains map name"
2946 value = "$game_pingfield$"
2947 description = "Field number in raw qstat output that contains ping time"
2950 value = "$game_gametime$"
2951 description = "Field number in raw qstat output that contains game time"
2954 value = "$game_hostname$"
2955 description = "Name of the host running the game"
2958 value = "$game_game$"
2959 description = "Name of the game"
2964 value = "$game_ipaddress$"
2965 description = "Ipaddress of the game server to query"
2972 object CheckCommand "mysql_query" {
2973 import "ipv4-or-ipv6"
2975 command = [ PluginDir + "/check_mysql_query" ]
2979 value = "$mysql_query_hostname$"
2980 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2983 value = "$mysql_query_port$"
2984 description = "Port number (default: 3306)"
2987 value = "$mysql_query_username$"
2988 description = "Username to login with"
2991 value = "$mysql_query_password$"
2992 description = "Password to login with"
2995 value = "$mysql_query_database$"
2996 description = "Database to check"
2999 value = "$mysql_query_file$"
3000 description = "Read from the specified client options file"
3003 value = "$mysql_query_group$"
3004 description = "Use a client options group"
3007 value = "$mysql_query_execute$"
3008 description = "SQL query to run. Only first column in first row will be read"
3011 value = "$mysql_query_warning$"
3012 description = "Warning range (format: start:end). Alert if outside this range"
3015 value = "$mysql_query_critical$"
3016 description = "Critical range"
3020 vars.mysql_query_hostname = "$check_address$"
3023 object CheckCommand "radius" {
3024 import "ipv4-or-ipv6"
3027 PluginDir + "/check_radius",
3032 value = "$radius_address$",
3033 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3036 value = "$radius_config_file$",
3037 description = "Configuration file"
3040 value = "$radius_username$",
3041 description = "The user to authenticate"
3044 value = "$radius_password$",
3045 description = "Password for authentication"
3048 value = "$radius_port$",
3049 description = "Port number (default: 1645)"
3052 value = "$radius_nas_id$",
3053 description = "NAS identifier"
3056 value = "$radius_nas_address$",
3057 description = "NAS IP Address"
3060 value = "$radius_expect$",
3061 description = "Response string to expect from the server"
3064 value = "$radius_retries$",
3065 description = "Number of times to retry a failed connection"
3068 value = "$radius_timeout$",
3069 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3073 vars.radius_address = "$check_address$"
3076 object CheckCommand "nscp_api" {
3077 import "ipv4-or-ipv6"
3079 command = [ PluginDir + "/check_nscp_api" ]
3083 value = "$nscp_api_host$"
3084 description = "NSCP API host address"
3088 value = "$nscp_api_port$"
3089 description = "NSCP API host port. Defaults to 8443."
3092 value = "$nscp_api_password$"
3093 description = "NSCP API password"
3096 value = "$nscp_api_query$"
3097 description = "NSCPI API Query endpoint to use"
3100 value = "$nscp_api_arguments$"
3101 description = "NSCP API Query arguments"
3106 vars.nscp_api_host = "$check_address$"