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$"
562 vars.imap_address = "$check_address$"
565 object CheckCommand "simap" {
566 import "plugin-check-command"
567 import "ipv4-or-ipv6"
569 command = [ PluginDir + "/check_simap" ]
572 "-H" = "$simap_address$"
573 "-p" = "$simap_port$"
576 vars.simap_address = "$check_address$"
579 object CheckCommand "pop" {
580 import "plugin-check-command"
581 import "ipv4-or-ipv6"
583 command = [ PluginDir + "/check_pop" ]
586 "-H" = "$pop_address$"
590 vars.pop_address = "$check_address$"
593 object CheckCommand "spop" {
594 import "plugin-check-command"
595 import "ipv4-or-ipv6"
597 command = [ PluginDir + "/check_spop" ]
600 "-H" = "$spop_address$"
604 vars.spop_address = "$check_address$"
607 object CheckCommand "ntp_time" {
608 import "plugin-check-command"
609 import "ipv4-or-ipv6"
611 command = [ PluginDir + "/check_ntp_time" ]
614 "-H" = "$ntp_address$"
617 "-w" = "$ntp_warning$"
618 "-c" = "$ntp_critical$"
619 "-o" = "$ntp_timeoffset$"
620 "-t" = "$ntp_timeout$"
623 vars.ntp_address = "$check_address$"
626 object CheckCommand "ntp_peer" {
627 import "plugin-check-command"
628 import "ipv4-or-ipv6"
630 command = [ PluginDir + "/check_ntp_peer" ]
633 "-H" = "$ntp_address$"
635 "-w" = "$ntp_warning$"
636 "-c" = "$ntp_critical$"
637 "-W" = "$ntp_wstratum$"
638 "-C" = "$ntp_cstratum$"
639 "-j" = "$ntp_wjitter$"
640 "-k" = "$ntp_cjitter$"
641 "-m" = "$ntp_wsource$"
642 "-n" = "$ntp_csource$"
643 "-t" = "$ntp_timeout$"
646 vars.ntp_address = "$check_address$"
649 object CheckCommand "ssh" {
650 import "plugin-check-command"
651 import "ipv4-or-ipv6"
653 command = [ PluginDir + "/check_ssh" ]
657 "-t" = "$ssh_timeout$"
659 value = "$ssh_address$"
665 vars.ssh_address = "$check_address$"
668 object CheckCommand "disk" {
669 import "plugin-check-command"
671 command = [ PluginDir + "/check_disk" ]
675 value = "$disk_wfree$"
676 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"
682 value = "$disk_cfree$"
683 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"
689 value = "$disk_inode_wfree$"
690 description = "Exit with WARNING status if less than PERCENT of inode space is free"
694 value = "$disk_inode_cfree$"
695 description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
699 value = "$disk_partitions$"
700 description = "Path or partition (may be repeated)"
707 value = "$disk_partition$"
712 value = "$disk_partitions_excluded$"
713 description = "Ignore device (only works if -p unspecified)"
718 value = "$disk_partition_excluded$"
722 set_if = "$disk_clear$"
723 description = "Clear thresholds"
727 set_if = "$disk_exact_match$"
728 description = "For paths or partitions specified with -p, only check for exact paths"
732 set_if = "$disk_errors_only$"
733 description = "Display only devices/mountpoints with errors"
737 value = "$disk_group$"
738 description = "Group paths. Thresholds apply to (free-)space of all partitions together"
742 set_if = "$disk_kilobytes$"
743 description = "Same as --units kB"
747 set_if = "$disk_local$"
748 description = " Only check local filesystems"
752 set_if = "$disk_stat_remote_fs$"
753 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)"
757 set_if = "$disk_mountpoint$"
758 description = "Display the mountpoint instead of the partition"
762 set_if = "$disk_megabytes$"
763 description = "Same as --units MB"
767 set_if = "$disk_all$"
768 description = "Explicitly select all paths. This is equivalent to -R .*"
772 value = "$disk_eregi_path$"
773 description = "Case insensitive regular expression for path/partition (may be repeated)"
778 value = "$disk_ereg_path$"
779 description = "Regular expression for path or partition (may be repeated)"
784 value = "$disk_ignore_eregi_path$"
785 description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
791 value = "$disk_ignore_ereg_path$"
792 description = "Regular expression to ignore selected path or partition (may be repeated)"
798 value = "$disk_timeout$"
799 description = "Seconds before connection times out (default: 10)"
803 value = "$disk_units$"
804 description = "Choose bytes, kB, MB, GB, TB (default: MB)"
808 value = "$disk_exclude_type$"
809 description = "Ignore all filesystems of indicated type (may be repeated)"
814 vars.disk_wfree = "20%"
815 vars.disk_cfree = "10%"
816 vars.disk_inode_wfree = "20%"
817 vars.disk_inode_cfree = "10%"
818 vars.disk_megabytes = true
819 vars.disk_exclude_type = ["none", "tmpfs", "sysfs", "proc", "devtmpfs", "devfs", "mtmfs"]
822 object CheckCommand "disk_smb" {
823 import "plugin-check-command"
825 command = [ PluginDir + "/check_disk_smb" ]
829 value = "$disk_smb_hostname$"
830 description = "NetBIOS name of the server."
833 value = "$disk_smb_share$"
834 description = "Share name to be tested."
837 value = "$disk_smb_workgroup$"
838 description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
841 value = "$disk_smb_address$"
842 description = "IP-address of HOST (only necessary if HOST is in another network)."
845 value = "$disk_smb_username$"
846 description = "Username to log in to server. (Defaults to 'guest' if omitted)."
849 value = "$disk_smb_password$"
850 description = "Password to log in to server. (Defaults to an empty password if omitted)."
853 value = "$disk_smb_wused$"
854 description = "Percent of used space at which a warning will be generated (Default: 85%)."
857 value = "$disk_smb_cused$"
858 description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
861 value = "$disk_smb_port$"
862 description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
866 vars.disk_smb_wused = "85%"
867 vars.disk_smb_cused = "95%"
870 object CheckCommand "users" {
871 import "plugin-check-command"
873 command = [ PluginDir + "/check_users" ]
876 "-w" = "$users_wgreater$"
877 "-c" = "$users_cgreater$"
880 vars.users_wgreater = 20
881 vars.users_cgreater = 50
884 object CheckCommand "procs" {
885 import "plugin-check-command"
887 command = [ PluginDir + "/check_procs" ]
891 value = "$procs_warning$"
892 description = "Generate warning state if metric is outside this range"
895 value = "$procs_critical$"
896 description = "Generate critical state if metric is outside this range"
899 value = "$procs_metric$"
900 description = "Check thresholds against metric"
903 value = "$procs_timeout$"
904 description = "Seconds before plugin times out"
907 set_if = "$procs_traditional$"
908 description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
911 value = "$procs_state$"
912 description = "Only scan for processes that have one or more of the status flags you specify"
915 value = "$procs_ppid$"
916 description = "Only scan for children of the parent process ID indicated"
919 value = "$procs_vsz$"
920 description = "Only scan for processes with VSZ higher than indicated"
923 value = "$procs_rss$"
924 description = "Only scan for processes with RSS higher than indicated"
927 value = "$procs_pcpu$"
928 description = "Only scan for processes with PCPU higher than indicated"
931 value = "$procs_user$"
932 description = "Only scan for processes with user name or ID indicated"
935 value = "$procs_argument$"
936 description = "Only scan for processes with args that contain STRING"
938 "--ereg-argument-array" = {
939 value = "$procs_argument_regex$"
940 description = "Only scan for processes with args that contain the regex STRING"
943 value = "$procs_command$"
944 description = "Only scan for exact matches of COMMAND (without path)"
947 set_if = "$procs_nokthreads$"
948 description = "Only scan for non kernel threads"
952 vars.procs_traditional = false
953 vars.procs_nokthreads = false
954 vars.procs_warning = 250
955 vars.procs_critical = 400
958 object CheckCommand "swap" {
959 import "plugin-check-command"
961 command = [ PluginDir + "/check_swap" ]
964 "-w" = "$swap_wfree$%"
965 "-c" = "$swap_cfree$%"
972 object CheckCommand "load" {
973 import "plugin-check-command"
975 command = [ PluginDir + "/check_load" ]
979 value = "$load_wload1$,$load_wload5$,$load_wload15$"
980 description = "Exit with WARNING status if load average exceeds WLOADn"
983 value = "$load_cload1$,$load_cload5$,$load_cload15$"
984 description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
987 set_if = "$load_percpu$"
988 description = "Divide the load averages by the number of CPUs (when possible)"
992 vars.load_wload1 = 5.0
993 vars.load_wload5 = 4.0
994 vars.load_wload15 = 3.0
996 vars.load_cload1 = 10.0
997 vars.load_cload5 = 6.0
998 vars.load_cload15 = 4.0
1000 vars.load_percpu = false
1003 object CheckCommand "snmp" {
1004 import "plugin-check-command"
1006 command = [ PluginDir + "/check_snmp" ]
1009 "-H" = "$snmp_address$"
1011 "-C" = "$snmp_community$"
1012 "-c" = "$snmp_crit$"
1013 "-w" = "$snmp_warn$"
1014 "-s" = "$snmp_string$"
1015 "-r" = "$snmp_ereg$"
1016 "-R" = "$snmp_eregi$"
1017 "-l" = "$snmp_label$"
1018 "-u" = "$snmp_units$"
1019 "-t" = "$snmp_timeout$"
1020 "--invert-search" = {
1021 set_if = "$snmp_invert_search$"
1022 description = "Invert search result and return CRITICAL if found"
1024 "-P" = "$snmp_version$"
1025 "-m" = "$snmp_miblist$"
1026 "--rate-multiplier" = "$snmp_rate_multiplier$"
1028 set_if = "$snmp_rate$"
1029 description = "Enable rate calculation"
1032 set_if = "$snmp_getnext$"
1033 description = "Use SNMP GETNEXT instead of SNMP GET"
1037 vars.snmp_address = {{
1038 var addr_v4 = macro("$address$")
1039 var addr_v6 = macro("$address6$")
1044 return "udp6:[" + addr_v6 + "]"
1048 vars.snmp_community = "public"
1049 vars.snmp_invert_search = false
1050 vars.snmp_timeout = "10"
1053 object CheckCommand "snmpv3" {
1054 import "plugin-check-command"
1055 import "ipv4-or-ipv6"
1057 command = [ PluginDir + "/check_snmp" ]
1061 value = "$snmpv3_address$"
1062 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1065 set_if = "$snmpv3_getnext$"
1066 description = "Use SNMP GETNEXT instead of SNMP GET"
1070 description = "SNMP protocol version"
1073 value = "$snmpv3_seclevel$"
1074 description = "SNMPv3 securityLevel"
1077 value = "$snmpv3_auth_alg$"
1078 description = "SNMPv3 auth proto"
1081 value = "$snmpv3_user$"
1082 description = "SNMPv3 username"
1085 value = "$snmpv3_auth_key$"
1086 description = "SNMPv3 authentication password"
1089 value = "$snmpv3_priv_key$"
1090 description = "SNMPv3 privacy password"
1093 value = "$snmpv3_oid$"
1094 description = "Object identifier(s) or SNMP variables whose value you wish to query"
1097 value = "$snmpv3_priv_alg$"
1098 description = "SNMPv3 priv proto (default DES)"
1101 value = "$snmpv3_warn$"
1102 description = "Warning threshold range(s)"
1105 value = "$snmpv3_crit$"
1106 description = "Critical threshold range(s)"
1109 value = "$snmpv3_string$"
1110 description = "Return OK state (for that OID) if STRING is an exact match"
1113 value = "$snmpv3_ereg$"
1114 description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1117 value = "$snmpv3_eregi$"
1118 description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1120 "--invert-search" = {
1121 set_if = "$snmpv3_invert_search$"
1122 description = "Invert search result and return CRITICAL if found"
1125 value = "$snmpv3_label$"
1126 description = "Prefix label for output from plugin"
1130 vars.snmpv3_address = "$check_address$"
1131 vars.snmpv3_auth_alg = "SHA"
1132 vars.snmpv3_priv_alg = "AES"
1133 vars.snmpv3_seclevel = "authPriv"
1136 object CheckCommand "snmp-uptime" {
1139 vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1142 object CheckCommand "apt" {
1143 import "plugin-check-command"
1145 command = [ PluginDir + "/check_apt" ]
1148 object CheckCommand "dhcp" {
1149 import "plugin-check-command"
1151 command = [ PluginDir + "/check_dhcp" ]
1154 "-s" = "$dhcp_serverip$"
1155 "-r" = "$dhcp_requestedip$"
1156 "-t" = "$dhcp_timeout$"
1157 "-i" = "$dhcp_interface$"
1160 set_if = "$dhcp_unicast$"
1164 vars.dhcp_unicast = false
1167 object CheckCommand "dns" {
1168 import "plugin-check-command"
1169 import "ipv4-or-ipv6"
1171 command = [ PluginDir + "/check_dns" ]
1175 value = "$dns_lookup$"
1176 description = "The name or address you want to query."
1179 value = "$dns_server$"
1180 description = "Optional DNS server you want to use for the lookup."
1183 value = "$dns_expected_answers$"
1184 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)."
1188 value ="$dns_expected_answer$"
1191 set_if = "$dns_authoritative$"
1194 value = "$dns_wtime$"
1195 description = "Return warning if elapsed time exceeds value."
1198 value = "$dns_ctime$"
1199 description = "Return critical if elapsed time exceeds value."
1202 value = "$dns_timeout$"
1203 description = "Seconds before connection times out. Defaults to 10."
1207 vars.dns_lookup = "$host.name$"
1208 vars.dns_expected_answer = "$check_address$"
1209 vars.dns_timeout = 10
1212 object CheckCommand "dig" {
1213 import "plugin-check-command"
1214 import "ipv4-or-ipv6"
1216 command = [ PluginDir + "/check_dig" ]
1219 "-H" = "$dig_server$"
1220 "-l" = "$dig_lookup$"
1223 vars.dig_server = "$check_address$"
1226 object CheckCommand "nscp" {
1227 import "plugin-check-command"
1228 import "ipv4-or-ipv6"
1230 command = [ PluginDir + "/check_nt" ]
1233 "-H" = "$nscp_address$"
1234 "-p" = "$nscp_port$"
1235 "-s" = "$nscp_password$"
1237 value = "$nscp_variable$"
1241 value = "$nscp_params$"
1244 "-w" = "$nscp_warn$"
1245 "-c" = "$nscp_crit$"
1246 "-t" = "$nscp_timeout$"
1249 description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
1250 set_if = "$nscp_showall$"
1254 vars.nscp_address = "$check_address$"
1255 vars.nscp_port = 12489
1256 vars.nscp_showall = false
1259 object CheckCommand "by_ssh" {
1260 import "plugin-check-command"
1261 import "ipv4-or-ipv6"
1263 command = [ PluginDir + "/check_by_ssh" ]
1266 "-H" = "$by_ssh_address$"
1267 "-p" = "$by_ssh_port$"
1268 "-C" = "$by_ssh_command$"
1269 "-l" = "$by_ssh_logname$"
1270 "-i" = "$by_ssh_identity$"
1272 set_if = "$by_ssh_quiet$"
1274 "-w" = "$by_ssh_warn$"
1275 "-c" = "$by_ssh_crit$"
1276 "-t" = "$by_ssh_timeout$"
1279 vars.by_ssh_address = "$check_address$"
1280 vars.by_ssh_quiet = false
1283 object CheckCommand "ups" {
1284 import "plugin-check-command"
1285 import "ipv4-or-ipv6"
1287 command = [ PluginDir + "/check_ups" ]
1291 value = "$ups_address$"
1292 description = "Address of the upsd server"
1296 value = "$ups_name$"
1297 description = "Name of the UPS to monitor"
1301 value = "$ups_port$"
1302 description = "Port number (default: 3493)"
1305 value = "$ups_variable$"
1306 description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
1309 value = "$ups_warning$"
1310 description = "Warning threshold for the selected variable"
1313 value = "$ups_critical$"
1314 description = "Critical threshold for the selected variable"
1317 set_if = "$ups_celsius$"
1318 description = "Display temperature in degrees Celsius instead of Fahrenheit"
1321 value = "$ups_timeout$"
1322 description = "Seconds before the connection times out (default: 10)"
1326 vars.ups_address = "$check_address$"
1327 vars.ups_name = "ups"
1330 object CheckCommand "nrpe" {
1331 import "plugin-check-command"
1332 import "ipv4-or-ipv6"
1334 command = [ PluginDir + "/check_nrpe" ]
1337 "-H" = "$nrpe_address$"
1338 "-p" = "$nrpe_port$"
1339 "-c" = "$nrpe_command$"
1341 set_if = "$nrpe_no_ssl$"
1342 description = "Do not use SSL."
1345 set_if = "$nrpe_timeout_unknown$"
1346 description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
1348 "-t" = "$nrpe_timeout$"
1350 value = "$nrpe_arguments$"
1356 vars.nrpe_address = "$check_address$"
1357 vars.nrpe_no_ssl = false
1358 vars.nrpe_timeout_unknown = false
1363 object CheckCommand "hpjd" {
1364 import "plugin-check-command"
1365 import "ipv4-or-ipv6"
1367 command = [ PluginDir + "/check_hpjd" ]
1370 "-H" = "$hpjd_address$"
1371 "-C" = "$hpjd_community$"
1372 "-p" = "$hpjd_port$"
1375 vars.hpjd_address = "$check_address$"
1378 object CheckCommand "icmp" {
1379 import "plugin-check-command"
1381 command = [ PluginDir + "/check_icmp" ]
1385 value = "$icmp_address$"
1389 "-w" = "$icmp_wrta$,$icmp_wpl$%"
1390 "-c" = "$icmp_crta$,$icmp_cpl$%"
1391 "-s" = "$icmp_source$"
1392 "-n" = "$icmp_packets$"
1393 "-i" = "$icmp_packet_interval$"
1394 "-I" = "$icmp_target_interval$"
1395 "-m" = "$icmp_hosts_alive$"
1396 "-b" = "$icmp_data_bytes$"
1397 "-t" = "$icmp_timeout$"
1400 vars.icmp_address = "$address$"
1401 vars.icmp_wrta = 100
1403 vars.icmp_crta = 200
1407 object CheckCommand "ldap" {
1408 import "plugin-check-command"
1409 import "ipv4-or-ipv6"
1411 command = [ PluginDir + "/check_ldap" ]
1415 value = "$ldap_address$"
1416 description = "Host name, IP Address, or unix socket (must be an absolute path)"
1419 value = "$ldap_port$"
1420 description = "Port number (default: 389)"
1423 value = "$ldap_attr$"
1424 description = "ldap attribute to search (default: \"(objectclass=*)\""
1427 value = "$ldap_base$"
1429 description = "ldap base (eg. ou=my unit, o=my org, c=at"
1432 value = "$ldap_bind$"
1433 description = "ldap bind DN (if required)"
1436 value = "$ldap_pass$"
1437 description = "ldap password (if required)"
1440 set_if = "$ldap_starttls$"
1441 description = "use starttls mechanism introduced in protocol version 3"
1444 set_if = "$ldap_ssl$"
1445 description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
1448 set_if = "$ldap_v2$"
1449 description = "Use LDAP protocol version 2"
1452 set_if = "$ldap_v3$"
1453 description = "Use LDAP protocol version 3"
1456 value = "$ldap_warning$"
1457 description = "Response time to result in warning status (seconds)"
1460 value = "$ldap_critical$"
1461 description = "Response time to result in critical status (seconds)"
1464 value = "$ldap_timeout$"
1465 description = "Seconds before connection times out (default: 10)"
1468 set_if = "$ldap_verbose$"
1469 description = "Show details for command-line debugging"
1473 vars.ldap_address = "$check_address$"
1475 vars.ldap_v3 = false
1476 vars.ldap_timeout = 10s
1477 vars.ldap_verbose = false
1480 /* Contrib plugins */
1481 object CheckCommand "running_kernel" {
1482 import "plugin-check-command"
1484 command = [ "sudo", PluginDir + "/check_running_kernel" ]
1487 object CheckCommand "clamd" {
1488 import "plugin-check-command"
1490 command = [ PluginDir + "/check_clamd" ]
1494 value = "$clamd_address$"
1495 description = "The host's address or unix socket (must be an absolute path)."
1499 value = "$clamd_port$"
1500 description = "Port number (default: none)."
1503 value = "$clamd_expect$"
1504 description = "String to expect in server response (may be repeated)."
1508 set_if = "$clamd_all$"
1509 description = "All expect strings need to occur in server response. Default is any."
1514 set_if = "$clamd_escape_send$"
1515 description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
1519 value = "$clamd_send$"
1520 description = "String to send to the server."
1525 set_if = "$clamd_escape_quit$"
1526 description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
1530 value = "$clamd_quit$"
1531 description = "String to send server to initiate a clean close of the connection."
1534 value = "$clamd_refuse$"
1535 description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
1538 value = "$clamd_mismatch$"
1539 description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
1542 set_if = "$clamd_jail$"
1543 description = "Hide output from TCP socket."
1546 value = "$clamd_maxbytes$"
1547 description = "Close connection once more than this number of bytes are received."
1550 value = "$clamd_delay$"
1551 description = "Seconds to wait between sending string and polling for response."
1554 value = "$clamd_certificate$"
1555 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."
1558 set_if = "$clamd_ssl$"
1559 description = "Use SSL for the connection."
1562 value = "$clamd_wtime$"
1563 description = "Response time to result in warning status (seconds)."
1566 value = "$clamd_ctime$"
1567 description = "Response time to result in critical status (seconds)."
1570 value = "$clamd_timeout$"
1571 description = "Seconds before connection times out. Defaults to 10."
1575 vars.clamd_ssl = false
1576 vars.clamd_refuse = "crit"
1577 vars.clamd_mismatch = "warn"
1578 vars.clamd_timeout = 10
1581 object CheckCommand "mailq" {
1582 import "plugin-check-command"
1584 command = [ PluginDir + "/check_mailq" ]
1588 value = "$mailq_warning$"
1589 description = "Min. number of messages in queue to generate warning"
1593 value = "$mailq_critical$"
1594 description = "Min. number of messages in queue to generate critical alert ( w < c )"
1598 value = "$mailq_domain_warning$"
1599 description = "Min. number of messages for same domain in queue to generate warning"
1602 value = "$mailq_domain_critical$"
1603 description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
1606 value = "$mailq_timeout$"
1607 description = "Plugin timeout in seconds (default = 15)"
1610 value = "$mailq_servertype$"
1611 description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"