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 vars.ssl_address = "$check_address$"
347 vars.ssl_cert_valid_days_warn = false
348 vars.ssl_cert_valid_days_critical = false
349 vars.ssl_sni = "$ssl_address$"
353 object CheckCommand "udp" {
354 import "ipv4-or-ipv6"
357 PluginDir + "/check_udp",
358 "-H", "$udp_address$",
366 description = "String to send to the server"
369 value = "$udp_expect$"
371 description = " String to expect in server response"
375 description = "String to send server to initiate a clean close of the connection"
378 set_if = "$udp_ipv4$"
379 description = "Use IPv4 connection"
382 set_if = "$udp_ipv6$"
383 description = "Use IPv6 connection"
387 vars.udp_address = "$check_address$"
388 vars.check_ipv4 = "$udp_ipv4$"
389 vars.check_ipv6 = "$udp_ipv6$"
392 object CheckCommand "http" {
393 import "ipv4-or-ipv6"
395 command = [ PluginDir + "/check_http" ]
399 value = "$http_vhost$"
400 description = "Host name argument for servers using host headers (virtual host)"
403 value = "$http_address$"
404 description = "IP address or name (use numeric address if possible to bypass DNS lookup)"
408 description = "URL to GET or POST (default: /)"
411 value = "$http_port$"
412 description = "Port number (default: 80)"
415 set_if = "$http_ssl$"
416 description = "Connect via SSL"
419 set_if = "$http_ssl_force_tlsv1$"
420 description = "Connect via SSL version TLSv1"
423 set_if = "$http_ssl_force_tlsv1_1$"
424 description = "Connect via SSL version TLSv1.1"
427 set_if = "$http_ssl_force_tlsv1_2$"
428 description = "Connect via SSL version TLSv1.2"
431 set_if = "$http_ssl_force_sslv2$"
432 description = "Connect via SSL version SSLv2"
435 set_if = "$http_ssl_force_sslv3$"
436 description = "Connect via SSL version SSLv3"
439 set_if = "$http_ssl_force_tlsv1_or_higher$"
440 description = "Connect via SSL version TLSv1 and newer"
443 set_if = "$http_ssl_force_tlsv1_1_or_higher$"
444 description = "Connect via SSL version TLSv1.1 and newer"
447 set_if = "$http_ssl_force_tlsv1_2_or_higher$"
448 description = "Connect via SSL version TLSv1.2 and newer"
451 set_if = "$http_ssl_force_sslv2_or_higher$"
452 description = "Connect via SSL version SSLv2 and newer"
455 set_if = "$http_ssl_force_sslv3_or_higher$"
456 description = "Connect via SSL version SSLv3 and newer"
459 set_if = "$http_sni$"
460 description = "Enable SSL/TLS hostname extension support (SNI)"
463 value = "$http_certificate$"
464 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."
467 value = "$http_clientcert$"
468 description = "Name of file contains the client certificate (PEM format)"
471 value = "$http_privatekey$"
472 description = "Name of file contains the private key (PEM format)"
475 value = "$http_auth_pair$"
476 description = "Username:password on sites with basic authentication"
479 set_if = "$http_ignore_body$"
480 description = "Don't wait for document body: stop reading after headers"
483 value = "$http_warn_time$"
484 description = "Response time to result in warning status (seconds)"
487 value = "$http_critical_time$"
488 description = "Response time to result in critical status (seconds)"
491 value = "$http_expect$"
492 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.)"
495 value = "$http_headerstring$"
496 description = "String to expect in the response headers"
499 value = "$http_string$"
500 description = "String to expect in the content"
503 value = "$http_post$"
504 description = "URL encoded http POST data"
507 value = "$http_method$"
508 description = "Set http method (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"
511 value = "$http_maxage$"
512 description = "Warn if document is more than seconds old"
515 value = "$http_contenttype$"
516 description = "Specify Content-Type header when POSTing"
519 set_if = "$http_linespan$"
520 description = "Allow regex to span newline"
524 value = "$http_expect_body_regex$"
525 description = "Search page for regex"
529 value = "$http_expect_body_eregi$"
530 description = "Search page for case-insensitive regex"
534 set_if = "$http_invertregex$"
535 description = "Return CRITICAL if found, OK if not"
538 value = "$http_proxy_auth_pair$"
539 description = "Username:password on proxy-servers with basic authentication"
542 value = "$http_useragent$"
543 description = "String to be sent in http header as User Agent"
546 value = "$http_header$"
547 description = "Any other tags to be sent in http header"
550 set_if = "$http_extendedperfdata$"
551 description = "Print additional perfdata"
554 value = "$http_onredirect$"
555 description = "How to handle redirect pages"
558 value = "$http_pagesize$"
559 description = "Minim page size required:Maximum page size required"
562 value = "$http_timeout$"
563 description = "Seconds before connection times out"
566 set_if = "$http_ipv4$"
567 description = "Use IPv4 connection"
570 set_if = "$http_ipv6$"
571 description = "Use IPv6 connection"
574 set_if = "$http_link$"
575 description = "Wrap output in HTML link"
578 set_if = "$http_verbose$"
579 description = "Show details for command-line debugging"
583 vars.http_address = "$check_address$"
584 vars.http_ssl = false
585 vars.http_sni = false
586 vars.http_linespan = false
587 vars.http_invertregex = false
588 vars.check_ipv4 = "$http_ipv4$"
589 vars.check_ipv6 = "$http_ipv6$"
590 vars.http_link = false
591 vars.http_verbose = false
594 object CheckCommand "ftp" {
595 import "ipv4-or-ipv6"
597 command = [ PluginDir + "/check_ftp" ]
601 value = "$ftp_address$"
602 description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set."
606 description = "The FTP port number. Defaults to none"
609 value = "$ftp_expect$"
610 description = "String to expect in server response (may be repeated)."
614 description = "All expect strings need to occur in server response. Default is any."
619 set_if = "$ftp_escape_send$"
620 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
625 description = "String to send to the server."
630 set_if = "$ftp_escape_quit$"
631 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
636 description = "String to send server to initiate a clean close of the connection."
639 value = "$ftp_refuse$"
640 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
643 value = "$ftp_mismatch$"
644 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
647 set_if = "$ftp_jail$"
648 description = "Hide output from TCP socket."
651 value = "$ftp_maxbytes$"
652 description = "Close connection once more than this number of bytes are received."
655 value = "$ftp_delay$"
656 description = "Seconds to wait between sending string and polling for response."
659 value = "$ftp_certificate$"
660 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."
664 description = "Use SSL for the connection."
667 value = "$ftp_wtime$"
668 description = "Response time to result in warning status (seconds)."
671 value = "$ftp_ctime$"
672 description = "Response time to result in critical status (seconds)."
675 value = "$ftp_timeout$"
676 description = "Seconds before connection times out. Defaults to 10."
679 set_if = "$ftp_ipv4$"
680 description = "Use IPv4 connection"
683 set_if = "$ftp_ipv6$"
684 description = "Use IPv6 connection"
688 vars.ftp_address = "$check_address$"
690 vars.ftp_refuse = "crit"
691 vars.ftp_mismatch = "warn"
692 vars.ftp_timeout = 10
693 vars.check_ipv4 = "$ftp_ipv4$"
694 vars.check_ipv6 = "$ftp_ipv6$"
697 object CheckCommand "smtp" {
698 import "ipv4-or-ipv6"
700 command = [ PluginDir + "/check_smtp" ]
704 value = "$smtp_address$"
705 description = "Host name, IP Address, or unix socket (must be an absolute path)"
708 value = "$smtp_port$"
709 description = "Port number (default: 25)"
712 value = "$smtp_mail_from$"
713 description = "FROM-address to include in MAIL command, required by Exchange 2000"
716 value = "$smtp_expect$"
717 description = "String to expect in first line of server response (default: '220')"
720 value = "$smtp_command$"
721 description = "SMTP command"
724 value = "$smtp_response$"
725 description = "Expected response to command (may be used repeatedly)"
728 value = "$smtp_helo_fqdn$"
729 description = "FQDN used for HELO"
732 value = "$smtp_certificate_age$"
733 description = "Minimum number of days a certificate has to be valid"
736 set_if = "$smtp_starttls$"
737 description = "Use STARTTLS for the connection."
740 value = "$smtp_authtype$"
741 description = "SMTP AUTH type to check (default none, only LOGIN supported)"
744 value = "$smtp_authuser$"
745 description = "SMTP AUTH username"
748 value = "$smtp_authpass$"
749 description = "SMTP AUTH password"
752 value = "$smtp_ignore_quit$"
753 description = "Ignore failure when sending QUIT command to server"
756 value = "$smtp_warning$"
757 description = "Response time to result in warning status (seconds)"
760 value = "$smtp_critical$"
761 description = "Response time to result in critical status (seconds)"
764 value = "$smtp_timeout$"
765 description = "Seconds before connection times out (default: 10)"
768 set_if = "$smtp_ipv4$"
769 description = "Use IPv4 connection"
772 set_if = "$smtp_ipv6$"
773 description = "Use IPv6 connection"
777 vars.smtp_address = "$check_address$"
778 vars.check_ipv4 = "$smtp_ipv4$"
779 vars.check_ipv6 = "$smtp_ipv6$"
782 object CheckCommand "ssmtp" {
783 import "ipv4-or-ipv6"
785 command = [ PluginDir + "/check_ssmtp" ]
789 value = "$ssmtp_address$"
790 description = "Host name, IP Address, or unix socket (must be an absolute path)"
793 value = "$ssmtp_port$"
794 description = "Port number (default: none)"
797 value = "$ssmtp_escape$"
798 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"
801 value = "$ssmtp_send$"
802 description = "String to send to the server"
805 value = "$ssmtp_expect$"
806 description = "String to expect in server response (may be repeated)"
809 set_if = "$ssmtp_all$"
810 description = "All expect strings need to occur in server response. Default is any."
813 value = "$ssmtp_quit$"
814 description = "String to send server to initiate a clean close of the connection"
817 value = "$ssmtp_refuse$"
818 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
821 value = "$ssmtp_mismatch$"
822 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
825 set_if = "$ssmtp_jail$"
826 description = "Hide output from TCP socket."
829 value = "$ssmtp_maxbytes$"
830 description = "Close connection once more than this number of bytes are received"
833 value = "$ssmtp_delay$"
834 description = "Seconds to wait between sending string and polling for response"
837 value = "$ssmtp_certificate_age$"
838 description = "Minimum number of days a certificate has to be valid"
841 set_if = "$ssmtp_ssl$"
842 description = "Use SSL for the connection."
845 value = "$ssmtp_warning$"
846 description = "Response time to result in warning status (seconds)"
849 value = "$ssmtp_critical$"
850 description = "Response time to result in critical status (seconds)"
853 value = "$ssmtp_timeout$"
854 description = "Seconds before connection times out (default: 10)"
857 set_if = "$ssmtp_ipv4$"
858 description = "Use IPv4 connection"
861 set_if = "$ssmtp_ipv6$"
862 description = "Use IPv6 connection"
866 vars.ssmtp_address = "$check_address$"
867 vars.check_ipv4 = "$ssmtp_ipv4$"
868 vars.check_ipv6 = "$ssmtp_ipv6$"
871 object CheckCommand "imap" {
872 import "ipv4-or-ipv6"
874 command = [ PluginDir + "/check_imap" ]
878 value = "$imap_address$"
879 description = "Host name, IP Address, or unix socket (must be an absolute path)"
882 value = "$imap_port$"
883 description = "Port number (default: none)"
886 value = "$imap_escape$"
887 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"
890 value = "$imap_send$"
891 description = "String to send to the server"
894 value = "$imap_expect$"
895 description = "String to expect in server response (may be repeated)"
898 set_if = "$imap_all$"
899 description = "All expect strings need to occur in server response. Default is any."
902 value = "$imap_quit$"
903 description = "String to send server to initiate a clean close of the connection"
906 value = "$imap_refuse$"
907 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
910 value = "$imap_mismatch$"
911 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
914 set_if = "$imap_jail$"
915 description = "Hide output from TCP socket."
918 value = "$imap_maxbytes$"
919 description = "Close connection once more than this number of bytes are received"
922 value = "$imap_delay$"
923 description = "Seconds to wait between sending string and polling for response"
926 value = "$imap_certificate_age$"
927 description = "Minimum number of days a certificate has to be valid"
930 set_if = "$imap_ssl$"
931 description = "Use SSL for the connection."
934 value = "$imap_warning$"
935 description = "Response time to result in warning status (seconds)"
938 value = "$imap_critical$"
939 description = "Response time to result in critical status (seconds)"
942 value = "$imap_timeout$"
943 description = "Seconds before connection times out (default: 10)"
946 set_if = "$imap_ipv4$"
947 description = "Use IPv4 connection"
950 set_if = "$imap_ipv6$"
951 description = "Use IPv6 connection"
955 vars.imap_address = "$check_address$"
956 vars.check_ipv4 = "$imap_ipv4$"
957 vars.check_ipv6 = "$imap_ipv6$"
960 object CheckCommand "simap" {
961 import "ipv4-or-ipv6"
963 command = [ PluginDir + "/check_simap" ]
967 value = "$simap_address$"
968 description = "Host name, IP Address, or unix socket (must be an absolute path)"
971 value = "$simap_port$"
972 description = "Port number (default: none)"
975 value = "$simap_escape$"
976 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"
979 value = "$simap_send$"
980 description = "String to send to the server"
983 value = "$simap_expect$"
984 description = "String to expect in server response (may be repeated)"
987 set_if = "$simap_all$"
988 description = "All expect strings need to occur in server response. Default is any."
991 value = "$simap_quit$"
992 description = "String to send server to initiate a clean close of the connection"
995 value = "$simap_refuse$"
996 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
999 value = "$simap_mismatch$"
1000 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1003 set_if = "$simap_jail$"
1004 description = "Hide output from TCP socket."
1007 value = "$simap_maxbytes$"
1008 description = "Close connection once more than this number of bytes are received"
1011 value = "$simap_delay$"
1012 description = "Seconds to wait between sending string and polling for response"
1015 value = "$simap_certificate_age$"
1016 description = "Minimum number of days a certificate has to be valid"
1019 set_if = "$simap_ssl$"
1020 description = "Use SSL for the connection."
1023 value = "$simap_warning$"
1024 description = "Response time to result in warning status (seconds)"
1027 value = "$simap_critical$"
1028 description = "Response time to result in critical status (seconds)"
1031 value = "$simap_timeout$"
1032 description = "Seconds before connection times out (default: 10)"
1035 set_if = "$simap_ipv4$"
1036 description = "Use IPv4 connection"
1039 set_if = "$simap_ipv6$"
1040 description = "Use IPv6 connection"
1044 vars.simap_address = "$check_address$"
1045 vars.check_ipv4 = "$simap_ipv4$"
1046 vars.check_ipv6 = "$simap_ipv6$"
1049 object CheckCommand "pop" {
1050 import "ipv4-or-ipv6"
1052 command = [ PluginDir + "/check_pop" ]
1056 value = "$pop_address$"
1057 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1060 value = "$pop_port$"
1061 description = "Port number (default: none)"
1064 value = "$pop_escape$"
1065 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"
1068 value = "$pop_send$"
1069 description = "String to send to the server"
1072 value = "$pop_expect$"
1073 description = "String to expect in server response (may be repeated)"
1076 set_if = "$pop_all$"
1077 description = "All expect strings need to occur in server response. Default is any."
1080 value = "$pop_quit$"
1081 description = "String to send server to initiate a clean close of the connection"
1084 value = "$pop_refuse$"
1085 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1088 value = "$pop_mismatch$"
1089 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1092 set_if = "$pop_jail$"
1093 description = "Hide output from TCP socket."
1096 value = "$pop_maxbytes$"
1097 description = "Close connection once more than this number of bytes are received"
1100 value = "$pop_delay$"
1101 description = "Seconds to wait between sending string and polling for response"
1104 value = "$pop_certificate_age$"
1105 description = "Minimum number of days a certificate has to be valid"
1108 set_if = "$pop_ssl$"
1109 description = "Use SSL for the connection."
1112 value = "$pop_warning$"
1113 description = "Response time to result in warning status (seconds)"
1116 value = "$pop_critical$"
1117 description = "Response time to result in critical status (seconds)"
1120 value = "$pop_timeout$"
1121 description = "Seconds before connection times out (default: 10)"
1124 set_if = "$pop_ipv4$"
1125 description = "Use IPv4 connection"
1128 set_if = "$pop_ipv6$"
1129 description = "Use IPv6 connection"
1133 vars.pop_address = "$check_address$"
1134 vars.check_ipv4 = "$pop_ipv4$"
1135 vars.check_ipv6 = "$pop_ipv6$"
1138 object CheckCommand "spop" {
1139 import "ipv4-or-ipv6"
1141 command = [ PluginDir + "/check_spop" ]
1145 value = "$spop_address$"
1146 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1149 value = "$spop_port$"
1150 description = "Port number (default: none)"
1153 value = "$spop_escape$"
1154 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"
1157 value = "$spop_send$"
1158 description = "String to send to the server"
1161 value = "$spop_expect$"
1162 description = "String to expect in server response (may be repeated)"
1165 set_if = "$spop_all$"
1166 description = "All expect strings need to occur in server response. Default is any."
1169 value = "$spop_quit$"
1170 description = "String to send server to initiate a clean close of the connection"
1173 value = "$spop_refuse$"
1174 description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1177 value = "$spop_mismatch$"
1178 description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1181 set_if = "$spop_jail$"
1182 description = "Hide output from TCP socket."
1185 value = "$spop_maxbytes$"
1186 description = "Close connection once more than this number of bytes are received"
1189 value = "$spop_delay$"
1190 description = "Seconds to wait between sending string and polling for response"
1193 value = "$spop_certificate_age$"
1194 description = "Minimum number of days a certificate has to be valid"
1197 set_if = "$spop_ssl$"
1198 description = "Use SSL for the connection."
1201 value = "$spop_warning$"
1202 description = "Response time to result in warning status (seconds)"
1205 value = "$spop_critical$"
1206 description = "Response time to result in critical status (seconds)"
1209 value = "$spop_timeout$"
1210 description = "Seconds before connection times out (default: 10)"
1213 set_if = "$spop_ipv4$"
1214 description = "Use IPv4 connection"
1217 set_if = "$spop_ipv6$"
1218 description = "Use IPv6 connection"
1222 vars.spop_address = "$check_address$"
1223 vars.check_ipv4 = "$spop_ipv4$"
1224 vars.check_ipv6 = "$spop_ipv6$"
1227 object CheckCommand "ntp_time" {
1228 import "ipv4-or-ipv6"
1230 command = [ PluginDir + "/check_ntp_time" ]
1234 value = "$ntp_address$"
1235 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1238 value = "$ntp_port$"
1239 description = "Port number (default: 123)"
1242 set_if = "$ntp_quiet$"
1243 description = "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
1246 value = "$ntp_warning$"
1247 description = "Offset to result in warning status (seconds)"
1250 value = "$ntp_critical$"
1251 description = "Offset to result in critical status (seconds)"
1254 value = "$ntp_timeoffset$"
1255 description = "Expected offset of the ntp server relative to local server (seconds)"
1258 value = "$ntp_timeout$"
1259 description = "Seconds before connection times out (default: 10)"
1262 set_if = "$ntp_ipv4$"
1263 description = "Use IPv4 connection"
1266 set_if = "$ntp_ipv6$"
1267 description = "Use IPv6 connection"
1271 vars.ntp_address = "$check_address$"
1272 vars.check_ipv4 = "$ntp_ipv4$"
1273 vars.check_ipv6 = "$ntp_ipv6$"
1276 object CheckCommand "ntp_peer" {
1277 import "ipv4-or-ipv6"
1279 command = [ PluginDir + "/check_ntp_peer" ]
1283 value = "$ntp_address$"
1284 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1287 value = "$ntp_port$"
1288 description = "Port number (default: 123)"
1291 value = "$ntp_warning$"
1292 description = "Offset to result in warning status (seconds)"
1295 value = "$ntp_critical$"
1296 description = "Offset to result in critical status (seconds)"
1299 value = "$ntp_wstratum$"
1300 description = "Warning threshold for stratum of server's synchronization peer"
1303 value = "$ntp_cstratum$"
1304 description = "Critical threshold for stratum of server's synchronization peer"
1307 value = "$ntp_wjitter$"
1308 description = "Warning threshold for jitter"
1311 value = "$ntp_cjitter$"
1312 description = "Critical threshold for jitter"
1315 value = "$ntp_wsource$"
1316 description = "Warning threshold for number of usable time sources (truechimers)"
1319 value = "$ntp_csource$"
1320 description = "Critical threshold for number of usable time sources (truechimers)"
1323 value = "$ntp_timeout$"
1324 description = "Seconds before connection times out (default: 10)"
1327 set_if = "$ntp_ipv4$"
1328 description = "Use IPv4 connection"
1331 set_if = "$ntp_ipv6$"
1332 description = "Use IPv6 connection"
1336 vars.ntp_address = "$check_address$"
1337 vars.check_ipv4 = "$ntp_ipv4$"
1338 vars.check_ipv6 = "$ntp_ipv6$"
1341 object CheckCommand "ssh" {
1342 import "ipv4-or-ipv6"
1344 command = [ PluginDir + "/check_ssh" ]
1348 value = "$ssh_port$"
1349 description = "Port number (default: 22)"
1352 value = "$ssh_timeout$"
1353 description = "Seconds before connection times out (default: 10)"
1356 value = "$ssh_address$"
1361 set_if = "$ssh_ipv4$"
1362 description = "Use IPv4 connection"
1365 set_if = "$ssh_ipv6$"
1366 description = "Use IPv6 connection"
1370 vars.ssh_address = "$check_address$"
1371 vars.check_ipv4 = "$ssh_ipv4$"
1372 vars.check_ipv6 = "$ssh_ipv6$"
1375 object CheckCommand "disk" {
1376 command = [ PluginDir + "/check_disk" ]
1380 value = "$disk_wfree$"
1381 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"
1386 value = "$disk_cfree$"
1387 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"
1392 value = "$disk_inode_wfree$"
1393 description = "Exit with WARNING status if less than PERCENT of inode space is free"
1396 value = "$disk_inode_cfree$"
1397 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
1400 value = "$disk_partitions$"
1401 description = "Path or partition (may be repeated)"
1407 value = "$disk_partition$"
1411 value = "$disk_partitions_excluded$"
1412 description = "Ignore device (only works if -p unspecified)"
1416 value = "$disk_partition_excluded$"
1419 set_if = "$disk_clear$"
1420 description = "Clear thresholds"
1423 set_if = "$disk_exact_match$"
1424 description = "For paths or partitions specified with -p, only check for exact paths"
1427 set_if = "$disk_errors_only$"
1428 description = "Display only devices/mountpoints with errors"
1431 set_if = "$disk_ignore_reserved$"
1432 description = "Don't account root-reserved blocks into freespace in perfdata"
1435 value = "$disk_group$"
1436 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
1439 set_if = "$disk_kilobytes$"
1440 description = "Same as --units kB"
1443 set_if = "$disk_local$"
1444 description = " Only check local filesystems"
1447 set_if = "$disk_stat_remote_fs$"
1448 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)"
1451 set_if = "$disk_mountpoint$"
1452 description = "Display the mountpoint instead of the partition"
1455 set_if = "$disk_megabytes$"
1456 description = "Same as --units MB"
1459 set_if = "$disk_all$"
1460 description = "Explicitly select all paths. This is equivalent to -R .*"
1463 value = "$disk_eregi_path$"
1464 description = "Case insensitive regular expression for path/partition (may be repeated)"
1468 value = "$disk_ereg_path$"
1469 description = "Regular expression for path or partition (may be repeated)"
1473 value = "$disk_ignore_eregi_path$"
1474 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
1479 value = "$disk_ignore_ereg_path$"
1480 description = "Regular expression to ignore selected path or partition (may be repeated)"
1485 value = "$disk_timeout$"
1486 description = "Seconds before connection times out (default: 10)"
1489 value = "$disk_units$"
1490 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
1493 value = "$disk_exclude_type$"
1494 description = "Ignore all filesystems of indicated type (may be repeated)"
1499 vars.disk_wfree = "20%"
1500 vars.disk_cfree = "10%"
1501 vars.disk_megabytes = true
1502 vars.disk_exclude_type = [ "none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs", "tracefs", "cgroup", "fuse.gvfsd-fuse", "fuse.gvfs-fuse-daemon", "fdescfs" ]
1505 object CheckCommand "disk_smb" {
1506 command = [ PluginDir + "/check_disk_smb" ]
1510 value = "$disk_smb_hostname$"
1511 description = "NetBIOS name of the server."
1514 value = "$disk_smb_share$"
1515 description = "Share name to be tested."
1518 value = "$disk_smb_workgroup$"
1519 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1522 value = "$disk_smb_address$"
1523 description = "IP-address of HOST (only necessary if HOST is in another network)."
1526 value = "$disk_smb_username$"
1527 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1530 value = "$disk_smb_password$"
1531 description = "Password to log in to server. (Defaults to an empty password if omitted)."
1534 value = "$disk_smb_wused$"
1535 description = "Percent of used space at which a warning will be generated (Default: 85%)."
1538 value = "$disk_smb_cused$"
1539 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1542 value = "$disk_smb_port$"
1543 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1547 vars.disk_smb_wused = "85%"
1548 vars.disk_smb_cused = "95%"
1551 object CheckCommand "users" {
1552 command = [ PluginDir + "/check_users" ]
1556 value = "$users_wgreater$"
1557 description = "Set WARNING status if more than INTEGER users are logged in"
1560 value = "$users_cgreater$"
1561 description = "Set CRITICAL status if more than INTEGER users are logged in"
1565 vars.users_wgreater = 20
1566 vars.users_cgreater = 50
1569 object CheckCommand "procs" {
1570 command = [ PluginDir + "/check_procs" ]
1574 value = "$procs_warning$"
1575 description = "Generate warning state if metric is outside this range"
1578 value = "$procs_critical$"
1579 description = "Generate critical state if metric is outside this range"
1582 value = "$procs_metric$"
1583 description = "Check thresholds against metric"
1586 value = "$procs_timeout$"
1587 description = "Seconds before plugin times out"
1590 set_if = "$procs_traditional$"
1591 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1594 value = "$procs_state$"
1595 description = "Only scan for processes that have one or more of the status flags you specify"
1598 value = "$procs_ppid$"
1599 description = "Only scan for children of the parent process ID indicated"
1602 value = "$procs_vsz$"
1603 description = "Only scan for processes with VSZ higher than indicated"
1606 value = "$procs_rss$"
1607 description = "Only scan for processes with RSS higher than indicated"
1610 value = "$procs_pcpu$"
1611 description = "Only scan for processes with PCPU higher than indicated"
1614 value = "$procs_user$"
1615 description = "Only scan for processes with user name or ID indicated"
1618 value = "$procs_argument$"
1619 description = "Only scan for processes with args that contain STRING"
1621 "--ereg-argument-array" = {
1622 value = "$procs_argument_regex$"
1623 description = "Only scan for processes with args that contain the regex STRING"
1626 value = "$procs_command$"
1627 description = "Only scan for exact matches of COMMAND (without path)"
1630 set_if = "$procs_nokthreads$"
1631 description = "Only scan for non kernel threads"
1635 vars.procs_traditional = false
1636 vars.procs_nokthreads = false
1637 vars.procs_warning = 250
1638 vars.procs_critical = 400
1641 object CheckCommand "swap" {
1642 command = [ PluginDir + "/check_swap" ]
1646 if (macro("$swap_integer$")) {
1647 return macro("$swap_wfree$")
1649 return macro("$swap_wfree$%")
1653 if (macro("$swap_integer$")) {
1654 return macro("$swap_cfree$")
1656 return macro("$swap_cfree$%")
1660 set_if = "$swap_allswaps$"
1661 description = "Conduct comparisons for all swap partitions, one by one"
1664 value = "$swap_noswap$"
1665 description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1669 vars.swap_wfree = 50
1670 vars.swap_cfree = 25
1671 vars.swap_integer = false
1672 vars.swap_allswaps = false
1675 object CheckCommand "load" {
1676 command = [ PluginDir + "/check_load" ]
1680 value = "$load_wload1$,$load_wload5$,$load_wload15$"
1681 description = "Exit with WARNING status if load average exceeds WLOADn"
1684 value = "$load_cload1$,$load_cload5$,$load_cload15$"
1685 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1688 set_if = "$load_percpu$"
1689 description = "Divide the load averages by the number of CPUs (when possible)"
1693 vars.load_wload1 = 5.0
1694 vars.load_wload5 = 4.0
1695 vars.load_wload15 = 3.0
1697 vars.load_cload1 = 10.0
1698 vars.load_cload5 = 6.0
1699 vars.load_cload15 = 4.0
1701 vars.load_percpu = false
1704 object CheckCommand "snmp" {
1705 command = [ PluginDir + "/check_snmp" ]
1709 value = "$snmp_address$"
1710 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1713 value = "$snmp_oid$"
1714 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1717 value = "$snmp_community$"
1718 description = "Optional community string for SNMP communication (default is 'public')"
1721 value = "$snmp_crit$"
1722 description = "Critical threshold range(s)"
1725 value = "$snmp_warn$"
1726 description = "Warning threshold range(s)"
1729 value = "$snmp_string$"
1730 description = "Return OK state (for that OID) if STRING is an exact match"
1733 value = "$snmp_ereg$"
1734 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1737 value = "$snmp_eregi$"
1738 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1741 value = "$snmp_label$"
1742 description = "Prefix label for output from plugin"
1745 value = "$snmp_units$"
1746 description = "Units label(s) for output data (e.g., 'sec.')"
1749 value = "$snmp_timeout$"
1750 description = "Seconds before connection times out (default: 10)"
1753 value = "$snmp_port$"
1754 description = "Port number (default: 161)"
1757 value = "$snmp_retries$"
1758 description = "Number of retries to be used in the requests"
1760 "--invert-search" = {
1761 set_if = "$snmp_invert_search$"
1762 description = "Invert search result and return CRITICAL if found"
1765 value = "$snmp_version$"
1766 description = "SNMP protocol version"
1769 value = "$snmp_miblist$"
1770 description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1772 "--rate-multiplier" = {
1773 value = "$snmp_rate_multiplier$"
1774 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1777 set_if = "$snmp_rate$"
1778 description = "Enable rate calculation"
1781 set_if = "$snmp_getnext$"
1782 description = "Use SNMP GETNEXT instead of SNMP GET"
1786 vars.snmp_address = {{
1787 var addr_v4 = macro("$address$")
1788 var addr_v6 = macro("$address6$")
1793 return "udp6:[" + addr_v6 + "]"
1797 vars.snmp_community = "public"
1798 vars.snmp_invert_search = false
1799 vars.snmp_timeout = "10"
1802 object CheckCommand "snmpv3" {
1803 import "ipv4-or-ipv6"
1805 command = [ PluginDir + "/check_snmp" ]
1809 value = "$snmpv3_address$"
1810 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1813 value = "$snmpv3_port$"
1814 description = "Port number"
1817 set_if = "$snmpv3_getnext$"
1818 description = "Use SNMP GETNEXT instead of SNMP GET"
1822 description = "SNMP protocol version"
1825 value = "$snmpv3_seclevel$"
1826 description = "SNMPv3 securityLevel"
1829 value = "$snmpv3_auth_alg$"
1830 description = "SNMPv3 auth proto"
1833 value = "$snmpv3_user$"
1834 description = "SNMPv3 username"
1837 value = "$snmpv3_auth_key$"
1838 description = "SNMPv3 authentication password"
1841 value = "$snmpv3_priv_key$"
1842 description = "SNMPv3 privacy password"
1845 value = "$snmpv3_oid$"
1846 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1849 value = "$snmpv3_priv_alg$"
1850 description = "SNMPv3 priv proto (default DES)"
1853 value = "$snmpv3_warn$"
1854 description = "Warning threshold range(s)"
1857 value = "$snmpv3_crit$"
1858 description = "Critical threshold range(s)"
1861 value = "$snmpv3_string$"
1862 description = "Return OK state (for that OID) if STRING is an exact match"
1865 value = "$snmpv3_ereg$"
1866 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1869 value = "$snmpv3_eregi$"
1870 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1872 "--invert-search" = {
1873 set_if = "$snmpv3_invert_search$"
1874 description = "Invert search result and return CRITICAL if found"
1877 value = "$snmpv3_label$"
1878 description = "Prefix label for output from plugin"
1881 value = "$snmpv3_miblist$"
1882 description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1885 value = "$snmpv3_units$"
1886 description = "Units label(s) for output data (e.g., 'sec.')"
1888 "--rate-multiplier" = {
1889 value = "$snmpv3_rate_multiplier$"
1890 description = "Converts rate per second. For example, set to 60 to convert to per minute"
1893 set_if = "$snmpv3_rate$"
1894 description = "Enable rate calculation"
1897 value = "$snmpv3_timeout$"
1898 description = "Seconds before connection times out (default: 10)"
1902 vars.snmpv3_address = "$check_address$"
1903 vars.snmpv3_auth_alg = "SHA"
1904 vars.snmpv3_priv_alg = "AES"
1905 vars.snmpv3_seclevel = "authPriv"
1906 vars.snmpv3_timeout = "10"
1909 object CheckCommand "snmp-uptime" {
1912 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1915 object CheckCommand "apt" {
1916 command = [ PluginDir + "/check_apt" ]
1920 value = "$apt_extra_opts$"
1921 description = "Read options from an ini file."
1924 value = "$apt_upgrade$"
1925 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."
1927 "--dist-upgrade" = {
1928 value = "$apt_dist_upgrade$"
1929 description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1932 value = "$apt_include$"
1933 description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1936 value = "$apt_exclude$"
1937 description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1940 value = "$apt_critical$"
1941 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."
1944 value = "$apt_timeout$"
1945 description = "Seconds before plugin times out (default: 10)."
1947 "--only-critical" = {
1948 set_if = "$apt_only_critical$"
1949 description = "Only warn about critical upgrades."
1956 object CheckCommand "dhcp" {
1957 command = [ PluginDir + "/check_dhcp" ]
1961 value = "$dhcp_serverip$"
1962 description = "IP address of DHCP server that we must hear from"
1965 value = "$dhcp_requestedip$"
1966 description = "IP address that should be offered by at least one DHCP server"
1969 value = "$dhcp_timeout$"
1970 description = "Seconds to wait for DHCPOFFER before timeout occurs"
1973 value = "$dhcp_interface$"
1974 description = "Interface to to use for listening (i.e. eth0)"
1977 value = "$dhcp_mac$"
1978 description = "MAC address to use in the DHCP request"
1981 set_if = "$dhcp_unicast$"
1982 description = "Unicast testing: mimic a DHCP relay"
1986 vars.dhcp_unicast = false
1989 object CheckCommand "dns" {
1990 import "ipv4-or-ipv6"
1992 command = [ PluginDir + "/check_dns" ]
1996 value = "$dns_lookup$"
1997 description = "The name or address you want to query."
2000 value = "$dns_server$"
2001 description = "Optional DNS server you want to use for the lookup."
2004 value = "$dns_query_type$"
2005 description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2008 value = "$dns_expected_answers$"
2009 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)."
2012 set_if = "$dns_authoritative$"
2013 description = "Optionally expect the DNS server to be authoritative for the lookup"
2016 set_if = "$dns_accept_cname$"
2017 description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2020 value = "$dns_wtime$"
2021 description = "Return warning if elapsed time exceeds value."
2024 value = "$dns_ctime$"
2025 description = "Return critical if elapsed time exceeds value."
2028 value = "$dns_timeout$"
2029 description = "Seconds before connection times out. Defaults to 10."
2033 vars.dns_lookup = "$host.name$"
2034 vars.dns_timeout = 10
2037 object CheckCommand "dig" {
2038 import "ipv4-or-ipv6"
2040 command = [ PluginDir + "/check_dig" ]
2044 value = "$dig_server$"
2045 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2048 value = "$dig_port$"
2049 description = "Port number (default: 53)"
2052 value = "$dig_lookup$"
2054 description = "Machine name to lookup"
2057 value = "$dig_record_type$"
2058 description = "Record type to lookup (default: A)"
2061 value = "$dig_expected_address$"
2062 description = "An address expected to be in the answer section"
2065 value = "$dig_arguments$"
2066 description = "Pass STRING as argument(s) to dig"
2069 value = "$dig_warning$"
2070 description = "Response time to result in warning status (seconds)"
2073 value = "$dig_critical$"
2074 description = "Response time to result in critical status (seconds)"
2077 value = "$dig_timeout$"
2078 description = "Seconds before connection times out (default: 10)"
2081 set_if = "$dig_ipv4$"
2082 description = "Force dig to only use IPv4 query transport"
2085 set_if = "$dig_ipv6$"
2086 description = "Force dig to only use IPv6 query transport"
2090 vars.dig_server = "$check_address$"
2091 vars.check_ipv4 = "$dig_ipv4$"
2092 vars.check_ipv6 = "$dig_ipv6$"
2095 object CheckCommand "nscp" {
2096 import "ipv4-or-ipv6"
2098 command = [ PluginDir + "/check_nt" ]
2102 value = "$nscp_address$"
2103 description = "Name of the host to check"
2106 value = "$nscp_port$"
2107 description = "Optional port number (default: 1248)"
2110 value = "$nscp_password$"
2111 description = "Password needed for the request"
2114 value = "$nscp_variable$"
2116 description = "Variable to check"
2119 value = "$nscp_params$"
2123 value = "$nscp_warn$"
2124 description = "Threshold which will result in a warning status"
2127 value = "$nscp_crit$"
2128 description = "Threshold which will result in a critical status"
2131 value = "$nscp_timeout$"
2132 description = "Seconds before connection attempt times out"
2136 set_if = "$nscp_showall$"
2137 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2141 vars.nscp_address = "$check_address$"
2142 vars.nscp_port = 12489
2143 vars.nscp_showall = false
2146 object CheckCommand "by_ssh" {
2147 import "ipv4-or-ipv6"
2149 command = [ PluginDir + "/check_by_ssh" ]
2153 value = "$by_ssh_address$"
2154 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2157 value = "$by_ssh_port$"
2158 description = "Port number (default: none)"
2161 var command = macro("$by_ssh_command$")
2162 var arguments = macro("$by_ssh_arguments$")
2164 if (typeof(command) == String && !arguments) {
2168 var escaped_args = []
2169 for (arg in resolve_arguments(command, arguments)) {
2170 escaped_args.add(escape_shell_arg(arg))
2172 return escaped_args.join(" ")
2175 value = "$by_ssh_logname$"
2176 description = "SSH user name on remote host [optional]"
2179 value = "$by_ssh_identity$"
2180 description = "identity of an authorized key [optional]"
2183 set_if = "$by_ssh_quiet$"
2184 description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2187 value = "$by_ssh_warn$"
2188 description = "Response time to result in warning status (seconds)"
2191 value = "$by_ssh_crit$"
2192 description = "Response time to result in critical status (seconds)"
2195 value = "$by_ssh_timeout$"
2196 description = "Seconds before connection times out (default: 10)"
2199 value = "$by_ssh_options$"
2200 description = "Provide ssh options (may be repeated)"
2203 set_if = "$by_ssh_ipv4$"
2204 description = "Use IPv4 only"
2207 set_if = "$by_ssh_ipv6$"
2208 description = "Use IPv6 only"
2212 vars.by_ssh_address = "$check_address$"
2213 vars.by_ssh_quiet = false
2214 vars.check_ipv4 = "$by_ssh_ipv4$"
2215 vars.check_ipv6 = "$by_ssh_ipv6$"
2218 object CheckCommand "ups" {
2219 import "ipv4-or-ipv6"
2221 command = [ PluginDir + "/check_ups" ]
2225 value = "$ups_address$"
2226 description = "Address of the upsd server"
2230 value = "$ups_name$"
2231 description = "Name of the UPS to monitor"
2235 value = "$ups_port$"
2236 description = "Port number (default: 3493)"
2239 value = "$ups_variable$"
2240 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2243 value = "$ups_warning$"
2244 description = "Warning threshold for the selected variable"
2247 value = "$ups_critical$"
2248 description = "Critical threshold for the selected variable"
2251 set_if = "$ups_celsius$"
2252 description = "Display temperature in degrees Celsius instead of Fahrenheit"
2255 value = "$ups_timeout$"
2256 description = "Seconds before the connection times out (default: 10)"
2260 vars.ups_address = "$check_address$"
2261 vars.ups_name = "ups"
2264 object CheckCommand "nrpe" {
2265 import "ipv4-or-ipv6"
2267 command = [ PluginDir + "/check_nrpe" ]
2271 value = "$nrpe_address$"
2272 description = "The address of the host running the NRPE daemon"
2275 value = "$nrpe_port$"
2278 value = "$nrpe_command$"
2281 set_if = "$nrpe_no_ssl$"
2282 description = "Do not use SSL"
2285 set_if = "$nrpe_timeout_unknown$"
2286 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2289 value = "$nrpe_timeout$"
2290 description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2293 value = "$nrpe_arguments$"
2298 set_if = "$nrpe_ipv4$"
2299 description = "Use IPv4 connection"
2302 set_if = "$nrpe_ipv6$"
2303 description = "Use IPv6 connection"
2306 set_if = "$nrpe_version_2$"
2307 description = "Use this if you want to connect to NRPE v2"
2311 vars.nrpe_address = "$check_address$"
2312 vars.nrpe_no_ssl = false
2313 vars.nrpe_timeout_unknown = false
2314 vars.check_ipv4 = "$nrpe_ipv4$"
2315 vars.check_ipv6 = "$nrpe_ipv6$"
2316 vars.nrpe_version_2 = false
2320 object CheckCommand "hpjd" {
2321 import "ipv4-or-ipv6"
2323 command = [ PluginDir + "/check_hpjd" ]
2327 value = "$hpjd_address$"
2328 description = "Host address"
2331 value = "$hpjd_community$"
2332 description = "The SNMP community name (default=public)"
2335 value = "$hpjd_port$"
2336 description = "Specify the port to check (default=161)"
2340 vars.hpjd_address = "$check_address$"
2343 object CheckCommand "icmp" {
2344 command = [ PluginDir + "/check_icmp" ]
2348 value = "$icmp_address$"
2351 description = "Host address"
2354 value = "$icmp_wrta$,$icmp_wpl$%"
2355 description = "warning threshold (currently 200.000ms,40%)"
2358 value = "$icmp_crta$,$icmp_cpl$%"
2359 description = "critical threshold (currently 500.000ms,80%)"
2362 value = "$icmp_source$"
2363 description = "specify a source IP address or device name"
2366 value = "$icmp_packets$"
2367 description = "number of packets to send (currently 5)"
2370 value = "$icmp_packet_interval$"
2371 description = "max packet interval (currently 80.000ms)"
2374 value = "$icmp_target_interval$"
2375 description = "max target interval (currently 0.000ms)"
2378 value = "$icmp_hosts_alive$"
2379 description = "number of alive hosts required for success"
2382 value = "$icmp_data_bytes$"
2383 description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2386 value = "$icmp_timeout$"
2387 description = "timeout value (seconds, currently 10)"
2390 value = "$icmp_ttl$"
2391 description = "TTL on outgoing packets (currently 0)"
2395 vars.icmp_address = "$address$"
2396 vars.icmp_wrta = 100
2398 vars.icmp_crta = 200
2402 object CheckCommand "ldap" {
2403 import "ipv4-or-ipv6"
2405 command = [ PluginDir + "/check_ldap" ]
2409 value = "$ldap_address$"
2410 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2413 value = "$ldap_port$"
2414 description = "Port number (default: 389)"
2417 value = "$ldap_attr$"
2418 description = "ldap attribute to search (default: \"(objectclass=*)\""
2421 value = "$ldap_base$"
2423 description = "ldap base (eg. ou=my unit, o=my org, c=at"
2426 value = "$ldap_bind$"
2427 description = "ldap bind DN (if required)"
2430 value = "$ldap_pass$"
2431 description = "ldap password (if required)"
2434 set_if = "$ldap_starttls$"
2435 description = "use starttls mechanism introduced in protocol version 3"
2438 set_if = "$ldap_ssl$"
2439 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2442 set_if = "$ldap_v2$"
2443 description = "Use LDAP protocol version 2"
2446 set_if = "$ldap_v3$"
2447 description = "Use LDAP protocol version 3"
2450 value = "$ldap_warning$"
2451 description = "Response time to result in warning status (seconds)"
2454 value = "$ldap_critical$"
2455 description = "Response time to result in critical status (seconds)"
2458 value = "$ldap_warning_entries$"
2459 description = "Number of found entries to result in warning status (optional)"
2462 value = "$ldap_critical_entries$"
2463 description = "Number of found entries to result in critical status (optional)"
2466 value = "$ldap_timeout$"
2467 description = "Seconds before connection times out (default: 10)"
2470 set_if = "$ldap_verbose$"
2471 description = "Show details for command-line debugging"
2475 vars.ldap_address = "$check_address$"
2477 vars.ldap_v3 = false
2478 vars.ldap_timeout = 10s
2479 vars.ldap_verbose = false
2482 object CheckCommand "clamd" {
2483 command = [ PluginDir + "/check_clamd" ]
2487 value = "$clamd_address$"
2488 description = "The host's address or unix socket (must be an absolute path)."
2492 value = "$clamd_port$"
2493 description = "Port number (default: none)."
2496 value = "$clamd_expect$"
2497 description = "String to expect in server response (may be repeated)."
2501 set_if = "$clamd_all$"
2502 description = "All expect strings need to occur in server response. Default is any."
2507 set_if = "$clamd_escape_send$"
2508 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2512 value = "$clamd_send$"
2513 description = "String to send to the server."
2518 set_if = "$clamd_escape_quit$"
2519 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2523 value = "$clamd_quit$"
2524 description = "String to send server to initiate a clean close of the connection."
2527 value = "$clamd_refuse$"
2528 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2531 value = "$clamd_mismatch$"
2532 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2535 set_if = "$clamd_jail$"
2536 description = "Hide output from TCP socket."
2539 value = "$clamd_maxbytes$"
2540 description = "Close connection once more than this number of bytes are received."
2543 value = "$clamd_delay$"
2544 description = "Seconds to wait between sending string and polling for response."
2547 value = "$clamd_certificate$"
2548 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."
2551 set_if = "$clamd_ssl$"
2552 description = "Use SSL for the connection."
2555 value = "$clamd_wtime$"
2556 description = "Response time to result in warning status (seconds)."
2559 value = "$clamd_ctime$"
2560 description = "Response time to result in critical status (seconds)."
2563 value = "$clamd_timeout$"
2564 description = "Seconds before connection times out. Defaults to 10."
2567 set_if = "$clamd_ipv4$"
2568 description = "Use IPv4 only"
2571 set_if = "$clamd_ipv6$"
2572 description = "Use IPv6 only"
2576 vars.clamd_ssl = false
2577 vars.clamd_refuse = "crit"
2578 vars.clamd_mismatch = "warn"
2579 vars.clamd_timeout = 10
2580 vars.check_ipv4 = "$clamd_ipv4$"
2581 vars.check_ipv6 = "$clamd_ipv6$"
2584 object CheckCommand "mailq" {
2585 command = [ PluginDir + "/check_mailq" ]
2589 value = "$mailq_warning$"
2590 description = "Min. number of messages in queue to generate warning"
2594 value = "$mailq_critical$"
2595 description = "Min. number of messages in queue to generate critical alert ( w < c )"
2599 value = "$mailq_domain_warning$"
2600 description = "Min. number of messages for same domain in queue to generate warning"
2603 value = "$mailq_domain_critical$"
2604 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2607 value = "$mailq_timeout$"
2608 description = "Plugin timeout in seconds (default = 15)"
2611 value = "$mailq_servertype$"
2612 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2615 set_if = "$mailq_sudo$"
2616 description = "Use sudo for mailq command"
2621 object CheckCommand "pgsql" {
2622 import "ipv4-or-ipv6"
2624 command = [ PluginDir + "/check_pgsql" ]
2628 value = "$pgsql_hostname$"
2629 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2632 value = "$pgsql_port$"
2633 description = "Port number (default: 5432)"
2636 value = "$pgsql_database$"
2637 description = "Database to check (default: template1)"
2640 value = "$pgsql_username$"
2641 description = "Login name of user"
2644 value = "$pgsql_password$"
2645 description = "Password (BIG SECURITY ISSUE)"
2648 value = "$pgsql_options$"
2649 description = "Connection parameters (keyword = value), see below"
2652 value = "$pgsql_warning$"
2653 description = "Response time to result in warning status (seconds)"
2656 value = "$pgsql_critical$"
2657 description = "Response time to result in critical status (seconds)"
2660 value = "$pgsql_timeout$"
2661 description = "Seconds before connection times out (default: 10)"
2664 value = "$pgsql_query$"
2665 description = "SQL query to run. Only first column in first row will be read"
2668 value = "$pgsql_query_warning$"
2669 description = "SQL query value to result in warning status (double)"
2672 value = "$pgsql_query_critical$"
2673 description = "SQL query value to result in critical status (double)"
2677 vars.pgsql_hostname = "$check_address$"
2680 object CheckCommand "mysql" {
2681 import "ipv4-or-ipv6"
2683 command = [ PluginDir + "/check_mysql" ]
2687 value = "$mysql_hostname$"
2688 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2691 value = "$mysql_port$"
2692 description = "Port number (default: 3306)"
2695 set_if = "$mysql_ignore_auth$"
2696 description = "Ignore authentication failure and check for mysql connectivity only"
2699 value = "$mysql_socket$"
2700 description = "Use the specified socket"
2703 value = "$mysql_database$"
2704 description = "Check database with indicated name"
2707 value = "$mysql_file$"
2708 description = "Read from the specified client options file"
2711 value = "$mysql_group$"
2712 description = "Use a client options group"
2715 value = "$mysql_username$"
2716 description = "Connect using the indicated username"
2719 value = "$mysql_password$"
2720 description = "Use the indicated password to authenticate the connection"
2723 set_if = "$mysql_check_slave$"
2724 description = "Check if the slave thread is running properly"
2727 value = "$mysql_warning$"
2728 description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2731 value = "$mysql_critical$"
2732 description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2735 set_if = "$mysql_ssl$"
2736 description = "Use ssl encryptation"
2739 value = "$mysql_cacert$"
2740 description = "Path to CA signing the cert"
2743 value = "$mysql_cert$"
2744 description = "Path to SSL certificate"
2747 value = "$mysql_key$"
2748 description = "Path to private SSL key"
2751 value = "$mysql_cadir$"
2752 description = "Path to CA directory"
2755 value = "$mysql_ciphers$"
2756 description = "List of valid SSL ciphers"
2760 vars.mysql_hostname = "$check_address$"
2763 object CheckCommand "negate" {
2764 command = [ PluginDir + "/negate" ]
2768 value = "$negate_timeout$"
2769 description = "Seconds before plugin times out (default: 11)"
2772 value = "$negate_timeout_result$"
2773 description = "Custom result on Negate timeouts"
2776 value = "$negate_ok$"
2779 value = "$negate_warning$"
2782 value = "$negate_critical$"
2785 set_if = "$negate_substitute$"
2786 description = "Substitute output text as well. Will only substitute text in CAPITALS"
2788 "--wrapped-plugin" = {
2790 var command = macro("$negate_command$")
2791 var arguments = macro("$negate_arguments$")
2793 if (typeof(command) == String && !arguments) {
2797 var escaped_args = []
2798 for (arg in resolve_arguments(command, arguments)) {
2799 escaped_args.add(arg)
2801 return escaped_args.join(" ")
2808 vars.negate_timeout_result = "UNKNOWN"
2811 object CheckCommand "file_age" {
2812 command = [ PluginDir + "/check_file_age" ]
2816 value = "$file_age_warning_time$"
2817 description = "File must be no more than this many seconds old (default: 240s)"
2820 value = "$file_age_critical_time$"
2821 description = "File must be no more than this many seconds old (default: 600s)"
2824 value = "$file_age_warning_size$"
2825 description = "File must be at least this many bytes long"
2828 value = "$file_age_critical_size$"
2829 description = "File must be at least this many bytes long (default: 0B)"
2832 set_if = "$file_age_ignoremissing$"
2833 description = "return OK if the file does not exist"
2836 value = "$file_age_file$"
2837 description = "File to monitor"
2841 vars.file_age_ignoremissing = false
2844 object CheckCommand "smart" {
2845 command = [ PluginDir + "/check_ide_smart" ]
2849 value = "$smart_device$"
2850 description = "Name of a local hard drive to monitor"
2856 object CheckCommand "breeze" {
2857 import "ipv4-or-ipv6"
2859 command = [ PluginDir + "/check_breeze" ]
2863 value = "$breeze_hostname$"
2864 description = "Name or IP address of host to check"
2868 value = "$breeze_community$"
2869 description = "SNMPv1 community (default public)"
2872 value = "$breeze_warning$"
2873 description = "Percentage strength below which a WARNING status will result"
2877 value = "$breeze_critical$"
2878 description = "Percentage strength below which a CRITICAL status will result"
2883 vars.breeze_hostname = "$check_address$"
2884 vars.breeze_warning = "50"
2885 vars.breeze_critical = "20"
2888 object CheckCommand "flexlm" {
2889 command = [ PluginDir + "/check_flexlm" ]
2893 value = "$flexlm_licensefile$"
2894 description = "Name of license file (usually license.dat)"
2898 value = "$flexlm_timeout$"
2899 description = "Plugin time out in seconds (default = 15)"
2904 object CheckCommand "game" {
2905 import "ipv4-or-ipv6"
2907 command = [ PluginDir + "/check_game" ]
2911 value = "$game_port$"
2912 description = "Port to connect to"
2915 value = "$game_timeout$"
2916 description = "Seconds before connection times out (default: 10)"
2919 value = "$game_gamefield$"
2920 description = "Field number in raw qstat output that contains game name"
2923 value = "$game_mapfield$"
2924 description = "Field number in raw qstat output that contains map name"
2927 value = "$game_pingfield$"
2928 description = "Field number in raw qstat output that contains ping time"
2931 value = "$game_gametime$"
2932 description = "Field number in raw qstat output that contains game time"
2935 value = "$game_hostname$"
2936 description = "Name of the host running the game"
2939 value = "$game_game$"
2940 description = "Name of the game"
2945 value = "$game_ipaddress$"
2946 description = "Ipaddress of the game server to query"
2953 object CheckCommand "mysql_query" {
2954 import "ipv4-or-ipv6"
2956 command = [ PluginDir + "/check_mysql_query" ]
2960 value = "$mysql_query_hostname$"
2961 description = "Host name, IP Address, or unix socket (must be an absolute path)"
2964 value = "$mysql_query_port$"
2965 description = "Port number (default: 3306)"
2968 value = "$mysql_query_username$"
2969 description = "Username to login with"
2972 value = "$mysql_query_password$"
2973 description = "Password to login with"
2976 value = "$mysql_query_database$"
2977 description = "Database to check"
2980 value = "$mysql_query_file$"
2981 description = "Read from the specified client options file"
2984 value = "$mysql_query_group$"
2985 description = "Use a client options group"
2988 value = "$mysql_query_execute$"
2989 description = "SQL query to run. Only first column in first row will be read"
2992 value = "$mysql_query_warning$"
2993 description = "Warning range (format: start:end). Alert if outside this range"
2996 value = "$mysql_query_critical$"
2997 description = "Critical range"
3001 vars.mysql_query_hostname = "$check_address$"
3004 object CheckCommand "radius" {
3005 import "ipv4-or-ipv6"
3008 PluginDir + "/check_radius",
3013 value = "$radius_address$",
3014 description = "Host name, IP Address, or unix socket (must be an absolute path)"
3017 value = "$radius_config_file$",
3018 description = "Configuration file"
3021 value = "$radius_username$",
3022 description = "The user to authenticate"
3025 value = "$radius_password$",
3026 description = "Password for authentication"
3029 value = "$radius_port$",
3030 description = "Port number (default: 1645)"
3033 value = "$radius_nas_id$",
3034 description = "NAS identifier"
3037 value = "$radius_nas_address$",
3038 description = "NAS IP Address"
3041 value = "$radius_expect$",
3042 description = "Response string to expect from the server"
3045 value = "$radius_retries$",
3046 description = "Number of times to retry a failed connection"
3049 value = "$radius_timeout$",
3050 description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3054 vars.radius_address = "$check_address$"
3057 object CheckCommand "nscp_api" {
3058 import "ipv4-or-ipv6"
3060 command = [ PluginDir + "/check_nscp_api" ]
3064 value = "$nscp_api_host$"
3065 description = "NSCP API host address"
3069 value = "$nscp_api_port$"
3070 description = "NSCP API host port. Defaults to 8443."
3073 value = "$nscp_api_password$"
3074 description = "NSCP API password"
3077 value = "$nscp_api_query$"
3078 description = "NSCPI API Query endpoint to use"
3081 value = "$nscp_api_arguments$"
3082 description = "NSCP API Query arguments"
3087 vars.nscp_api_host = "$check_address$"