1 /******************************************************************************
3 * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org) *
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$")
33 template CheckCommand "ping-common" {
34 import "plugin-check-command"
36 command = [ PluginDir + "/check_ping" ]
39 "-H" = "$ping_address$"
40 "-w" = "$ping_wrta$,$ping_wpl$%"
41 "-c" = "$ping_crta$,$ping_cpl$%"
42 "-p" = "$ping_packets$"
43 "-t" = "$ping_timeout$"
52 object CheckCommand "ping" {
56 vars.ping_address = "$check_address$"
59 object CheckCommand "ping4" {
64 vars.ping_address = "$address$"
67 object CheckCommand "ping6" {
72 vars.ping_address = "$address6$"
75 template CheckCommand "hostalive-common" {
76 vars.ping_wrta = 3000.0
79 vars.ping_crta = 5000.0
83 object CheckCommand "hostalive" {
85 import "hostalive-common"
88 object CheckCommand "hostalive4" {
90 import "hostalive-common"
93 object CheckCommand "hostalive6" {
95 import "hostalive-common"
98 template CheckCommand "fping-common" {
99 import "plugin-check-command"
102 PluginDir + "/check_fping",
107 "-w" = "$fping_wrta$,$fping_wpl$%"
108 "-c" = "$fping_crta$,$fping_cpl$%"
109 "-n" = "$fping_number$"
110 "-i" = "$fping_interval$"
111 "-b" = "$fping_bytes$"
112 "-T" = "$fping_target_timeout$"
113 "-S" = "$fping_source_ip$"
114 "-I" = "$fping_source_interface$"
117 vars.fping_wrta = 100
119 vars.fping_crta = 200
121 vars.fping_number = 5
122 vars.fping_interval = 500
125 object CheckCommand "fping4" {
126 import "fping-common"
130 vars.fping_address = "$address$"
133 object CheckCommand "fping6" {
134 import "fping-common"
138 vars.fping_address = "$address6$"
141 object CheckCommand "dummy" {
142 import "plugin-check-command"
145 PluginDir + "/check_dummy",
151 vars.dummy_text = "Check was successful."
154 object CheckCommand "passive" {
158 vars.dummy_text = "No Passive Check Result Received."
161 object CheckCommand "tcp" {
162 import "plugin-check-command"
163 import "ipv4-or-ipv6"
165 command = [ PluginDir + "/check_tcp" ]
169 value = "$tcp_address$"
170 description = "Host name, IP Address, or unix socket (must be an absolute path)."
174 description = "The TCP port number."
177 value = "$tcp_expect$"
178 description = "String to expect in server response (may be repeated)."
182 description = "All expect strings need to occur in server response. Defaults to false."
187 set_if = "$tcp_escape_send$"
188 description = "Enable usage of \n, \r, \t or \\ in send string."
193 description = "String to send to the server."
198 set_if = "$tcp_escape_quit$"
199 description = "Enable usage of \n, \r, \t or \\ in quit string."
204 description = "String to send server to initiate a clean close of the connection."
207 value = "$tcp_refuse$"
208 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
211 value = "$tcp_mismatch$"
212 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
215 set_if = "$tcp_jail$"
216 description = "Hide output from TCP socket."
219 value = "$tcp_maxbytes$"
220 description = "Close connection once more than this number of bytes are received."
223 value = "$tcp_delay$"
224 description = "Seconds to wait between sending string and polling for response."
227 value = "$tcp_certificate$"
228 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."
232 description = "Use SSL for the connection."
235 value = "$tcp_wtime$"
236 description = "Response time to result in warning status (seconds)."
239 value = "$tcp_ctime$"
240 description = "Response time to result in critical status (seconds)."
243 value = "$tcp_timeout$"
244 description = "Seconds before connection times out. Defaults to 10."
248 vars.tcp_address = "$check_address$"
250 vars.tcp_refuse = "crit"
251 vars.tcp_mismatch = "warn"
252 vars.tcp_timeout = 10
255 object CheckCommand "ssl" {
256 import "plugin-check-command"
257 import "ipv4-or-ipv6"
259 command = [ PluginDir + "/check_tcp" ]
262 "-H" = "$ssl_address$"
265 "--timeout" = "$ssl_timeout$"
266 "-D" = "$ssl_cert_valid_days_warn$,$ssl_cert_valid_days_critical$"
269 vars.ssl_address = "$check_address$"
272 object CheckCommand "udp" {
273 import "plugin-check-command"
274 import "ipv4-or-ipv6"
277 PluginDir + "/check_udp",
278 "-H", "$udp_address$",
288 value = "$udp_expect$"
294 vars.udp_address = "$check_address$"
297 object CheckCommand "http" {
298 import "plugin-check-command"
299 import "ipv4-or-ipv6"
301 command = [ PluginDir + "/check_http" ]
304 "-H" = "$http_vhost$"
305 "-I" = "$http_address$"
309 set_if = "$http_ssl$"
312 set_if = "$http_sni$"
315 value = "$http_certificate$"
316 description = "Minimum number of days a certificate has to be valid. Port defaults to 443."
319 value = "$http_clientcert$"
320 description = "Name of file contains the client certificate (PEM format)"
323 value = "$http_privatekey$"
324 description = "Name of file contains the private key (PEM format)"
327 value = "$http_auth_pair$"
328 description = "Username:password on sites with basic authentication"
331 set_if = "$http_ignore_body$"
333 "-w" = "$http_warn_time$"
334 "-c" = "$http_critical_time$"
335 "-e" = "$http_expect$"
337 value = "$http_headerstring$"
338 description = "String to expect in the response headers"
341 value = "$http_string$"
342 description = "String to expect in the content"
345 value = "$http_post$"
346 description = "URL encoded http POST data"
349 value = "$http_method$"
350 description = "Set http method (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"
353 value = "$http_maxage$"
354 description = "Warn if document is more than seconds old"
357 value = "$http_contenttype$"
358 description = "Specify Content-Type header when POSTing"
361 set_if = "$http_linespan$"
362 description = "Allow regex to span newline"
366 value = "$http_expect_body_regex$"
367 description = "Search page for regex"
371 value = "$http_expect_body_eregi$"
372 description = "Search page for case-insensitive regex"
376 set_if = "$http_invertregex$"
377 description = "Return CRITICAL if found, OK if not"
380 value = "$http_proxy_auth_pair$"
381 description = "Username:password on proxy-servers with basic authentication"
384 value = "$http_useragent$"
385 description = "String to be sent in http header as User Agent"
388 value = "$http_header$"
389 description = "Any other tags to be sent in http header"
392 set_if = "$http_extendedperfdata$"
393 description = "Print additional perfdata"
396 value = "$http_onredirect$"
397 description = "How to handle redirect pages"
400 value = "$http_pagesize$"
401 description = "Minim page size required:Maximum page size required"
404 value = "$http_timeout$"
405 description = "Seconds before connection times out"
409 vars.http_address = "$check_address$"
410 vars.http_ssl = false
411 vars.http_sni = false
412 vars.http_linespan = false
413 vars.http_invertregex = false
416 object CheckCommand "ftp" {
417 import "plugin-check-command"
418 import "ipv4-or-ipv6"
420 command = [ PluginDir + "/check_ftp" ]
424 value = "$ftp_address$"
425 description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set."
429 description = "The FTP port number. Defaults to none"
432 value = "$ftp_expect$"
433 description = "String to expect in server response (may be repeated)."
437 description = "All expect strings need to occur in server response. Default is any."
442 set_if = "$ftp_escape_send$"
443 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
448 description = "String to send to the server."
453 set_if = "$ftp_escape_quit$"
454 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
459 description = "String to send server to initiate a clean close of the connection."
462 value = "$ftp_refuse$"
463 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
466 value = "$ftp_mismatch$"
467 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
470 set_if = "$ftp_jail$"
471 description = "Hide output from TCP socket."
474 value = "$ftp_maxbytes$"
475 description = "Close connection once more than this number of bytes are received."
478 value = "$ftp_delay$"
479 description = "Seconds to wait between sending string and polling for response."
482 value = "$ftp_certificate$"
483 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."
487 description = "Use SSL for the connection."
490 value = "$ftp_wtime$"
491 description = "Response time to result in warning status (seconds)."
494 value = "$ftp_ctime$"
495 description = "Response time to result in critical status (seconds)."
498 value = "$ftp_timeout$"
499 description = "Seconds before connection times out. Defaults to 10."
503 vars.ftp_address = "$check_address$"
505 vars.ftp_refuse = "crit"
506 vars.ftp_mismatch = "warn"
507 vars.ftp_timeout = 10
510 object CheckCommand "smtp" {
511 import "plugin-check-command"
512 import "ipv4-or-ipv6"
514 command = [ PluginDir + "/check_smtp" ]
517 "-H" = "$smtp_address$"
519 "-f" = "$smtp_mail_from$"
520 "-e" = "$smtp_expect$"
521 "-C" = "$smtp_command$"
522 "-R" = "$smtp_response$"
523 "-F" = "$smtp_helo_fqdn$"
524 "-D" = "$smtp_certificate_age$"
525 "-S" = "$smtp_starttls$"
526 "-A" = "$smtp_authtype$"
527 "-U" = "$smtp_authuser$"
528 "-P" = "$smtp_authpass$"
529 "-q" = "$smtp_ignore_quit$"
530 "-w" = "$smtp_warning$"
531 "-c" = "$smtp_critical$"
532 "-t" = "$smtp_timeout$"
535 vars.smtp_address = "$check_address$"
538 object CheckCommand "ssmtp" {
539 import "plugin-check-command"
540 import "ipv4-or-ipv6"
542 command = [ PluginDir + "/check_ssmtp" ]
544 "-H" = "$ssmtp_address$"
545 "-p" = "$ssmtp_port$"
548 vars.ssmtp_address = "$check_address$"
551 object CheckCommand "imap" {
552 import "plugin-check-command"
553 import "ipv4-or-ipv6"
555 command = [ PluginDir + "/check_imap" ]
558 "-H" = "$imap_address$"
560 "-t" = "$imap_timeout$"
563 vars.imap_address = "$check_address$"
566 object CheckCommand "simap" {
567 import "plugin-check-command"
568 import "ipv4-or-ipv6"
570 command = [ PluginDir + "/check_simap" ]
573 "-H" = "$simap_address$"
574 "-p" = "$simap_port$"
575 "-t" = "$simap_timeout$"
578 vars.simap_address = "$check_address$"
581 object CheckCommand "pop" {
582 import "plugin-check-command"
583 import "ipv4-or-ipv6"
585 command = [ PluginDir + "/check_pop" ]
588 "-H" = "$pop_address$"
590 "-t" = "$pop_timeout$"
593 vars.pop_address = "$check_address$"
596 object CheckCommand "spop" {
597 import "plugin-check-command"
598 import "ipv4-or-ipv6"
600 command = [ PluginDir + "/check_spop" ]
603 "-H" = "$spop_address$"
605 "-t" = "$spop_timeout$"
608 vars.spop_address = "$check_address$"
611 object CheckCommand "ntp_time" {
612 import "plugin-check-command"
613 import "ipv4-or-ipv6"
615 command = [ PluginDir + "/check_ntp_time" ]
618 "-H" = "$ntp_address$"
621 "-w" = "$ntp_warning$"
622 "-c" = "$ntp_critical$"
623 "-o" = "$ntp_timeoffset$"
624 "-t" = "$ntp_timeout$"
627 vars.ntp_address = "$check_address$"
630 object CheckCommand "ntp_peer" {
631 import "plugin-check-command"
632 import "ipv4-or-ipv6"
634 command = [ PluginDir + "/check_ntp_peer" ]
637 "-H" = "$ntp_address$"
639 "-w" = "$ntp_warning$"
640 "-c" = "$ntp_critical$"
641 "-W" = "$ntp_wstratum$"
642 "-C" = "$ntp_cstratum$"
643 "-j" = "$ntp_wjitter$"
644 "-k" = "$ntp_cjitter$"
645 "-m" = "$ntp_wsource$"
646 "-n" = "$ntp_csource$"
647 "-t" = "$ntp_timeout$"
650 vars.ntp_address = "$check_address$"
653 object CheckCommand "ssh" {
654 import "plugin-check-command"
655 import "ipv4-or-ipv6"
657 command = [ PluginDir + "/check_ssh" ]
661 "-t" = "$ssh_timeout$"
663 value = "$ssh_address$"
669 vars.ssh_address = "$check_address$"
672 object CheckCommand "disk" {
673 import "plugin-check-command"
675 command = [ PluginDir + "/check_disk" ]
679 value = "$disk_wfree$"
680 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"
686 value = "$disk_cfree$"
687 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"
693 value = "$disk_inode_wfree$"
694 description = "Exit with WARNING status if less than PERCENT of inode space is free"
698 value = "$disk_inode_cfree$"
699 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
703 value = "$disk_partitions$"
704 description = "Path or partition (may be repeated)"
711 value = "$disk_partition$"
716 value = "$disk_partitions_excluded$"
717 description = "Ignore device (only works if -p unspecified)"
722 value = "$disk_partition_excluded$"
726 set_if = "$disk_clear$"
727 description = "Clear thresholds"
731 set_if = "$disk_exact_match$"
732 description = "For paths or partitions specified with -p, only check for exact paths"
736 set_if = "$disk_errors_only$"
737 description = "Display only devices/mountpoints with errors"
741 value = "$disk_group$"
742 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
746 set_if = "$disk_kilobytes$"
747 description = "Same as --units kB"
751 set_if = "$disk_local$"
752 description = " Only check local filesystems"
756 set_if = "$disk_stat_remote_fs$"
757 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)"
761 set_if = "$disk_mountpoint$"
762 description = "Display the mountpoint instead of the partition"
766 set_if = "$disk_megabytes$"
767 description = "Same as --units MB"
771 set_if = "$disk_all$"
772 description = "Explicitly select all paths. This is equivalent to -R .*"
776 value = "$disk_eregi_path$"
777 description = "Case insensitive regular expression for path/partition (may be repeated)"
782 value = "$disk_ereg_path$"
783 description = "Regular expression for path or partition (may be repeated)"
788 value = "$disk_ignore_eregi_path$"
789 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
795 value = "$disk_ignore_ereg_path$"
796 description = "Regular expression to ignore selected path or partition (may be repeated)"
802 value = "$disk_timeout$"
803 description = "Seconds before connection times out (default: 10)"
807 value = "$disk_units$"
808 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
812 value = "$disk_exclude_type$"
813 description = "Ignore all filesystems of indicated type (may be repeated)"
818 vars.disk_wfree = "20%"
819 vars.disk_cfree = "10%"
820 vars.disk_inode_wfree = "20%"
821 vars.disk_inode_cfree = "10%"
822 vars.disk_megabytes = true
823 vars.disk_exclude_type = ["none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs"]
826 object CheckCommand "disk_smb" {
827 import "plugin-check-command"
829 command = [ PluginDir + "/check_disk_smb" ]
833 value = "$disk_smb_hostname$"
834 description = "NetBIOS name of the server."
837 value = "$disk_smb_share$"
838 description = "Share name to be tested."
841 value = "$disk_smb_workgroup$"
842 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
845 value = "$disk_smb_address$"
846 description = "IP-address of HOST (only necessary if HOST is in another network)."
849 value = "$disk_smb_username$"
850 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
853 value = "$disk_smb_password$"
854 description = "Password to log in to server. (Defaults to an empty password if omitted)."
857 value = "$disk_smb_wused$"
858 description = "Percent of used space at which a warning will be generated (Default: 85%)."
861 value = "$disk_smb_cused$"
862 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
865 value = "$disk_smb_port$"
866 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
870 vars.disk_smb_wused = "85%"
871 vars.disk_smb_cused = "95%"
874 object CheckCommand "users" {
875 import "plugin-check-command"
877 command = [ PluginDir + "/check_users" ]
880 "-w" = "$users_wgreater$"
881 "-c" = "$users_cgreater$"
884 vars.users_wgreater = 20
885 vars.users_cgreater = 50
888 object CheckCommand "procs" {
889 import "plugin-check-command"
891 command = [ PluginDir + "/check_procs" ]
895 value = "$procs_warning$"
896 description = "Generate warning state if metric is outside this range"
899 value = "$procs_critical$"
900 description = "Generate critical state if metric is outside this range"
903 value = "$procs_metric$"
904 description = "Check thresholds against metric"
907 value = "$procs_timeout$"
908 description = "Seconds before plugin times out"
911 set_if = "$procs_traditional$"
912 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
915 value = "$procs_state$"
916 description = "Only scan for processes that have one or more of the status flags you specify"
919 value = "$procs_ppid$"
920 description = "Only scan for children of the parent process ID indicated"
923 value = "$procs_vsz$"
924 description = "Only scan for processes with VSZ higher than indicated"
927 value = "$procs_rss$"
928 description = "Only scan for processes with RSS higher than indicated"
931 value = "$procs_pcpu$"
932 description = "Only scan for processes with PCPU higher than indicated"
935 value = "$procs_user$"
936 description = "Only scan for processes with user name or ID indicated"
939 value = "$procs_argument$"
940 description = "Only scan for processes with args that contain STRING"
942 "--ereg-argument-array" = {
943 value = "$procs_argument_regex$"
944 description = "Only scan for processes with args that contain the regex STRING"
947 value = "$procs_command$"
948 description = "Only scan for exact matches of COMMAND (without path)"
951 set_if = "$procs_nokthreads$"
952 description = "Only scan for non kernel threads"
956 vars.procs_traditional = false
957 vars.procs_nokthreads = false
958 vars.procs_warning = 250
959 vars.procs_critical = 400
962 object CheckCommand "swap" {
963 import "plugin-check-command"
965 command = [ PluginDir + "/check_swap" ]
968 "-w" = "$swap_wfree$%"
969 "-c" = "$swap_cfree$%"
976 object CheckCommand "load" {
977 import "plugin-check-command"
979 command = [ PluginDir + "/check_load" ]
983 value = "$load_wload1$,$load_wload5$,$load_wload15$"
984 description = "Exit with WARNING status if load average exceeds WLOADn"
987 value = "$load_cload1$,$load_cload5$,$load_cload15$"
988 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
991 set_if = "$load_percpu$"
992 description = "Divide the load averages by the number of CPUs (when possible)"
996 vars.load_wload1 = 5.0
997 vars.load_wload5 = 4.0
998 vars.load_wload15 = 3.0
1000 vars.load_cload1 = 10.0
1001 vars.load_cload5 = 6.0
1002 vars.load_cload15 = 4.0
1004 vars.load_percpu = false
1007 object CheckCommand "snmp" {
1008 import "plugin-check-command"
1010 command = [ PluginDir + "/check_snmp" ]
1013 "-H" = "$snmp_address$"
1015 "-C" = "$snmp_community$"
1016 "-c" = "$snmp_crit$"
1017 "-w" = "$snmp_warn$"
1018 "-s" = "$snmp_string$"
1019 "-r" = "$snmp_ereg$"
1020 "-R" = "$snmp_eregi$"
1021 "-l" = "$snmp_label$"
1022 "-u" = "$snmp_units$"
1023 "-t" = "$snmp_timeout$"
1024 "-p" = "$snmp_port$"
1025 "--invert-search" = {
1026 set_if = "$snmp_invert_search$"
1027 description = "Invert search result and return CRITICAL if found"
1029 "-P" = "$snmp_version$"
1030 "-m" = "$snmp_miblist$"
1031 "--rate-multiplier" = "$snmp_rate_multiplier$"
1033 set_if = "$snmp_rate$"
1034 description = "Enable rate calculation"
1037 set_if = "$snmp_getnext$"
1038 description = "Use SNMP GETNEXT instead of SNMP GET"
1042 vars.snmp_address = {{
1043 var addr_v4 = macro("$address$")
1044 var addr_v6 = macro("$address6$")
1049 return "udp6:[" + addr_v6 + "]"
1053 vars.snmp_community = "public"
1054 vars.snmp_invert_search = false
1055 vars.snmp_timeout = "10"
1058 object CheckCommand "snmpv3" {
1059 import "plugin-check-command"
1060 import "ipv4-or-ipv6"
1062 command = [ PluginDir + "/check_snmp" ]
1066 value = "$snmpv3_address$"
1067 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1070 set_if = "$snmpv3_getnext$"
1071 description = "Use SNMP GETNEXT instead of SNMP GET"
1075 description = "SNMP protocol version"
1078 value = "$snmpv3_seclevel$"
1079 description = "SNMPv3 securityLevel"
1082 value = "$snmpv3_auth_alg$"
1083 description = "SNMPv3 auth proto"
1086 value = "$snmpv3_user$"
1087 description = "SNMPv3 username"
1090 value = "$snmpv3_auth_key$"
1091 description = "SNMPv3 authentication password"
1094 value = "$snmpv3_priv_key$"
1095 description = "SNMPv3 privacy password"
1098 value = "$snmpv3_oid$"
1099 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1102 value = "$snmpv3_priv_alg$"
1103 description = "SNMPv3 priv proto (default DES)"
1106 value = "$snmpv3_warn$"
1107 description = "Warning threshold range(s)"
1110 value = "$snmpv3_crit$"
1111 description = "Critical threshold range(s)"
1114 value = "$snmpv3_string$"
1115 description = "Return OK state (for that OID) if STRING is an exact match"
1118 value = "$snmpv3_ereg$"
1119 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1122 value = "$snmpv3_eregi$"
1123 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1125 "--invert-search" = {
1126 set_if = "$snmpv3_invert_search$"
1127 description = "Invert search result and return CRITICAL if found"
1130 value = "$snmpv3_label$"
1131 description = "Prefix label for output from plugin"
1135 vars.snmpv3_address = "$check_address$"
1136 vars.snmpv3_auth_alg = "SHA"
1137 vars.snmpv3_priv_alg = "AES"
1138 vars.snmpv3_seclevel = "authPriv"
1141 object CheckCommand "snmp-uptime" {
1144 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1147 object CheckCommand "apt" {
1148 import "plugin-check-command"
1150 command = [ PluginDir + "/check_apt" ]
1153 object CheckCommand "dhcp" {
1154 import "plugin-check-command"
1156 command = [ PluginDir + "/check_dhcp" ]
1159 "-s" = "$dhcp_serverip$"
1160 "-r" = "$dhcp_requestedip$"
1161 "-t" = "$dhcp_timeout$"
1162 "-i" = "$dhcp_interface$"
1165 set_if = "$dhcp_unicast$"
1169 vars.dhcp_unicast = false
1172 object CheckCommand "dns" {
1173 import "plugin-check-command"
1174 import "ipv4-or-ipv6"
1176 command = [ PluginDir + "/check_dns" ]
1180 value = "$dns_lookup$"
1181 description = "The name or address you want to query."
1184 value = "$dns_server$"
1185 description = "Optional DNS server you want to use for the lookup."
1188 value = "$dns_expected_answers$"
1189 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)."
1193 value ="$dns_expected_answer$"
1196 set_if = "$dns_authoritative$"
1199 value = "$dns_wtime$"
1200 description = "Return warning if elapsed time exceeds value."
1203 value = "$dns_ctime$"
1204 description = "Return critical if elapsed time exceeds value."
1207 value = "$dns_timeout$"
1208 description = "Seconds before connection times out. Defaults to 10."
1212 vars.dns_lookup = "$host.name$"
1213 vars.dns_expected_answer = "$check_address$"
1214 vars.dns_timeout = 10
1217 object CheckCommand "dig" {
1218 import "plugin-check-command"
1219 import "ipv4-or-ipv6"
1221 command = [ PluginDir + "/check_dig" ]
1224 "-H" = "$dig_server$"
1226 "-l" = "$dig_lookup$"
1227 "-T" = "$dig_record_type$"
1228 "-a" = "$dig_expected_address$"
1229 "-A" = "$dig_arguments$"
1230 "-r" = "$dig_retries$"
1231 "-w" = "$dig_warning$"
1232 "-c" = "$dig_critical$"
1233 "-t" = "$dig_timeout$"
1236 vars.dig_server = "$check_address$"
1239 object CheckCommand "nscp" {
1240 import "plugin-check-command"
1241 import "ipv4-or-ipv6"
1243 command = [ PluginDir + "/check_nt" ]
1246 "-H" = "$nscp_address$"
1247 "-p" = "$nscp_port$"
1248 "-s" = "$nscp_password$"
1250 value = "$nscp_variable$"
1254 value = "$nscp_params$"
1257 "-w" = "$nscp_warn$"
1258 "-c" = "$nscp_crit$"
1259 "-t" = "$nscp_timeout$"
1262 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
1263 set_if = "$nscp_showall$"
1267 vars.nscp_address = "$check_address$"
1268 vars.nscp_port = 12489
1269 vars.nscp_showall = false
1272 object CheckCommand "by_ssh" {
1273 import "plugin-check-command"
1274 import "ipv4-or-ipv6"
1276 command = [ PluginDir + "/check_by_ssh" ]
1279 "-H" = "$by_ssh_address$"
1280 "-p" = "$by_ssh_port$"
1282 var command = macro("$by_ssh_command$")
1283 var arguments = macro("$by_ssh_arguments$")
1285 if (typeof(command) == String && !arguments) {
1289 var escaped_args = []
1290 for (arg in resolve_arguments(command, arguments)) {
1291 escaped_args.add(escape_shell_arg(arg))
1293 return escaped_args.join(" ")
1295 "-l" = "$by_ssh_logname$"
1296 "-i" = "$by_ssh_identity$"
1298 set_if = "$by_ssh_quiet$"
1300 "-w" = "$by_ssh_warn$"
1301 "-c" = "$by_ssh_crit$"
1302 "-t" = "$by_ssh_timeout$"
1305 vars.by_ssh_address = "$check_address$"
1306 vars.by_ssh_quiet = false
1309 object CheckCommand "ups" {
1310 import "plugin-check-command"
1311 import "ipv4-or-ipv6"
1313 command = [ PluginDir + "/check_ups" ]
1317 value = "$ups_address$"
1318 description = "Address of the upsd server"
1322 value = "$ups_name$"
1323 description = "Name of the UPS to monitor"
1327 value = "$ups_port$"
1328 description = "Port number (default: 3493)"
1331 value = "$ups_variable$"
1332 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
1335 value = "$ups_warning$"
1336 description = "Warning threshold for the selected variable"
1339 value = "$ups_critical$"
1340 description = "Critical threshold for the selected variable"
1343 set_if = "$ups_celsius$"
1344 description = "Display temperature in degrees Celsius instead of Fahrenheit"
1347 value = "$ups_timeout$"
1348 description = "Seconds before the connection times out (default: 10)"
1352 vars.ups_address = "$check_address$"
1353 vars.ups_name = "ups"
1356 object CheckCommand "nrpe" {
1357 import "plugin-check-command"
1358 import "ipv4-or-ipv6"
1360 command = [ PluginDir + "/check_nrpe" ]
1363 "-H" = "$nrpe_address$"
1364 "-p" = "$nrpe_port$"
1365 "-c" = "$nrpe_command$"
1367 set_if = "$nrpe_no_ssl$"
1368 description = "Do not use SSL."
1371 set_if = "$nrpe_timeout_unknown$"
1372 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
1374 "-t" = "$nrpe_timeout$"
1376 value = "$nrpe_arguments$"
1381 set_if = "$nrpe_ipv4$"
1382 description = "Use ipv4 only"
1385 set_if = "$nrpe_ipv6$"
1386 description = "Use ipv6 only"
1390 vars.nrpe_address = "$check_address$"
1391 vars.nrpe_no_ssl = false
1392 vars.nrpe_timeout_unknown = false
1397 object CheckCommand "hpjd" {
1398 import "plugin-check-command"
1399 import "ipv4-or-ipv6"
1401 command = [ PluginDir + "/check_hpjd" ]
1404 "-H" = "$hpjd_address$"
1405 "-C" = "$hpjd_community$"
1406 "-p" = "$hpjd_port$"
1409 vars.hpjd_address = "$check_address$"
1412 object CheckCommand "icmp" {
1413 import "plugin-check-command"
1415 command = [ PluginDir + "/check_icmp" ]
1419 value = "$icmp_address$"
1423 "-w" = "$icmp_wrta$,$icmp_wpl$%"
1424 "-c" = "$icmp_crta$,$icmp_cpl$%"
1425 "-s" = "$icmp_source$"
1426 "-n" = "$icmp_packets$"
1427 "-i" = "$icmp_packet_interval$"
1428 "-I" = "$icmp_target_interval$"
1429 "-m" = "$icmp_hosts_alive$"
1430 "-b" = "$icmp_data_bytes$"
1431 "-t" = "$icmp_timeout$"
1434 vars.icmp_address = "$address$"
1435 vars.icmp_wrta = 100
1437 vars.icmp_crta = 200
1441 object CheckCommand "ldap" {
1442 import "plugin-check-command"
1443 import "ipv4-or-ipv6"
1445 command = [ PluginDir + "/check_ldap" ]
1449 value = "$ldap_address$"
1450 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1453 value = "$ldap_port$"
1454 description = "Port number (default: 389)"
1457 value = "$ldap_attr$"
1458 description = "ldap attribute to search (default: \"(objectclass=*)\""
1461 value = "$ldap_base$"
1463 description = "ldap base (eg. ou=my unit, o=my org, c=at"
1466 value = "$ldap_bind$"
1467 description = "ldap bind DN (if required)"
1470 value = "$ldap_pass$"
1471 description = "ldap password (if required)"
1474 set_if = "$ldap_starttls$"
1475 description = "use starttls mechanism introduced in protocol version 3"
1478 set_if = "$ldap_ssl$"
1479 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
1482 set_if = "$ldap_v2$"
1483 description = "Use LDAP protocol version 2"
1486 set_if = "$ldap_v3$"
1487 description = "Use LDAP protocol version 3"
1490 value = "$ldap_warning$"
1491 description = "Response time to result in warning status (seconds)"
1494 value = "$ldap_critical$"
1495 description = "Response time to result in critical status (seconds)"
1498 value = "$ldap_timeout$"
1499 description = "Seconds before connection times out (default: 10)"
1502 set_if = "$ldap_verbose$"
1503 description = "Show details for command-line debugging"
1507 vars.ldap_address = "$check_address$"
1509 vars.ldap_v3 = false
1510 vars.ldap_timeout = 10s
1511 vars.ldap_verbose = false
1514 object CheckCommand "clamd" {
1515 import "plugin-check-command"
1517 command = [ PluginDir + "/check_clamd" ]
1521 value = "$clamd_address$"
1522 description = "The host's address or unix socket (must be an absolute path)."
1526 value = "$clamd_port$"
1527 description = "Port number (default: none)."
1530 value = "$clamd_expect$"
1531 description = "String to expect in server response (may be repeated)."
1535 set_if = "$clamd_all$"
1536 description = "All expect strings need to occur in server response. Default is any."
1541 set_if = "$clamd_escape_send$"
1542 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
1546 value = "$clamd_send$"
1547 description = "String to send to the server."
1552 set_if = "$clamd_escape_quit$"
1553 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
1557 value = "$clamd_quit$"
1558 description = "String to send server to initiate a clean close of the connection."
1561 value = "$clamd_refuse$"
1562 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
1565 value = "$clamd_mismatch$"
1566 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
1569 set_if = "$clamd_jail$"
1570 description = "Hide output from TCP socket."
1573 value = "$clamd_maxbytes$"
1574 description = "Close connection once more than this number of bytes are received."
1577 value = "$clamd_delay$"
1578 description = "Seconds to wait between sending string and polling for response."
1581 value = "$clamd_certificate$"
1582 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."
1585 set_if = "$clamd_ssl$"
1586 description = "Use SSL for the connection."
1589 value = "$clamd_wtime$"
1590 description = "Response time to result in warning status (seconds)."
1593 value = "$clamd_ctime$"
1594 description = "Response time to result in critical status (seconds)."
1597 value = "$clamd_timeout$"
1598 description = "Seconds before connection times out. Defaults to 10."
1602 vars.clamd_ssl = false
1603 vars.clamd_refuse = "crit"
1604 vars.clamd_mismatch = "warn"
1605 vars.clamd_timeout = 10
1608 object CheckCommand "mailq" {
1609 import "plugin-check-command"
1611 command = [ PluginDir + "/check_mailq" ]
1615 value = "$mailq_warning$"
1616 description = "Min. number of messages in queue to generate warning"
1620 value = "$mailq_critical$"
1621 description = "Min. number of messages in queue to generate critical alert ( w < c )"
1625 value = "$mailq_domain_warning$"
1626 description = "Min. number of messages for same domain in queue to generate warning"
1629 value = "$mailq_domain_critical$"
1630 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
1633 value = "$mailq_timeout$"
1634 description = "Plugin timeout in seconds (default = 15)"
1637 value = "$mailq_servertype$"
1638 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
1643 object CheckCommand "pgsql" {
1644 import "plugin-check-command"
1645 import "ipv4-or-ipv6"
1647 command = [ PluginDir + "/check_pgsql" ]
1650 "-H" = "$pgsql_hostname$"
1651 "-P" = "$pgsql_port$"
1652 "-d" = "$pgsql_database$"
1653 "-l" = "$pgsql_username$"
1654 "-p" = "$pgsql_password$"
1655 "-o" = "$pgsql_options$"
1656 "-w" = "$pgsql_warning$"
1657 "-c" = "$pgsql_critical$"
1658 "-t" = "$pgsql_timeout$"
1659 "-q" = "$pgsql_query$"
1660 "-W" = "$pgsql_query_warning$"
1661 "-C" = "$pgsql_query_critical$"
1664 vars.pgsql_hostname = "$check_address$"