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 set_if = "$ntp_quiet$"
1296 description = "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
1299 value = "$ntp_warning$"
1300 description = "Offset to result in warning status (seconds)"
1303 value = "$ntp_critical$"
1304 description = "Offset to result in critical status (seconds)"
1307 value = "$ntp_wstratum$"
1308 description = "Warning threshold for stratum of server's synchronization peer"
1311 value = "$ntp_cstratum$"
1312 description = "Critical threshold for stratum of server's synchronization peer"
1315 value = "$ntp_wjitter$"
1316 description = "Warning threshold for jitter"
1319 value = "$ntp_cjitter$"
1320 description = "Critical threshold for jitter"
1323 value = "$ntp_wsource$"
1324 description = "Warning threshold for number of usable time sources (truechimers)"
1327 value = "$ntp_csource$"
1328 description = "Critical threshold for number of usable time sources (truechimers)"
1331 value = "$ntp_timeout$"
1332 description = "Seconds before connection times out (default: 10)"
1335 set_if = "$ntp_ipv4$"
1336 description = "Use IPv4 connection"
1339 set_if = "$ntp_ipv6$"
1340 description = "Use IPv6 connection"
1344 vars.ntp_address = "$check_address$"
1345 vars.check_ipv4 = "$ntp_ipv4$"
1346 vars.check_ipv6 = "$ntp_ipv6$"
1349 object CheckCommand "ssh" {
1350 import "ipv4-or-ipv6"
1352 command = [ PluginDir + "/check_ssh" ]
1356 value = "$ssh_port$"
1357 description = "Port number (default: 22)"
1360 value = "$ssh_timeout$"
1361 description = "Seconds before connection times out (default: 10)"
1364 value = "$ssh_address$"
1369 set_if = "$ssh_ipv4$"
1370 description = "Use IPv4 connection"
1373 set_if = "$ssh_ipv6$"
1374 description = "Use IPv6 connection"
1378 vars.ssh_address = "$check_address$"
1379 vars.check_ipv4 = "$ssh_ipv4$"
1380 vars.check_ipv6 = "$ssh_ipv6$"
1383 object CheckCommand "disk" {
1384 command = [ PluginDir + "/check_disk" ]
1388 value = "$disk_wfree$"
1389 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"
1394 value = "$disk_cfree$"
1395 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"
1400 value = "$disk_inode_wfree$"
1401 description = "Exit with WARNING status if less than PERCENT of inode space is free"
1405 value = "$disk_inode_cfree$"
1406 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
1410 value = "$disk_partitions$"
1411 description = "Path or partition (may be repeated)"
1417 value = "$disk_partition$"
1421 value = "$disk_partitions_excluded$"
1422 description = "Ignore device (only works if -p unspecified)"
1426 value = "$disk_partition_excluded$"
1429 set_if = "$disk_clear$"
1430 description = "Clear thresholds"
1433 set_if = "$disk_exact_match$"
1434 description = "For paths or partitions specified with -p, only check for exact paths"
1437 set_if = "$disk_errors_only$"
1438 description = "Display only devices/mountpoints with errors"
1441 set_if = "$disk_ignore_reserved$"
1442 description = "Don't account root-reserved blocks into freespace in perfdata"
1445 value = "$disk_group$"
1446 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
1449 set_if = "$disk_kilobytes$"
1450 description = "Same as --units kB"
1453 set_if = "$disk_local$"
1454 description = " Only check local filesystems"
1457 set_if = "$disk_stat_remote_fs$"
1458 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)"
1461 set_if = "$disk_mountpoint$"
1462 description = "Display the mountpoint instead of the partition"
1465 set_if = "$disk_megabytes$"
1466 description = "Same as --units MB"
1469 set_if = "$disk_all$"
1470 description = "Explicitly select all paths. This is equivalent to -R .*"
1474 value = "$disk_eregi_path$"
1475 description = "Case insensitive regular expression for path/partition (may be repeated)"
1479 value = "$disk_ereg_path$"
1480 description = "Regular expression for path or partition (may be repeated)"
1484 value = "$disk_ignore_eregi_path$"
1485 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
1490 value = "$disk_ignore_ereg_path$"
1491 description = "Regular expression to ignore selected path or partition (may be repeated)"
1496 value = "$disk_timeout$"
1497 description = "Seconds before connection times out (default: 10)"
1500 value = "$disk_units$"
1501 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
1504 value = "$disk_exclude_type$"
1505 description = "Ignore all filesystems of indicated type (may be repeated)"
1510 vars.disk_wfree = "20%"
1511 vars.disk_cfree = "10%"
1512 vars.disk_megabytes = true
1513 vars.disk_exclude_type = [ "none", "tmpfs", "sysfs", "proc", "configfs", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fdescfs" ]
1516 object CheckCommand "disk_smb" {
1517 command = [ PluginDir + "/check_disk_smb" ]
1521 value = "$disk_smb_hostname$"
1522 description = "NetBIOS name of the server."
1525 value = "$disk_smb_share$"
1526 description = "Share name to be tested."
1529 value = "$disk_smb_workgroup$"
1530 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1533 value = "$disk_smb_address$"
1534 description = "IP-address of HOST (only necessary if HOST is in another network)."
1537 value = "$disk_smb_username$"
1538 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1541 value = "$disk_smb_password$"
1542 description = "Password to log in to server. (Defaults to an empty password if omitted)."
1545 value = "$disk_smb_wused$"
1546 description = "Percent of used space at which a warning will be generated (Default: 85%)."
1549 value = "$disk_smb_cused$"
1550 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1553 value = "$disk_smb_port$"
1554 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1558 vars.disk_smb_wused = "85%"
1559 vars.disk_smb_cused = "95%"
1562 object CheckCommand "users" {
1563 command = [ PluginDir + "/check_users" ]
1567 value = "$users_wgreater$"
1568 description = "Set WARNING status if more than INTEGER users are logged in"
1571 value = "$users_cgreater$"
1572 description = "Set CRITICAL status if more than INTEGER users are logged in"
1576 vars.users_wgreater = 20
1577 vars.users_cgreater = 50
1580 object CheckCommand "procs" {
1581 command = [ PluginDir + "/check_procs" ]
1585 value = "$procs_warning$"
1586 description = "Generate warning state if metric is outside this range"
1589 value = "$procs_critical$"
1590 description = "Generate critical state if metric is outside this range"
1593 value = "$procs_metric$"
1594 description = "Check thresholds against metric"
1597 value = "$procs_timeout$"
1598 description = "Seconds before plugin times out"
1601 set_if = "$procs_traditional$"
1602 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1605 value = "$procs_state$"
1606 description = "Only scan for processes that have one or more of the status flags you specify"
1609 value = "$procs_ppid$"
1610 description = "Only scan for children of the parent process ID indicated"
1613 value = "$procs_vsz$"
1614 description = "Only scan for processes with VSZ higher than indicated"
1617 value = "$procs_rss$"
1618 description = "Only scan for processes with RSS higher than indicated"
1621 value = "$procs_pcpu$"
1622 description = "Only scan for processes with PCPU higher than indicated"
1625 value = "$procs_user$"
1626 description = "Only scan for processes with user name or ID indicated"
1629 value = "$procs_argument$"
1630 description = "Only scan for processes with args that contain STRING"
1632 "--ereg-argument-array" = {
1633 value = "$procs_argument_regex$"
1634 description = "Only scan for processes with args that contain the regex STRING"
1637 value = "$procs_command$"
1638 description = "Only scan for exact matches of COMMAND (without path)"
1641 set_if = "$procs_nokthreads$"
1642 description = "Only scan for non kernel threads"
1646 vars.procs_traditional = false
1647 vars.procs_nokthreads = false
1648 vars.procs_warning = 250
1649 vars.procs_critical = 400
1652 object CheckCommand "swap" {
1653 command = [ PluginDir + "/check_swap" ]
1657 if (macro("$swap_integer$")) {
1658 return macro("$swap_wfree$")
1660 return macro("$swap_wfree$%")
1664 if (macro("$swap_integer$")) {
1665 return macro("$swap_cfree$")
1667 return macro("$swap_cfree$%")
1671 set_if = "$swap_allswaps$"
1672 description = "Conduct comparisons for all swap partitions, one by one"
1675 value = "$swap_noswap$"
1676 description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1680 vars.swap_wfree = 50
1681 vars.swap_cfree = 25
1682 vars.swap_integer = false
1683 vars.swap_allswaps = false
1686 object CheckCommand "load" {
1687 command = [ PluginDir + "/check_load" ]
1691 value = "$load_wload1$,$load_wload5$,$load_wload15$"
1692 description = "Exit with WARNING status if load average exceeds WLOADn"
1695 value = "$load_cload1$,$load_cload5$,$load_cload15$"
1696 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1699 set_if = "$load_percpu$"
1700 description = "Divide the load averages by the number of CPUs (when possible)"
1704 vars.load_wload1 = 5.0
1705 vars.load_wload5 = 4.0
1706 vars.load_wload15 = 3.0
1708 vars.load_cload1 = 10.0
1709 vars.load_cload5 = 6.0
1710 vars.load_cload15 = 4.0
1712 vars.load_percpu = false
1715 object CheckCommand "snmp" {
1716 command = [ PluginDir + "/check_snmp" ]
1720 value = "$snmp_address$"
1721 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1724 value = "$snmp_oid$"
1725 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1728 value = "$snmp_community$"
1729 description = "Optional community string for SNMP communication (default is 'public')"
1732 value = "$snmp_crit$"
1733 description = "Critical threshold range(s)"
1736 value = "$snmp_warn$"
1737 description = "Warning threshold range(s)"
1740 value = "$snmp_string$"
1741 description = "Return OK state (for that OID) if STRING is an exact match"
1744 value = "$snmp_ereg$"
1745 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1748 value = "$snmp_eregi$"
1749 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1752 value = "$snmp_label$"
1753 description = "Prefix label for output from plugin"
1756 value = "$snmp_units$"
1757 description = "Units label(s) for output data (e.g., 'sec.')"
1760 value = "$snmp_timeout$"
1761 description = "Seconds before connection times out (default: 10)"
1764 value = "$snmp_port$"
1765 description = "Port number (default: 161)"
1768 value = "$snmp_retries$"
1769 description = "Number of retries to be used in the requests"
1771 "--invert-search" = {
1772 set_if = "$snmp_invert_search$"
1773 description = "Invert search result and return CRITICAL if found"
1776 value = "$snmp_version$"
1777 description = "SNMP protocol version"
1780 value = "$snmp_miblist$"
1781 description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1783 "--rate-multiplier" = {
1784 value = "$snmp_rate_multiplier$"
1785 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1788 set_if = "$snmp_rate$"
1789 description = "Enable rate calculation"
1792 set_if = "$snmp_getnext$"
1793 description = "Use SNMP GETNEXT instead of SNMP GET"
1796 value = "$snmp_offset$"
1797 description = "Add/substract the specified OFFSET to numeric sensor data"
1800 value = "$snmp_output_delimiter$"
1801 description = "Separates output on multiple OID requests"
1804 set_if = "$snmp_perf_oids$"
1805 description = "Label performance data with OIDs instead of --label's"
1809 vars.snmp_address = {{
1810 var addr_v4 = macro("$address$")
1811 var addr_v6 = macro("$address6$")
1816 return "udp6:[" + addr_v6 + "]"
1820 vars.snmp_community = "public"
1821 vars.snmp_invert_search = false
1822 vars.snmp_timeout = "10"
1825 object CheckCommand "snmpv3" {
1826 import "ipv4-or-ipv6"
1828 command = [ PluginDir + "/check_snmp" ]
1832 value = "$snmpv3_address$"
1833 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1836 value = "$snmpv3_port$"
1837 description = "Port number"
1840 set_if = "$snmpv3_getnext$"
1841 description = "Use SNMP GETNEXT instead of SNMP GET"
1845 description = "SNMP protocol version"
1848 value = "$snmpv3_seclevel$"
1849 description = "SNMPv3 securityLevel"
1852 value = "$snmpv3_auth_alg$"
1853 description = "SNMPv3 auth proto"
1856 value = "$snmpv3_user$"
1857 description = "SNMPv3 username"
1860 value = "$snmpv3_auth_key$"
1861 description = "SNMPv3 authentication password"
1864 value = "$snmpv3_priv_key$"
1865 description = "SNMPv3 privacy password"
1868 value = "$snmpv3_oid$"
1869 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1872 value = "$snmpv3_priv_alg$"
1873 description = "SNMPv3 priv proto (default DES)"
1876 value = "$snmpv3_warn$"
1877 description = "Warning threshold range(s)"
1880 value = "$snmpv3_crit$"
1881 description = "Critical threshold range(s)"
1884 value = "$snmpv3_string$"
1885 description = "Return OK state (for that OID) if STRING is an exact match"
1888 value = "$snmpv3_ereg$"
1889 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1892 value = "$snmpv3_eregi$"
1893 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1895 "--invert-search" = {
1896 set_if = "$snmpv3_invert_search$"
1897 description = "Invert search result and return CRITICAL if found"
1900 value = "$snmpv3_label$"
1901 description = "Prefix label for output from plugin"
1904 value = "$snmpv3_miblist$"
1905 description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1908 value = "$snmpv3_units$"
1909 description = "Units label(s) for output data (e.g., 'sec.')"
1911 "--rate-multiplier" = {
1912 value = "$snmpv3_rate_multiplier$"
1913 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1916 set_if = "$snmpv3_rate$"
1917 description = "Enable rate calculation"
1920 value = "$snmpv3_timeout$"
1921 description = "Seconds before connection times out (default: 10)"
1925 vars.snmpv3_address = "$check_address$"
1926 vars.snmpv3_auth_alg = "SHA"
1927 vars.snmpv3_priv_alg = "AES"
1928 vars.snmpv3_seclevel = "authPriv"
1929 vars.snmpv3_timeout = "10"
1932 object CheckCommand "snmp-uptime" {
1935 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1938 object CheckCommand "apt" {
1939 command = [ PluginDir + "/check_apt" ]
1943 value = "$apt_extra_opts$"
1944 description = "Read options from an ini file."
1947 value = "$apt_upgrade$"
1948 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."
1950 "--dist-upgrade" = {
1951 value = "$apt_dist_upgrade$"
1952 description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1955 value = "$apt_include$"
1956 description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1959 value = "$apt_exclude$"
1960 description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1963 value = "$apt_critical$"
1964 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."
1967 value = "$apt_timeout$"
1968 description = "Seconds before plugin times out (default: 10)."
1970 "--only-critical" = {
1971 set_if = "$apt_only_critical$"
1972 description = "Only warn about critical upgrades."
1979 object CheckCommand "dhcp" {
1980 command = [ PluginDir + "/check_dhcp" ]
1984 value = "$dhcp_serverip$"
1985 description = "IP address of DHCP server that we must hear from"
1988 value = "$dhcp_requestedip$"
1989 description = "IP address that should be offered by at least one DHCP server"
1992 value = "$dhcp_timeout$"
1993 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1996 value = "$dhcp_interface$"
1997 description = "Interface to to use for listening (i.e. eth0)"
2000 value = "$dhcp_mac$"
2001 description = "MAC address to use in the DHCP request"
2004 set_if = "$dhcp_unicast$"
2005 description = "Unicast testing: mimic a DHCP relay"
2009 vars.dhcp_unicast = false
2012 object CheckCommand "dns" {
2013 import "ipv4-or-ipv6"
2015 command = [ PluginDir + "/check_dns" ]
2019 value = "$dns_lookup$"
2020 description = "The name or address you want to query."
2023 value = "$dns_server$"
2024 description = "Optional DNS server you want to use for the lookup."
2027 value = "$dns_query_type$"
2028 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2031 value = "$dns_expected_answers$"
2032 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)."
2035 set_if = "$dns_authoritative$"
2036 description = "Optionally expect the DNS server to be authoritative for the lookup"
2039 set_if = "$dns_accept_cname$"
2040 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2043 value = "$dns_wtime$"
2044 description = "Return warning if elapsed time exceeds value."
2047 value = "$dns_ctime$"
2048 description = "Return critical if elapsed time exceeds value."
2051 value = "$dns_timeout$"
2052 description = "Seconds before connection times out. Defaults to 10."
2056 vars.dns_lookup = "$host.name$"
2057 vars.dns_timeout = 10
2060 object CheckCommand "dig" {
2061 import "ipv4-or-ipv6"
2063 command = [ PluginDir + "/check_dig" ]
2067 value = "$dig_server$"
2068 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2071 value = "$dig_port$"
2072 description = "Port number (default: 53)"
2075 value = "$dig_lookup$"
2077 description = "Machine name to lookup"
2080 value = "$dig_record_type$"
2081 description = "Record type to lookup (default: A)"
2084 value = "$dig_expected_address$"
2085 description = "An address expected to be in the answer section"
2088 value = "$dig_arguments$"
2089 description = "Pass STRING as argument(s) to dig"
2092 value = "$dig_warning$"
2093 description = "Response time to result in warning status (seconds)"
2096 value = "$dig_critical$"
2097 description = "Response time to result in critical status (seconds)"
2100 value = "$dig_timeout$"
2101 description = "Seconds before connection times out (default: 10)"
2104 set_if = "$dig_ipv4$"
2105 description = "Force dig to only use IPv4 query transport"
2108 set_if = "$dig_ipv6$"
2109 description = "Force dig to only use IPv6 query transport"
2113 vars.dig_server = "$check_address$"
2114 vars.check_ipv4 = "$dig_ipv4$"
2115 vars.check_ipv6 = "$dig_ipv6$"
2118 object CheckCommand "nscp" {
2119 import "ipv4-or-ipv6"
2121 command = [ PluginDir + "/check_nt" ]
2125 value = "$nscp_address$"
2126 description = "Name of the host to check"
2129 value = "$nscp_port$"
2130 description = "Optional port number (default: 1248)"
2133 value = "$nscp_password$"
2134 description = "Password needed for the request"
2137 value = "$nscp_variable$"
2139 description = "Variable to check"
2142 value = "$nscp_params$"
2146 value = "$nscp_warn$"
2147 description = "Threshold which will result in a warning status"
2150 value = "$nscp_crit$"
2151 description = "Threshold which will result in a critical status"
2154 value = "$nscp_timeout$"
2155 description = "Seconds before connection attempt times out"
2159 set_if = "$nscp_showall$"
2160 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2164 vars.nscp_address = "$check_address$"
2165 vars.nscp_port = 12489
2166 vars.nscp_showall = false
2169 object CheckCommand "by_ssh" {
2170 import "ipv4-or-ipv6"
2172 command = [ PluginDir + "/check_by_ssh" ]
2176 value = "$by_ssh_address$"
2177 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2180 value = "$by_ssh_port$"
2181 description = "Port number (default: none)"
2184 var command = macro("$by_ssh_command$")
2185 var arguments = macro("$by_ssh_arguments$")
2187 if (typeof(command) == String && !arguments) {
2191 var escaped_args = []
2192 for (arg in resolve_arguments(command, arguments)) {
2193 escaped_args.add(escape_shell_arg(arg))
2195 return escaped_args.join(" ")
2198 value = "$by_ssh_logname$"
2199 description = "SSH user name on remote host [optional]"
2202 value = "$by_ssh_identity$"
2203 description = "identity of an authorized key [optional]"
2206 set_if = "$by_ssh_quiet$"
2207 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2210 value = "$by_ssh_warn$"
2211 description = "Response time to result in warning status (seconds)"
2214 value = "$by_ssh_crit$"
2215 description = "Response time to result in critical status (seconds)"
2218 value = "$by_ssh_timeout$"
2219 description = "Seconds before connection times out (default: 10)"
2222 value = "$by_ssh_options$"
2223 description = "Provide ssh options (may be repeated)"
2226 set_if = "$by_ssh_ipv4$"
2227 description = "Use IPv4 only"
2230 set_if = "$by_ssh_ipv6$"
2231 description = "Use IPv6 only"
2235 vars.by_ssh_address = "$check_address$"
2236 vars.by_ssh_quiet = false
2237 vars.check_ipv4 = "$by_ssh_ipv4$"
2238 vars.check_ipv6 = "$by_ssh_ipv6$"
2241 object CheckCommand "ups" {
2242 import "ipv4-or-ipv6"
2244 command = [ PluginDir + "/check_ups" ]
2248 value = "$ups_address$"
2249 description = "Address of the upsd server"
2253 value = "$ups_name$"
2254 description = "Name of the UPS to monitor"
2258 value = "$ups_port$"
2259 description = "Port number (default: 3493)"
2262 value = "$ups_variable$"
2263 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2266 value = "$ups_warning$"
2267 description = "Warning threshold for the selected variable"
2270 value = "$ups_critical$"
2271 description = "Critical threshold for the selected variable"
2274 set_if = "$ups_celsius$"
2275 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2278 value = "$ups_timeout$"
2279 description = "Seconds before the connection times out (default: 10)"
2283 vars.ups_address = "$check_address$"
2284 vars.ups_name = "ups"
2287 object CheckCommand "nrpe" {
2288 import "ipv4-or-ipv6"
2290 command = [ PluginDir + "/check_nrpe" ]
2294 value = "$nrpe_address$"
2295 description = "The address of the host running the NRPE daemon"
2298 value = "$nrpe_port$"
2301 value = "$nrpe_command$"
2304 set_if = "$nrpe_no_ssl$"
2305 description = "Do not use SSL"
2308 set_if = "$nrpe_timeout_unknown$"
2309 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2312 value = "$nrpe_timeout$"
2313 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2316 value = "$nrpe_arguments$"
2321 set_if = "$nrpe_ipv4$"
2322 description = "Use IPv4 connection"
2325 set_if = "$nrpe_ipv6$"
2326 description = "Use IPv6 connection"
2329 set_if = "$nrpe_version_2$"
2330 description = "Use this if you want to connect to NRPE v2"
2334 vars.nrpe_address = "$check_address$"
2335 vars.nrpe_no_ssl = false
2336 vars.nrpe_timeout_unknown = false
2337 vars.check_ipv4 = "$nrpe_ipv4$"
2338 vars.check_ipv6 = "$nrpe_ipv6$"
2339 vars.nrpe_version_2 = false
2343 object CheckCommand "hpjd" {
2344 import "ipv4-or-ipv6"
2346 command = [ PluginDir + "/check_hpjd" ]
2350 value = "$hpjd_address$"
2351 description = "Host address"
2354 value = "$hpjd_community$"
2355 description = "The SNMP community name (default=public)"
2358 value = "$hpjd_port$"
2359 description = "Specify the port to check (default=161)"
2363 vars.hpjd_address = "$check_address$"
2366 object CheckCommand "icmp" {
2367 command = [ PluginDir + "/check_icmp" ]
2371 value = "$icmp_address$"
2374 description = "Host address"
2377 value = "$icmp_wrta$,$icmp_wpl$%"
2378 description = "warning threshold (currently 200.000ms,40%)"
2381 value = "$icmp_crta$,$icmp_cpl$%"
2382 description = "critical threshold (currently 500.000ms,80%)"
2385 value = "$icmp_source$"
2386 description = "specify a source IP address or device name"
2389 value = "$icmp_packets$"
2390 description = "number of packets to send (currently 5)"
2393 value = "$icmp_packet_interval$"
2394 description = "max packet interval (currently 80.000ms)"
2397 value = "$icmp_target_interval$"
2398 description = "max target interval (currently 0.000ms)"
2401 value = "$icmp_hosts_alive$"
2402 description = "number of alive hosts required for success"
2405 value = "$icmp_data_bytes$"
2406 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2409 value = "$icmp_timeout$"
2410 description = "timeout value (seconds, currently 10)"
2413 value = "$icmp_ttl$"
2414 description = "TTL on outgoing packets (currently 0)"
2418 vars.icmp_address = "$address$"
2419 vars.icmp_wrta = 100
2421 vars.icmp_crta = 200
2425 object CheckCommand "ldap" {
2426 import "ipv4-or-ipv6"
2428 command = [ PluginDir + "/check_ldap" ]
2432 value = "$ldap_address$"
2433 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2436 value = "$ldap_port$"
2437 description = "Port number (default: 389)"
2440 value = "$ldap_attr$"
2441 description = "ldap attribute to search (default: \"(objectclass=*)\""
2444 value = "$ldap_base$"
2446 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2449 value = "$ldap_bind$"
2450 description = "ldap bind DN (if required)"
2453 value = "$ldap_pass$"
2454 description = "ldap password (if required)"
2457 set_if = "$ldap_starttls$"
2458 description = "use starttls mechanism introduced in protocol version 3"
2461 set_if = "$ldap_ssl$"
2462 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2465 set_if = "$ldap_v2$"
2466 description = "Use LDAP protocol version 2"
2469 set_if = "$ldap_v3$"
2470 description = "Use LDAP protocol version 3"
2473 value = "$ldap_warning$"
2474 description = "Response time to result in warning status (seconds)"
2477 value = "$ldap_critical$"
2478 description = "Response time to result in critical status (seconds)"
2481 value = "$ldap_warning_entries$"
2482 description = "Number of found entries to result in warning status (optional)"
2485 value = "$ldap_critical_entries$"
2486 description = "Number of found entries to result in critical status (optional)"
2489 value = "$ldap_timeout$"
2490 description = "Seconds before connection times out (default: 10)"
2493 set_if = "$ldap_verbose$"
2494 description = "Show details for command-line debugging"
2498 vars.ldap_address = "$check_address$"
2500 vars.ldap_v3 = false
2501 vars.ldap_timeout = 10s
2502 vars.ldap_verbose = false
2505 object CheckCommand "clamd" {
2506 command = [ PluginDir + "/check_clamd" ]
2510 value = "$clamd_address$"
2511 description = "The host's address or unix socket (must be an absolute path)."
2515 value = "$clamd_port$"
2516 description = "Port number (default: none)."
2519 value = "$clamd_expect$"
2520 description = "String to expect in server response (may be repeated)."
2524 set_if = "$clamd_all$"
2525 description = "All expect strings need to occur in server response. Default is any."
2530 set_if = "$clamd_escape_send$"
2531 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2535 value = "$clamd_send$"
2536 description = "String to send to the server."
2541 set_if = "$clamd_escape_quit$"
2542 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2546 value = "$clamd_quit$"
2547 description = "String to send server to initiate a clean close of the connection."
2550 value = "$clamd_refuse$"
2551 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2554 value = "$clamd_mismatch$"
2555 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2558 set_if = "$clamd_jail$"
2559 description = "Hide output from TCP socket."
2562 value = "$clamd_maxbytes$"
2563 description = "Close connection once more than this number of bytes are received."
2566 value = "$clamd_delay$"
2567 description = "Seconds to wait between sending string and polling for response."
2570 value = "$clamd_certificate$"
2571 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."
2574 set_if = "$clamd_ssl$"
2575 description = "Use SSL for the connection."
2578 value = "$clamd_wtime$"
2579 description = "Response time to result in warning status (seconds)."
2582 value = "$clamd_ctime$"
2583 description = "Response time to result in critical status (seconds)."
2586 value = "$clamd_timeout$"
2587 description = "Seconds before connection times out. Defaults to 10."
2590 set_if = "$clamd_ipv4$"
2591 description = "Use IPv4 only"
2594 set_if = "$clamd_ipv6$"
2595 description = "Use IPv6 only"
2599 vars.clamd_ssl = false
2600 vars.clamd_refuse = "crit"
2601 vars.clamd_mismatch = "warn"
2602 vars.clamd_timeout = 10
2603 vars.check_ipv4 = "$clamd_ipv4$"
2604 vars.check_ipv6 = "$clamd_ipv6$"
2607 object CheckCommand "mailq" {
2608 command = [ PluginDir + "/check_mailq" ]
2612 value = "$mailq_warning$"
2613 description = "Min. number of messages in queue to generate warning"
2617 value = "$mailq_critical$"
2618 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2622 value = "$mailq_domain_warning$"
2623 description = "Min. number of messages for same domain in queue to generate warning"
2626 value = "$mailq_domain_critical$"
2627 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2630 value = "$mailq_timeout$"
2631 description = "Plugin timeout in seconds (default = 15)"
2634 value = "$mailq_servertype$"
2635 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2638 set_if = "$mailq_sudo$"
2639 description = "Use sudo for mailq command"
2644 object CheckCommand "pgsql" {
2645 import "ipv4-or-ipv6"
2647 command = [ PluginDir + "/check_pgsql" ]
2651 value = "$pgsql_hostname$"
2652 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2655 value = "$pgsql_port$"
2656 description = "Port number (default: 5432)"
2659 value = "$pgsql_database$"
2660 description = "Database to check (default: template1)"
2663 value = "$pgsql_username$"
2664 description = "Login name of user"
2667 value = "$pgsql_password$"
2668 description = "Password (BIG SECURITY ISSUE)"
2671 value = "$pgsql_options$"
2672 description = "Connection parameters (keyword = value), see below"
2675 value = "$pgsql_warning$"
2676 description = "Response time to result in warning status (seconds)"
2679 value = "$pgsql_critical$"
2680 description = "Response time to result in critical status (seconds)"
2683 value = "$pgsql_timeout$"
2684 description = "Seconds before connection times out (default: 10)"
2687 value = "$pgsql_query$"
2688 description = "SQL query to run. Only first column in first row will be read"
2691 value = "$pgsql_query_warning$"
2692 description = "SQL query value to result in warning status (double)"
2695 value = "$pgsql_query_critical$"
2696 description = "SQL query value to result in critical status (double)"
2700 vars.pgsql_hostname = "$check_address$"
2703 object CheckCommand "mysql" {
2704 import "ipv4-or-ipv6"
2706 command = [ PluginDir + "/check_mysql" ]
2710 value = "$mysql_hostname$"
2711 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2714 value = "$mysql_port$"
2715 description = "Port number (default: 3306)"
2718 set_if = "$mysql_ignore_auth$"
2719 description = "Ignore authentication failure and check for mysql connectivity only"
2722 value = "$mysql_socket$"
2723 description = "Use the specified socket"
2726 value = "$mysql_database$"
2727 description = "Check database with indicated name"
2730 value = "$mysql_file$"
2731 description = "Read from the specified client options file"
2734 value = "$mysql_group$"
2735 description = "Use a client options group"
2738 value = "$mysql_username$"
2739 description = "Connect using the indicated username"
2742 value = "$mysql_password$"
2743 description = "Use the indicated password to authenticate the connection"
2746 set_if = "$mysql_check_slave$"
2747 description = "Check if the slave thread is running properly"
2750 value = "$mysql_warning$"
2751 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2754 value = "$mysql_critical$"
2755 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2758 set_if = "$mysql_ssl$"
2759 description = "Use ssl encryptation"
2762 value = "$mysql_cacert$"
2763 description = "Path to CA signing the cert"
2766 value = "$mysql_cert$"
2767 description = "Path to SSL certificate"
2770 value = "$mysql_key$"
2771 description = "Path to private SSL key"
2774 value = "$mysql_cadir$"
2775 description = "Path to CA directory"
2778 value = "$mysql_ciphers$"
2779 description = "List of valid SSL ciphers"
2783 vars.mysql_hostname = "$check_address$"
2786 object CheckCommand "negate" {
2787 command = [ PluginDir + "/negate" ]
2791 value = "$negate_timeout$"
2792 description = "Seconds before plugin times out (default: 11)"
2795 value = "$negate_timeout_result$"
2796 description = "Custom result on Negate timeouts"
2799 value = "$negate_ok$"
2802 value = "$negate_warning$"
2805 value = "$negate_critical$"
2808 value = "$negate_unknown$"
2811 set_if = "$negate_substitute$"
2812 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2814 "--wrapped-plugin" = {
2816 var command = macro("$negate_command$")
2817 var arguments = macro("$negate_arguments$")
2819 if (typeof(command) == String && !arguments) {
2823 var escaped_args = []
2824 for (arg in resolve_arguments(command, arguments)) {
2825 escaped_args.add(arg)
2827 return escaped_args.join(" ")
2834 vars.negate_timeout_result = "UNKNOWN"
2837 object CheckCommand "file_age" {
2838 command = [ PluginDir + "/check_file_age" ]
2842 value = "$file_age_warning_time$"
2843 description = "File must be no more than this many seconds old (default: 240s)"
2846 value = "$file_age_critical_time$"
2847 description = "File must be no more than this many seconds old (default: 600s)"
2850 value = "$file_age_warning_size$"
2851 description = "File must be at least this many bytes long"
2854 value = "$file_age_critical_size$"
2855 description = "File must be at least this many bytes long (default: 0B)"
2858 set_if = "$file_age_ignoremissing$"
2859 description = "return OK if the file does not exist"
2862 value = "$file_age_file$"
2863 description = "File to monitor"
2867 vars.file_age_ignoremissing = false
2870 object CheckCommand "smart" {
2871 command = [ PluginDir + "/check_ide_smart" ]
2875 value = "$smart_device$"
2876 description = "Name of a local hard drive to monitor"
2882 object CheckCommand "breeze" {
2883 import "ipv4-or-ipv6"
2885 command = [ PluginDir + "/check_breeze" ]
2889 value = "$breeze_hostname$"
2890 description = "Name or IP address of host to check"
2894 value = "$breeze_community$"
2895 description = "SNMPv1 community (default public)"
2898 value = "$breeze_warning$"
2899 description = "Percentage strength below which a WARNING status will result"
2903 value = "$breeze_critical$"
2904 description = "Percentage strength below which a CRITICAL status will result"
2909 vars.breeze_hostname = "$check_address$"
2910 vars.breeze_warning = "50"
2911 vars.breeze_critical = "20"
2914 object CheckCommand "flexlm" {
2915 command = [ PluginDir + "/check_flexlm" ]
2919 value = "$flexlm_licensefile$"
2920 description = "Name of license file (usually license.dat)"
2924 value = "$flexlm_timeout$"
2925 description = "Plugin time out in seconds (default = 15)"
2930 object CheckCommand "game" {
2931 import "ipv4-or-ipv6"
2933 command = [ PluginDir + "/check_game" ]
2937 value = "$game_port$"
2938 description = "Port to connect to"
2941 value = "$game_timeout$"
2942 description = "Seconds before connection times out (default: 10)"
2945 value = "$game_gamefield$"
2946 description = "Field number in raw qstat output that contains game name"
2949 value = "$game_mapfield$"
2950 description = "Field number in raw qstat output that contains map name"
2953 value = "$game_pingfield$"
2954 description = "Field number in raw qstat output that contains ping time"
2957 value = "$game_gametime$"
2958 description = "Field number in raw qstat output that contains game time"
2961 value = "$game_hostname$"
2962 description = "Name of the host running the game"
2965 value = "$game_game$"
2966 description = "Name of the game"
2971 value = "$game_ipaddress$"
2972 description = "Ipaddress of the game server to query"
2979 object CheckCommand "mysql_query" {
2980 import "ipv4-or-ipv6"
2982 command = [ PluginDir + "/check_mysql_query" ]
2986 value = "$mysql_query_hostname$"
2987 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2990 value = "$mysql_query_port$"
2991 description = "Port number (default: 3306)"
2994 value = "$mysql_query_username$"
2995 description = "Username to login with"
2998 value = "$mysql_query_password$"
2999 description = "Password to login with"
3002 value = "$mysql_query_database$"
3003 description = "Database to check"
3006 value = "$mysql_query_file$"
3007 description = "Read from the specified client options file"
3010 value = "$mysql_query_group$"
3011 description = "Use a client options group"
3014 value = "$mysql_query_execute$"
3015 description = "SQL query to run. Only first column in first row will be read"
3018 value = "$mysql_query_warning$"
3019 description = "Warning range (format: start:end). Alert if outside this range"
3022 value = "$mysql_query_critical$"
3023 description = "Critical range"
3027 vars.mysql_query_hostname = "$check_address$"
3030 object CheckCommand "radius" {
3031 import "ipv4-or-ipv6"
3034 PluginDir + "/check_radius",
3039 value = "$radius_address$",
3040 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3043 value = "$radius_config_file$",
3044 description = "Configuration file"
3047 value = "$radius_username$",
3048 description = "The user to authenticate"
3051 value = "$radius_password$",
3052 description = "Password for authentication"
3055 value = "$radius_port$",
3056 description = "Port number (default: 1645)"
3059 value = "$radius_nas_id$",
3060 description = "NAS identifier"
3063 value = "$radius_nas_address$",
3064 description = "NAS IP Address"
3067 value = "$radius_expect$",
3068 description = "Response string to expect from the server"
3071 value = "$radius_retries$",
3072 description = "Number of times to retry a failed connection"
3075 value = "$radius_timeout$",
3076 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3080 vars.radius_address = "$check_address$"
3083 object CheckCommand "nscp_api" {
3084 import "ipv4-or-ipv6"
3086 command = [ PluginDir + "/check_nscp_api" ]
3090 value = "$nscp_api_host$"
3091 description = "NSCP API host address"
3095 value = "$nscp_api_port$"
3096 description = "NSCP API host port. Defaults to 8443."
3099 value = "$nscp_api_password$"
3100 description = "NSCP API password"
3103 value = "$nscp_api_query$"
3104 description = "NSCPI API Query endpoint to use"
3107 value = "$nscp_api_arguments$"
3108 description = "NSCP API Query arguments"
3113 vars.nscp_api_host = "$check_address$"