]> granicus.if.org Git - icinga2/blob - itl/command-plugins.conf
Merge pull request #6825 from ekeih/docs/explain-retry-interval-for-passive-checks...
[icinga2] / itl / command-plugins.conf
1 /******************************************************************************
2  * Icinga 2                                                                   *
3  * Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/)      *
4  *                                                                            *
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.                     *
9  *                                                                            *
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.                               *
14  *                                                                            *
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  ******************************************************************************/
19
20 template CheckCommand "ipv4-or-ipv6" {
21         vars.check_address = {{
22                 var addr_v4 = macro("$address$")
23                 var addr_v6 = macro("$address6$")
24
25                 if (addr_v4 && !macro("$check_ipv6$") || macro("$check_ipv4$")) {
26                         return addr_v4
27                 } else {
28                         return addr_v6
29                 }
30         }}
31
32         vars.check_ipv4 = false
33         vars.check_ipv6 = false
34 }
35
36 template CheckCommand "ping-common" {
37         command = [ PluginDir + "/check_ping" ]
38
39         arguments = {
40                 "-H" = {
41                         value = "$ping_address$"
42                         description = "host to ping"
43                 }
44                 "-w" = {
45                         value = "$ping_wrta$,$ping_wpl$%"
46                         description = "warning threshold pair"
47                 }
48                 "-c" = {
49                         value = "$ping_crta$,$ping_cpl$%"
50                         description = "critical threshold pair"
51                 }
52                 "-p" = {
53                         value = "$ping_packets$"
54                         description = "number of ICMP ECHO packets to send (Default: 5)"
55                 }
56                 "-t" = {
57                         value = "$ping_timeout$"
58                         description = "Seconds before connection times out (default: 10)"
59                 }
60         }
61
62         vars.ping_wrta = 100
63         vars.ping_wpl = 5
64         vars.ping_crta = 200
65         vars.ping_cpl = 15
66 }
67
68 object CheckCommand "ping" {
69         import "ping-common"
70         import "ipv4-or-ipv6"
71
72         vars.ping_address = "$check_address$"
73 }
74
75 object CheckCommand "ping4" {
76         import "ping-common"
77
78         command += [ "-4" ]
79
80         vars.ping_address = "$address$"
81 }
82
83 object CheckCommand "ping6" {
84         import "ping-common"
85
86         command += [ "-6" ]
87
88         vars.ping_address = "$address6$"
89 }
90
91 template CheckCommand "hostalive-common" {
92         vars.ping_wrta = 3000.0
93         vars.ping_wpl = 80
94
95         vars.ping_crta = 5000.0
96         vars.ping_cpl = 100
97 }
98
99 object CheckCommand "hostalive" {
100         import "ping"
101         import "hostalive-common"
102 }
103
104 object CheckCommand "hostalive4" {
105         import "ping4"
106         import "hostalive-common"
107 }
108
109 object CheckCommand "hostalive6" {
110         import "ping6"
111         import "hostalive-common"
112 }
113
114 template CheckCommand "fping-common" {
115         command = [
116                 PluginDir + "/check_fping",
117                 "$fping_address$"
118         ]
119
120         arguments = {
121                 "-w" = {
122                         value = "$fping_wrta$,$fping_wpl$%"
123                         description = "warning threshold pair"
124                 }
125                 "-c" = {
126                         value = "$fping_crta$,$fping_cpl$%"
127                         description = "critical threshold pair"
128                 }
129                 "-n" = {
130                         value = "$fping_number$"
131                         description = "number of ICMP packets to send (default: 1)"
132                 }
133                 "-i" = {
134                         value = "$fping_interval$"
135                         description = "Interval (ms) between sending packets (default: fping's default for -p)"
136                 }
137                 "-b" = {
138                         value = "$fping_bytes$"
139                         description = "size of ICMP packet (default: 56)"
140                 }
141                 "-T" = {
142                         value = "$fping_target_timeout$"
143                         description = "Target timeout (ms) (default: fping's default for -t)"
144                 }
145                 "-S" = {
146                         value = "$fping_source_ip$"
147                         description = "name or IP Address of sourceip"
148                 }
149                 "-I" = {
150                         value = "$fping_source_interface$"
151                         description = "source interface name"
152                 }
153         }
154
155         vars.fping_wrta = 100
156         vars.fping_wpl = 5
157         vars.fping_crta = 200
158         vars.fping_cpl = 15
159         vars.fping_number = 5
160         vars.fping_interval = 500
161 }
162
163 object CheckCommand "fping4" {
164         import "fping-common"
165
166         command += [ "-4" ]
167
168         vars.fping_address = "$address$"
169 }
170
171 object CheckCommand "fping6" {
172         import "fping-common"
173
174         command += [ "-6" ]
175
176         vars.fping_address = "$address6$"
177 }
178
179 object CheckCommand "tcp" {
180         import "ipv4-or-ipv6"
181
182         command = [ PluginDir + "/check_tcp" ]
183
184         arguments = {
185                 "-H" = {
186                         value =  "$tcp_address$"
187                         description = "Host name, IP Address, or unix socket (must be an absolute path)."
188                 }
189                 "-p" = {
190                         value =  "$tcp_port$"
191                         description = "The TCP port number."
192                 }
193                 "-e" = {
194                         value = "$tcp_expect$"
195                         description = "String to expect in server response (may be repeated)."
196                 }
197                 "-A" = {
198                         set_if = "$tcp_all$"
199                         description = "All expect strings need to occur in server response. Defaults to false."
200                 }
201                 "-E_send" = {
202                         key = "-E"
203                         order = 1
204                         set_if = "$tcp_escape_send$"
205                         description = "Enable usage of \n, \r, \t or \\ in send string."
206                 }
207                 "-s" = {
208                         order = 2
209                         value = "$tcp_send$"
210                         description = "String to send to the server."
211                 }
212                 "-E_quit" = {
213                         key = "-E"
214                         order = 3
215                         set_if = "$tcp_escape_quit$"
216                         description = "Enable usage of \n, \r, \t or \\ in quit string."
217                 }
218                 "-q" = {
219                         order = 4
220                         value = "$tcp_quit$"
221                         description = "String to send server to initiate a clean close of the connection."
222                 }
223                 "-r" = {
224                         value = "$tcp_refuse$"
225                         description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
226                 }
227                 "-M" = {
228                         value = "$tcp_mismatch$"
229                         description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
230                 }
231                 "-j" = {
232                         set_if = "$tcp_jail$"
233                         description = "Hide output from TCP socket."
234                 }
235                 "-m" = {
236                         value = "$tcp_maxbytes$"
237                         description = "Close connection once more than this number of bytes are received."
238                 }
239                 "-d" = {
240                         value = "$tcp_delay$"
241                         description = "Seconds to wait between sending string and polling for response."
242                 }
243                 "-D" = {
244                         value = "$tcp_certificate$"
245                         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."
246                 }
247                 "-S" = {
248                         set_if = "$tcp_ssl$"
249                         description = "Use SSL for the connection."
250                 }
251                 "-w" = {
252                         value = "$tcp_wtime$"
253                         description = "Response time to result in warning status (seconds)."
254                 }
255                 "-c" = {
256                         value = "$tcp_ctime$"
257                         description = "Response time to result in critical status (seconds)."
258                 }
259                 "-t" = {
260                         value = "$tcp_timeout$"
261                         description = "Seconds before connection times out. Defaults to 10."
262                 }
263                 "-4" = {
264                         set_if = "$tcp_ipv4$"
265                         description = "Use IPv4 connection"
266                 }
267                 "-6" = {
268                         set_if = "$tcp_ipv6$"
269                         description = "Use IPv6 connection"
270                 }
271         }
272
273         vars.tcp_address = "$check_address$"
274         vars.tcp_all = false
275         vars.tcp_refuse = "crit"
276         vars.tcp_mismatch = "warn"
277         vars.tcp_timeout = 10
278         vars.check_ipv4 = "$tcp_ipv4$"
279         vars.check_ipv6 = "$tcp_ipv6$"
280 }
281
282 object CheckCommand "ssl" {
283         import "ipv4-or-ipv6"
284
285         command = [ PluginDir + "/check_tcp" ]
286
287         arguments = {
288                 "-H" = {
289                         value = "$ssl_address$"
290                         description = "Host address"
291                 }
292                 "-p" = {
293                         value = "$ssl_port$"
294                         description ="TCP port (default: 443)"
295                 }
296                 "--ssl" = {
297                         description = "Use SSL for the connection"
298                 }
299                 "-t" = {
300                         value = "$ssl_timeout$"
301                         description = "Seconds before connection times out (default: 10)"
302                 }
303                 "-D" = {{
304                         var days_warn = macro("$ssl_cert_valid_days_warn$")
305                         var days_critical = macro("$ssl_cert_valid_days_critical$")
306                         if (days_warn) {
307                                 if (days_critical) {
308                                         return days_warn + "," + days_critical
309                                 } else {
310                                         return days_warn
311                                 }
312                         }
313                 }}
314                 "-N" = {
315                         value = "$ssl_sni$"
316                         description = "Enable SSL/TLS hostname extension support (SNI)"
317                 }
318         }
319
320         vars.ssl_address = "$check_address$"
321         vars.ssl_port = 443
322         vars.ssl_cert_valid_days_warn = false
323         vars.ssl_cert_valid_days_critical = false
324 }
325
326
327 object CheckCommand "udp" {
328         import "ipv4-or-ipv6"
329
330         command = [
331                 PluginDir + "/check_udp",
332                 "-H", "$udp_address$",
333                 "-p", "$udp_port$"
334         ]
335
336         arguments = {
337                 "-s" = {
338                         value = "$udp_send$"
339                         required = true
340                         description = "String to send to the server"
341                 }
342                 "-e" = {
343                         value = "$udp_expect$"
344                         required = true
345                         description = " String to expect in server response"
346                 }
347                 "-q" = {
348                         value = "$udp_quit$"
349                         description = "String to send server to initiate a clean close of the connection"
350                 }
351                 "-4" = {
352                         set_if = "$udp_ipv4$"
353                         description = "Use IPv4 connection"
354                 }
355                 "-6" = {
356                         set_if = "$udp_ipv6$"
357                         description = "Use IPv6 connection"
358                 }
359         }
360
361         vars.udp_address = "$check_address$"
362         vars.check_ipv4 = "$udp_ipv4$"
363         vars.check_ipv6 = "$udp_ipv6$"
364 }
365
366 object CheckCommand "http" {
367         import "ipv4-or-ipv6"
368
369         command = [ PluginDir + "/check_http" ]
370
371         arguments = {
372                 "-H" = {
373                         value = "$http_vhost$"
374                         description = "Host name argument for servers using host headers (virtual host)"
375                 }
376                 "-I" = {
377                         value = "$http_address$"
378                         description = "IP address or name (use numeric address if possible to bypass DNS lookup)"
379                 }
380                 "-u" = {
381                         value = "$http_uri$"
382                         description = "URL to GET or POST (default: /)"
383                 }
384                 "-p" = {
385                         value = "$http_port$"
386                         description = "Port number (default: 80)"
387                 }
388                 "-S" = {
389                         set_if = "$http_ssl$"
390                         description = "Connect via SSL"
391                 }
392                 "-S1" = {
393                         set_if = "$http_ssl_force_tlsv1$"
394                         description = "Connect via SSL version TLSv1"
395                 }
396                 "-S1.1" = {
397                         set_if = "$http_ssl_force_tlsv1_1$"
398                         description = "Connect via SSL version TLSv1.1"
399                 }
400                 "-S1.2" = {
401                         set_if = "$http_ssl_force_tlsv1_2$"
402                         description = "Connect via SSL version TLSv1.2"
403                 }
404                 "-S2" = {
405                         set_if = "$http_ssl_force_sslv2$"
406                         description = "Connect via SSL version SSLv2"
407                 }
408                 "-S3" = {
409                         set_if = "$http_ssl_force_sslv3$"
410                         description = "Connect via SSL version SSLv3"
411                 }
412                 "-S1+" = {
413                         set_if = "$http_ssl_force_tlsv1_or_higher$"
414                         description = "Connect via SSL version TLSv1 and newer"
415                 }
416                 "-S1.1+" = {
417                         set_if = "$http_ssl_force_tlsv1_1_or_higher$"
418                         description = "Connect via SSL version TLSv1.1 and newer"
419                 }
420                 "-S1.2+" = {
421                         set_if = "$http_ssl_force_tlsv1_2_or_higher$"
422                         description = "Connect via SSL version TLSv1.2 and newer"
423                 }
424                 "-S2+" = {
425                         set_if = "$http_ssl_force_sslv2_or_higher$"
426                         description = "Connect via SSL version SSLv2 and newer"
427                 }
428                 "-S3+" = {
429                         set_if = "$http_ssl_force_sslv3_or_higher$"
430                         description = "Connect via SSL version SSLv3 and newer"
431                 }
432                 "--sni" = {
433                         set_if = "$http_sni$"
434                         description = "Enable SSL/TLS hostname extension support (SNI)"
435                 }
436                 "-C" = {
437                         value = "$http_certificate$"
438                         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."
439                 }
440                 "-J" = {
441                         value = "$http_clientcert$"
442                         description = "Name of file contains the client certificate (PEM format)"
443                 }
444                 "-K" = {
445                         value = "$http_privatekey$"
446                         description = "Name of file contains the private key (PEM format)"
447                 }
448                 "-a" = {
449                         value = "$http_auth_pair$"
450                         description = "Username:password on sites with basic authentication"
451                 }
452                 "--no-body" = {
453                         set_if = "$http_ignore_body$"
454                         description = "Don't wait for document body: stop reading after headers"
455                 }
456                 "-w" = {
457                         value = "$http_warn_time$"
458                         description = "Response time to result in warning status (seconds)"
459                 }
460                 "-c" = {
461                         value = "$http_critical_time$"
462                         description = "Response time to result in critical status (seconds)"
463                 }
464                 "-e" = {
465                         value = "$http_expect$"
466                         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.)"
467                 }
468                 "-d" = {
469                         value = "$http_headerstring$"
470                         description = "String to expect in the response headers"
471                 }
472                 "-s" = {
473                         value = "$http_string$"
474                         description = "String to expect in the content"
475                 }
476                 "-P" = {
477                         value = "$http_post$"
478                         description = "URL encoded http POST data"
479                 }
480                 "-j" = {
481                         value = "$http_method$"
482                         description = "Set http method (for example: HEAD, OPTIONS, TRACE, PUT, DELETE)"
483                 }
484                 "-M" = {
485                         value = "$http_maxage$"
486                         description = "Warn if document is more than seconds old"
487                 }
488                 "-T" = {
489                         value = "$http_contenttype$"
490                         description = "Specify Content-Type header when POSTing"
491                 }
492                 "-l" = {
493                         set_if = "$http_linespan$"
494                         description = "Allow regex to span newline"
495                         order = 1
496                 }
497                 "-r" = {
498                         value = "$http_expect_body_regex$"
499                         description = "Search page for regex"
500                         order = 2
501                 }
502                 "-R" = {
503                         value = "$http_expect_body_eregi$"
504                         description = "Search page for case-insensitive regex"
505                         order = 2
506                 }
507                 "--invert-regex" = {
508                         set_if = "$http_invertregex$"
509                         description = "Return CRITICAL if found, OK if not"
510                 }
511                 "-b" = {
512                         value = "$http_proxy_auth_pair$"
513                         description = "Username:password on proxy-servers with basic authentication"
514                 }
515                 "-A" = {
516                         value = "$http_useragent$"
517                         description = "String to be sent in http header as User Agent"
518                 }
519                 "-k" = {
520                         value = "$http_header$"
521                         description = "Any other tags to be sent in http header"
522                 }
523                 "-E" = {
524                         set_if = "$http_extendedperfdata$"
525                         description = "Print additional perfdata"
526                 }
527                 "-f" = {
528                         value = "$http_onredirect$"
529                         description = "How to handle redirect pages"
530                 }
531                 "-m" = {
532                         value = "$http_pagesize$"
533                         description = "Minim page size required:Maximum page size required"
534                 }
535                 "-t" = {
536                         value = "$http_timeout$"
537                         description = "Seconds before connection times out"
538                 }
539                 "-4" = {
540                         set_if = "$http_ipv4$"
541                         description = "Use IPv4 connection"
542                 }
543                 "-6" = {
544                         set_if = "$http_ipv6$"
545                         description = "Use IPv6 connection"
546                 }
547                 "-L" = {
548                         set_if = "$http_link$"
549                         description = "Wrap output in HTML link"
550                 }
551                 "-v" = {
552                         set_if = "$http_verbose$"
553                         description = "Show details for command-line debugging"
554                 }
555         }
556
557         vars.http_address = "$check_address$"
558         vars.http_ssl = false
559         vars.http_sni = false
560         vars.http_linespan = false
561         vars.http_invertregex = false
562         vars.check_ipv4 = "$http_ipv4$"
563         vars.check_ipv6 = "$http_ipv6$"
564         vars.http_link = false
565         vars.http_verbose = false
566 }
567
568 object CheckCommand "ftp" {
569         import "ipv4-or-ipv6"
570
571         command = [ PluginDir + "/check_ftp" ]
572
573         arguments = {
574                 "-H" = {
575                         value = "$ftp_address$"
576                         description = "The host's address. Defaults to $address$ or $address6$ if the address attribute is not set."
577                 }
578                 "-p" = {
579                         value = "$ftp_port$"
580                         description = "The FTP port number. Defaults to none"
581                 }
582                 "-e" = {
583                         value = "$ftp_expect$"
584                         description = "String to expect in server response (may be repeated)."
585                 }
586                 "-A" = {
587                         set_if = "$ftp_all$"
588                         description = "All expect strings need to occur in server response. Default is any."
589                 }
590                 "-E_send" = {
591                         key = "-E"
592                         order = 1
593                         set_if = "$ftp_escape_send$"
594                         description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
595                 }
596                 "-s" = {
597                         order = 2
598                         value = "$ftp_send$"
599                         description = "String to send to the server."
600                 }
601                 "-E_quit" = {
602                         key = "-E"
603                         order = 3
604                         set_if = "$ftp_escape_quit$"
605                         description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
606                 }
607                 "-q" = {
608                         order = 4
609                         value = "$ftp_quit$"
610                         description = "String to send server to initiate a clean close of the connection."
611                 }
612                 "-r" = {
613                         value = "$ftp_refuse$"
614                         description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
615                 }
616                 "-M" = {
617                         value = "$ftp_mismatch$"
618                         description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
619                 }
620                 "-j" = {
621                         set_if = "$ftp_jail$"
622                         description = "Hide output from TCP socket."
623                 }
624                 "-m" = {
625                         value = "$ftp_maxbytes$"
626                         description = "Close connection once more than this number of bytes are received."
627                 }
628                 "-d" = {
629                         value = "$ftp_delay$"
630                         description = "Seconds to wait between sending string and polling for response."
631                 }
632                 "-D" = {
633                         value = "$ftp_certificate$"
634                         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."
635                 }
636                 "-S" = {
637                         set_if = "$ftp_ssl$"
638                         description = "Use SSL for the connection."
639                 }
640                 "-w" = {
641                         value = "$ftp_wtime$"
642                         description = "Response time to result in warning status (seconds)."
643                 }
644                 "-c" = {
645                         value = "$ftp_ctime$"
646                         description = "Response time to result in critical status (seconds)."
647                 }
648                 "-t" = {
649                         value = "$ftp_timeout$"
650                         description = "Seconds before connection times out. Defaults to 10."
651                 }
652                 "-4" = {
653                         set_if = "$ftp_ipv4$"
654                         description = "Use IPv4 connection"
655                 }
656                 "-6" = {
657                         set_if = "$ftp_ipv6$"
658                         description = "Use IPv6 connection"
659                 }
660         }
661
662         vars.ftp_address = "$check_address$"
663         vars.ftp_ssl = false
664         vars.ftp_refuse = "crit"
665         vars.ftp_mismatch = "warn"
666         vars.ftp_timeout = 10
667         vars.check_ipv4 = "$ftp_ipv4$"
668         vars.check_ipv6 = "$ftp_ipv6$"
669 }
670
671 object CheckCommand "smtp" {
672         import "ipv4-or-ipv6"
673
674         command = [ PluginDir + "/check_smtp" ]
675
676         arguments = {
677                 "-H" = {
678                         value = "$smtp_address$"
679                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
680                 }
681                 "-p" = {
682                         value = "$smtp_port$"
683                         description = "Port number (default: 25)"
684                 }
685                 "-f" = {
686                         value = "$smtp_mail_from$"
687                         description = "FROM-address to include in MAIL command, required by Exchange 2000"
688                 }
689                 "-e" = {
690                         value = "$smtp_expect$"
691                         description = "String to expect in first line of server response (default: '220')"
692                 }
693                 "-C" = {
694                         value = "$smtp_command$"
695                         description = "SMTP command"
696                 }
697                 "-R" = {
698                         value = "$smtp_response$"
699                         description = "Expected response to command (may be used repeatedly)"
700                 }
701                 "-F" = {
702                         value = "$smtp_helo_fqdn$"
703                         description = "FQDN used for HELO"
704                 }
705                 "-D" = {
706                         value = "$smtp_certificate_age$"
707                         description = "Minimum number of days a certificate has to be valid"
708                 }
709                 "-S" = {
710                         set_if = "$smtp_starttls$"
711                         description = "Use STARTTLS for the connection."
712                 }
713                 "-A" = {
714                         value = "$smtp_authtype$"
715                         description = "SMTP AUTH type to check (default none, only LOGIN supported)"
716                 }
717                 "-U" = {
718                         value = "$smtp_authuser$"
719                         description = "SMTP AUTH username"
720                 }
721                 "-P" = {
722                         value = "$smtp_authpass$"
723                         description = "SMTP AUTH password"
724                 }
725                 "-q" = {
726                         value = "$smtp_ignore_quit$"
727                         description = "Ignore failure when sending QUIT command to server"
728                 }
729                 "-w" = {
730                         value = "$smtp_warning$"
731                         description = "Response time to result in warning status (seconds)"
732                 }
733                 "-c" = {
734                         value = "$smtp_critical$"
735                         description = "Response time to result in critical status (seconds)"
736                 }
737                 "-t" = {
738                         value = "$smtp_timeout$"
739                         description = "Seconds before connection times out (default: 10)"
740                 }
741                 "-4" = {
742                         set_if = "$smtp_ipv4$"
743                         description = "Use IPv4 connection"
744                 }
745                 "-6" = {
746                         set_if = "$smtp_ipv6$"
747                         description = "Use IPv6 connection"
748                 }
749         }
750
751         vars.smtp_address = "$check_address$"
752         vars.check_ipv4 = "$smtp_ipv4$"
753         vars.check_ipv6 = "$smtp_ipv6$"
754 }
755
756 object CheckCommand "ssmtp" {
757         import "ipv4-or-ipv6"
758
759         command = [ PluginDir + "/check_ssmtp" ]
760
761         arguments = {
762                 "-H" = {
763                         value = "$ssmtp_address$"
764                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
765                 }
766                 "-p" = {
767                         value = "$ssmtp_port$"
768                         description = "Port number (default: none)"
769                 }
770                 "-E" = {
771                         value = "$ssmtp_escape$"
772                         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"
773                 }
774                 "-s" = {
775                         value = "$ssmtp_send$"
776                         description = "String to send to the server"
777                 }
778                 "-e" = {
779                         value = "$ssmtp_expect$"
780                         description = "String to expect in server response (may be repeated)"
781                 }
782                 "-A" = {
783                         set_if = "$ssmtp_all$"
784                         description = "All expect strings need to occur in server response. Default is any."
785                 }
786                 "-q" = {
787                         value = "$ssmtp_quit$"
788                         description = "String to send server to initiate a clean close of the connection"
789                 }
790                 "-r" = {
791                         value = "$ssmtp_refuse$"
792                         description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
793                 }
794                 "-M" = {
795                         value = "$ssmtp_mismatch$"
796                         description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
797                 }
798                 "-j" = {
799                         set_if = "$ssmtp_jail$"
800                         description = "Hide output from TCP socket."
801                 }
802                 "-m" = {
803                         value = "$ssmtp_maxbytes$"
804                         description = "Close connection once more than this number of bytes are received"
805                 }
806                 "-d" = {
807                         value = "$ssmtp_delay$"
808                         description = "Seconds to wait between sending string and polling for response"
809                 }
810                 "-D" = {
811                         value = "$ssmtp_certificate_age$"
812                         description = "Minimum number of days a certificate has to be valid"
813                 }
814                 "-S" = {
815                         set_if = "$ssmtp_ssl$"
816                         description = "Use SSL for the connection."
817                 }
818                 "-w" = {
819                         value = "$ssmtp_warning$"
820                         description = "Response time to result in warning status (seconds)"
821                 }
822                 "-c" = {
823                         value = "$ssmtp_critical$"
824                         description = "Response time to result in critical status (seconds)"
825                 }
826                 "-t" = {
827                         value = "$ssmtp_timeout$"
828                         description = "Seconds before connection times out (default: 10)"
829                 }
830                 "-4" = {
831                         set_if = "$ssmtp_ipv4$"
832                         description = "Use IPv4 connection"
833                 }
834                 "-6" = {
835                         set_if = "$ssmtp_ipv6$"
836                         description = "Use IPv6 connection"
837                 }
838         }
839
840         vars.ssmtp_address = "$check_address$"
841         vars.check_ipv4 = "$ssmtp_ipv4$"
842         vars.check_ipv6 = "$ssmtp_ipv6$"
843 }
844
845 object CheckCommand "imap" {
846         import "ipv4-or-ipv6"
847
848         command = [ PluginDir + "/check_imap" ]
849
850         arguments = {
851                 "-H" = {
852                         value = "$imap_address$"
853                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
854                 }
855                 "-p" = {
856                         value = "$imap_port$"
857                         description = "Port number (default: none)"
858                 }
859                 "-E" = {
860                         value = "$imap_escape$"
861                         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"
862                 }
863                 "-s" = {
864                         value = "$imap_send$"
865                         description = "String to send to the server"
866                 }
867                 "-e" = {
868                         value = "$imap_expect$"
869                         description = "String to expect in server response (may be repeated)"
870                 }
871                 "-A" = {
872                         set_if = "$imap_all$"
873                         description = "All expect strings need to occur in server response. Default is any."
874                 }
875                 "-q" = {
876                         value = "$imap_quit$"
877                         description = "String to send server to initiate a clean close of the connection"
878                 }
879                 "-r" = {
880                         value = "$imap_refuse$"
881                         description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
882                 }
883                 "-M" = {
884                         value = "$imap_mismatch$"
885                         description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
886                 }
887                 "-j" = {
888                         set_if = "$imap_jail$"
889                         description = "Hide output from TCP socket."
890                 }
891                 "-m" = {
892                         value = "$imap_maxbytes$"
893                         description = "Close connection once more than this number of bytes are received"
894                 }
895                 "-d" = {
896                         value = "$imap_delay$"
897                         description = "Seconds to wait between sending string and polling for response"
898                 }
899                 "-D" = {
900                         value = "$imap_certificate_age$"
901                         description = "Minimum number of days a certificate has to be valid"
902                 }
903                 "-S" = {
904                         set_if = "$imap_ssl$"
905                         description = "Use SSL for the connection."
906                 }
907                 "-w" = {
908                         value = "$imap_warning$"
909                         description = "Response time to result in warning status (seconds)"
910                 }
911                 "-c" = {
912                         value = "$imap_critical$"
913                         description = "Response time to result in critical status (seconds)"
914                 }
915                 "-t" = {
916                         value = "$imap_timeout$"
917                         description = "Seconds before connection times out (default: 10)"
918                 }
919                 "-4" = {
920                         set_if = "$imap_ipv4$"
921                         description = "Use IPv4 connection"
922                 }
923                 "-6" = {
924                         set_if = "$imap_ipv6$"
925                         description = "Use IPv6 connection"
926                 }
927         }
928
929         vars.imap_address = "$check_address$"
930         vars.check_ipv4 = "$imap_ipv4$"
931         vars.check_ipv6 = "$imap_ipv6$"
932 }
933
934 object CheckCommand "simap" {
935         import "ipv4-or-ipv6"
936
937         command = [ PluginDir + "/check_simap" ]
938
939         arguments = {
940                 "-H" = {
941                         value = "$simap_address$"
942                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
943                 }
944                 "-p" = {
945                         value = "$simap_port$"
946                         description = "Port number (default: none)"
947                 }
948                 "-E" = {
949                         value = "$simap_escape$"
950                         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"
951                 }
952                 "-s" = {
953                         value = "$simap_send$"
954                         description = "String to send to the server"
955                 }
956                 "-e" = {
957                         value = "$simap_expect$"
958                         description = "String to expect in server response (may be repeated)"
959                 }
960                 "-A" = {
961                         set_if = "$simap_all$"
962                         description = "All expect strings need to occur in server response. Default is any."
963                 }
964                 "-q" = {
965                         value = "$simap_quit$"
966                         description = "String to send server to initiate a clean close of the connection"
967                 }
968                 "-r" = {
969                         value = "$simap_refuse$"
970                         description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
971                 }
972                 "-M" = {
973                         value = "$simap_mismatch$"
974                         description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
975                         }
976                 "-j" = {
977                         set_if = "$simap_jail$"
978                         description = "Hide output from TCP socket."
979                 }
980                 "-m" = {
981                         value = "$simap_maxbytes$"
982                         description = "Close connection once more than this number of bytes are received"
983                 }
984                 "-d" = {
985                         value = "$simap_delay$"
986                         description = "Seconds to wait between sending string and polling for response"
987                 }
988                 "-D" = {
989                         value = "$simap_certificate_age$"
990                         description = "Minimum number of days a certificate has to be valid"
991                 }
992                 "-S" = {
993                         set_if = "$simap_ssl$"
994                         description = "Use SSL for the connection."
995                 }
996                 "-w" = {
997                         value = "$simap_warning$"
998                         description = "Response time to result in warning status (seconds)"
999                 }
1000                 "-c" = {
1001                         value = "$simap_critical$"
1002                         description = "Response time to result in critical status (seconds)"
1003                 }
1004                 "-t" = {
1005                         value = "$simap_timeout$"
1006                         description = "Seconds before connection times out (default: 10)"
1007                 }
1008                 "-4" = {
1009                         set_if = "$simap_ipv4$"
1010                         description = "Use IPv4 connection"
1011                 }
1012                 "-6" = {
1013                         set_if = "$simap_ipv6$"
1014                         description = "Use IPv6 connection"
1015                 }
1016         }
1017
1018         vars.simap_address = "$check_address$"
1019         vars.check_ipv4 = "$simap_ipv4$"
1020         vars.check_ipv6 = "$simap_ipv6$"
1021 }
1022
1023 object CheckCommand "pop" {
1024         import "ipv4-or-ipv6"
1025
1026         command = [ PluginDir + "/check_pop" ]
1027
1028         arguments = {
1029                 "-H" = {
1030                         value = "$pop_address$"
1031                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1032                 }
1033                 "-p" = {
1034                         value = "$pop_port$"
1035                         description = "Port number (default: none)"
1036                 }
1037                 "-E" = {
1038                         value = "$pop_escape$"
1039                         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"
1040                 }
1041                 "-s" = {
1042                         value = "$pop_send$"
1043                         description = "String to send to the server"
1044                 }
1045                 "-e" = {
1046                         value = "$pop_expect$"
1047                         description = "String to expect in server response (may be repeated)"
1048                 }
1049                 "-A" = {
1050                         set_if = "$pop_all$"
1051                         description = "All expect strings need to occur in server response. Default is any."
1052                 }
1053                 "-q" = {
1054                         value = "$pop_quit$"
1055                         description = "String to send server to initiate a clean close of the connection"
1056                 }
1057                 "-r" = {
1058                         value = "$pop_refuse$"
1059                         description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1060                 }
1061                 "-M" = {
1062                         value = "$pop_mismatch$"
1063                         description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1064                 }
1065                 "-j" = {
1066                         set_if = "$pop_jail$"
1067                         description = "Hide output from TCP socket."
1068                 }
1069                 "-m" = {
1070                         value = "$pop_maxbytes$"
1071                         description = "Close connection once more than this number of bytes are received"
1072                 }
1073                 "-d" = {
1074                         value = "$pop_delay$"
1075                         description = "Seconds to wait between sending string and polling for response"
1076                 }
1077                 "-D" = {
1078                         value = "$pop_certificate_age$"
1079                         description = "Minimum number of days a certificate has to be valid"
1080                 }
1081                 "-S" = {
1082                         set_if = "$pop_ssl$"
1083                         description = "Use SSL for the connection."
1084                 }
1085                 "-w" = {
1086                         value = "$pop_warning$"
1087                         description = "Response time to result in warning status (seconds)"
1088                 }
1089                 "-c" = {
1090                         value = "$pop_critical$"
1091                         description = "Response time to result in critical status (seconds)"
1092                 }
1093                 "-t" = {
1094                         value = "$pop_timeout$"
1095                         description = "Seconds before connection times out (default: 10)"
1096                 }
1097                 "-4" = {
1098                         set_if = "$pop_ipv4$"
1099                         description = "Use IPv4 connection"
1100                 }
1101                 "-6" = {
1102                         set_if = "$pop_ipv6$"
1103                         description = "Use IPv6 connection"
1104                 }
1105         }
1106
1107         vars.pop_address = "$check_address$"
1108         vars.check_ipv4 = "$pop_ipv4$"
1109         vars.check_ipv6 = "$pop_ipv6$"
1110 }
1111
1112 object CheckCommand "spop" {
1113         import "ipv4-or-ipv6"
1114
1115         command = [ PluginDir + "/check_spop" ]
1116
1117         arguments = {
1118                 "-H" = {
1119                         value = "$spop_address$"
1120                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1121                 }
1122                 "-p" = {
1123                         value = "$spop_port$"
1124                         description = "Port number (default: none)"
1125                 }
1126                 "-E" = {
1127                         value = "$spop_escape$"
1128                         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"
1129                 }
1130                 "-s" = {
1131                         value = "$spop_send$"
1132                         description = "String to send to the server"
1133                 }
1134                 "-e" = {
1135                         value = "$spop_expect$"
1136                         description = "String to expect in server response (may be repeated)"
1137                 }
1138                 "-A" = {
1139                         set_if = "$spop_all$"
1140                         description = "All expect strings need to occur in server response. Default is any."
1141                 }
1142                 "-q" = {
1143                         value = "$spop_quit$"
1144                         description = "String to send server to initiate a clean close of the connection"
1145                 }
1146                 "-r" = {
1147                         value = "$spop_refuse$"
1148                         description = "Accept TCP refusals with states ok, warn, crit (default: crit)"
1149                 }
1150                 "-M" = {
1151                         value = "$spop_mismatch$"
1152                         description = "Accept expected string mismatches with states ok, warn, crit (default: warn)"
1153                 }
1154                 "-j" = {
1155                         set_if = "$spop_jail$"
1156                         description = "Hide output from TCP socket."
1157                 }
1158                 "-m" = {
1159                         value = "$spop_maxbytes$"
1160                         description = "Close connection once more than this number of bytes are received"
1161                 }
1162                 "-d" = {
1163                         value = "$spop_delay$"
1164                         description = "Seconds to wait between sending string and polling for response"
1165                 }
1166                 "-D" = {
1167                         value = "$spop_certificate_age$"
1168                         description = "Minimum number of days a certificate has to be valid"
1169                 }
1170                 "-S" = {
1171                         set_if = "$spop_ssl$"
1172                         description = "Use SSL for the connection."
1173                 }
1174                 "-w" = {
1175                         value = "$spop_warning$"
1176                         description = "Response time to result in warning status (seconds)"
1177                 }
1178                 "-c" = {
1179                         value = "$spop_critical$"
1180                         description = "Response time to result in critical status (seconds)"
1181                 }
1182                 "-t" = {
1183                         value = "$spop_timeout$"
1184                         description = "Seconds before connection times out (default: 10)"
1185                 }
1186                 "-4" = {
1187                         set_if = "$spop_ipv4$"
1188                         description = "Use IPv4 connection"
1189                 }
1190                 "-6" = {
1191                         set_if = "$spop_ipv6$"
1192                         description = "Use IPv6 connection"
1193                 }
1194         }
1195
1196         vars.spop_address = "$check_address$"
1197         vars.check_ipv4 = "$spop_ipv4$"
1198         vars.check_ipv6 = "$spop_ipv6$"
1199 }
1200
1201 object CheckCommand "ntp_time" {
1202         import "ipv4-or-ipv6"
1203
1204         command = [ PluginDir + "/check_ntp_time" ]
1205
1206         arguments = {
1207                 "-H" = {
1208                         value = "$ntp_address$"
1209                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1210                 }
1211                 "-p" = {
1212                         value = "$ntp_port$"
1213                         description = "Port number (default: 123)"
1214                 }
1215                 "-q" = {
1216                         set_if = "$ntp_quiet$"
1217                         description = "Returns UNKNOWN instead of CRITICAL if offset cannot be found"
1218                 }
1219                 "-w" = {
1220                         value = "$ntp_warning$"
1221                         description = "Offset to result in warning status (seconds)"
1222                 }
1223                 "-c" = {
1224                         value = "$ntp_critical$"
1225                         description = "Offset to result in critical status (seconds)"
1226                 }
1227                 "-o" = {
1228                         value = "$ntp_timeoffset$"
1229                         description = "Expected offset of the ntp server relative to local server (seconds)"
1230                 }
1231                 "-t" = {
1232                         value = "$ntp_timeout$"
1233                         description = "Seconds before connection times out (default: 10)"
1234                 }
1235                 "-4" = {
1236                         set_if = "$ntp_ipv4$"
1237                         description = "Use IPv4 connection"
1238                 }
1239                 "-6" = {
1240                         set_if = "$ntp_ipv6$"
1241                         description = "Use IPv6 connection"
1242                 }
1243         }
1244
1245         vars.ntp_address = "$check_address$"
1246         vars.check_ipv4 = "$ntp_ipv4$"
1247         vars.check_ipv6 = "$ntp_ipv6$"
1248 }
1249
1250 object CheckCommand "ntp_peer" {
1251         import "ipv4-or-ipv6"
1252
1253         command = [ PluginDir + "/check_ntp_peer" ]
1254
1255         arguments = {
1256                 "-H" = {
1257                         value = "$ntp_address$"
1258                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1259                 }
1260                 "-p" = {
1261                         value = "$ntp_port$"
1262                         description = "Port number (default: 123)"
1263                 }
1264                 "-q" = {
1265                         set_if = "$ntp_quiet$"
1266                         description = "Returns UNKNOWN instead of CRITICAL or WARNING if server isn't synchronized"
1267                 }
1268                 "-w" = {
1269                         value = "$ntp_warning$"
1270                         description = "Offset to result in warning status (seconds)"
1271                 }
1272                 "-c" = {
1273                         value = "$ntp_critical$"
1274                         description = "Offset to result in critical status (seconds)"
1275                 }
1276                 "-W" = {
1277                         value = "$ntp_wstratum$"
1278                         description = "Warning threshold for stratum of server's synchronization peer"
1279                 }
1280                 "-C" = {
1281                         value = "$ntp_cstratum$"
1282                         description = "Critical threshold for stratum of server's synchronization peer"
1283                 }
1284                 "-j" = {
1285                         value = "$ntp_wjitter$"
1286                         description = "Warning threshold for jitter"
1287                 }
1288                 "-k" = {
1289                         value = "$ntp_cjitter$"
1290                         description = "Critical threshold for jitter"
1291                 }
1292                 "-m" = {
1293                         value = "$ntp_wsource$"
1294                         description = "Warning threshold for number of usable time sources (truechimers)"
1295                 }
1296                 "-n" = {
1297                         value = "$ntp_csource$"
1298                         description = "Critical threshold for number of usable time sources (truechimers)"
1299                 }
1300                 "-t" = {
1301                         value = "$ntp_timeout$"
1302                         description = "Seconds before connection times out (default: 10)"
1303                 }
1304                 "-4" = {
1305                         set_if = "$ntp_ipv4$"
1306                         description = "Use IPv4 connection"
1307                 }
1308                 "-6" = {
1309                         set_if = "$ntp_ipv6$"
1310                         description = "Use IPv6 connection"
1311                 }
1312         }
1313
1314         vars.ntp_address = "$check_address$"
1315         vars.check_ipv4 = "$ntp_ipv4$"
1316         vars.check_ipv6 = "$ntp_ipv6$"
1317 }
1318
1319 object CheckCommand "ssh" {
1320         import "ipv4-or-ipv6"
1321
1322         command = [ PluginDir + "/check_ssh" ]
1323
1324         arguments = {
1325                 "-p" = {
1326                         value = "$ssh_port$"
1327                         description = "Port number (default: 22)"
1328                 }
1329                 "-t" = {
1330                         value = "$ssh_timeout$"
1331                         description = "Seconds before connection times out (default: 10)"
1332                 }
1333                 "host" = {
1334                         value = "$ssh_address$"
1335                         skip_key = true
1336                         order = 1
1337                 }
1338                 "-4" = {
1339                         set_if = "$ssh_ipv4$"
1340                         description = "Use IPv4 connection"
1341                 }
1342                 "-6" = {
1343                         set_if = "$ssh_ipv6$"
1344                         description = "Use IPv6 connection"
1345                 }
1346         }
1347
1348         vars.ssh_address = "$check_address$"
1349         vars.check_ipv4 = "$ssh_ipv4$"
1350         vars.check_ipv6 = "$ssh_ipv6$"
1351 }
1352
1353 object CheckCommand "disk" {
1354         command = [ PluginDir + "/check_disk" ]
1355
1356         arguments = {
1357                 "-w" = {
1358                         value = "$disk_wfree$"
1359                         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"
1360                         required = true
1361                         order = -3
1362                 }
1363                 "-c" = {
1364                         value = "$disk_cfree$"
1365                         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"
1366                         required = true
1367                         order = -3
1368                 }
1369                 "-W" = {
1370                         value = "$disk_inode_wfree$"
1371                         description = "Exit with WARNING status if less than PERCENT of inode space is free"
1372                         order = -3
1373                 }
1374                 "-K" = {
1375                         value = "$disk_inode_cfree$"
1376                         description = "Exit with CRITICAL status if less than PERCENT of inode space is free"
1377                         order = -3
1378                 }
1379                 "-p" = {
1380                         value = "$disk_partitions$"
1381                         description = "Path or partition (may be repeated)"
1382                         repeat_key = true
1383                         order = 1
1384                 }
1385                 "-p_old" = {
1386                         key = "-p"
1387                         value = "$disk_partition$"
1388                         order = 1
1389                 }
1390                 "-x" = {
1391                         value = "$disk_partitions_excluded$"
1392                         description = "Ignore device (only works if -p unspecified)"
1393                 }
1394                 "-x_old" = {
1395                         key = "-x"
1396                         value = "$disk_partition_excluded$"
1397                 }
1398                 "-C" = {
1399                         set_if = "$disk_clear$"
1400                         description = "Clear thresholds"
1401                 }
1402                 "-E" = {
1403                         set_if = "$disk_exact_match$"
1404                         description = "For paths or partitions specified with -p, only check for exact paths"
1405                 }
1406                 "-e" = {
1407                         set_if = "$disk_errors_only$"
1408                         description = "Display only devices/mountpoints with errors"
1409                 }
1410                 "-f" = {
1411                         set_if = "$disk_ignore_reserved$"
1412                         description = "Don't account root-reserved blocks into freespace in perfdata"
1413                 }
1414                 "-g" = {
1415                         value = "$disk_group$"
1416                         description = "Group paths. Thresholds apply to (free-)space of all partitions together"
1417                 }
1418                 "-k" = {
1419                         set_if = "$disk_kilobytes$"
1420                         description = "Same as --units kB"
1421                 }
1422                 "-l" = {
1423                         set_if = "$disk_local$"
1424                         description = " Only check local filesystems"
1425                 }
1426                 "-L" = {
1427                         set_if = "$disk_stat_remote_fs$"
1428                         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)"
1429                 }
1430                 "-M" = {
1431                         set_if = "$disk_mountpoint$"
1432                         description = "Display the mountpoint instead of the partition"
1433                 }
1434                 "-m" = {
1435                         set_if = "$disk_megabytes$"
1436                         description = "Same as --units MB"
1437                 }
1438                 "-A" = {
1439                         set_if = "$disk_all$"
1440                         description = "Explicitly select all paths. This is equivalent to -R .*"
1441                         order = 1
1442                 }
1443                 "-R" = {
1444                         value = "$disk_eregi_path$"
1445                         description = "Case insensitive regular expression for path/partition (may be repeated)"
1446                         repeat_key = true
1447                 }
1448                 "-r" = {
1449                         value = "$disk_ereg_path$"
1450                         description = "Regular expression for path or partition (may be repeated)"
1451                         repeat_key = true
1452                 }
1453                 "-I" = {
1454                         value = "$disk_ignore_eregi_path$"
1455                         description = "Regular expression to ignore selected path/partition (case insensitive) (may be repeated)"
1456                         repeat_key = true
1457                         order = 2
1458                 }
1459                 "-i" = {
1460                         value = "$disk_ignore_ereg_path$"
1461                         description = "Regular expression to ignore selected path or partition (may be repeated)"
1462                         repeat_key = true
1463                         order = 2
1464                 }
1465                 "-t" = {
1466                         value = "$disk_timeout$"
1467                         description = "Seconds before connection times out (default: 10)"
1468                 }
1469                 "-u" = {
1470                         value = "$disk_units$"
1471                         description = "Choose bytes, kB, MB, GB, TB (default: MB)"
1472                 }
1473                 "-X" = {
1474                         value = "$disk_exclude_type$"
1475                         description = "Ignore all filesystems of indicated type (may be repeated)"
1476                         repeat_key = true
1477                 }
1478         }
1479
1480         vars.disk_wfree = "20%"
1481         vars.disk_cfree = "10%"
1482         vars.disk_megabytes = true
1483         vars.disk_exclude_type = [
1484                 "none",
1485                 "tmpfs",
1486                 "sysfs",
1487                 "proc",
1488                 "configfs",
1489                 "devtmpfs",
1490                 "devfs",
1491                 "mtmfs",
1492                 "tracefs",
1493                 "cgroup",
1494                 "fuse.gvfsd-fuse",
1495                 "fuse.gvfs-fuse-daemon",
1496                 "fdescfs",
1497                 "overlay",
1498                 "nsfs",
1499                 "squashfs"
1500         ]
1501 }
1502
1503 object CheckCommand "disk_smb" {
1504         command = [ PluginDir + "/check_disk_smb" ]
1505
1506         arguments = {
1507                 "-H" = {
1508                         value = "$disk_smb_hostname$"
1509                         description = "NetBIOS name of the server."
1510                 }
1511                 "-s" = {
1512                         value = "$disk_smb_share$"
1513                         description = "Share name to be tested."
1514                 }
1515                 "-W" = {
1516                         value = "$disk_smb_workgroup$"
1517                         description = "Workgroup or Domain used (Defaults to 'WORKGROUP' if omitted)."
1518                 }
1519                 "-a" = {
1520                         value = "$disk_smb_address$"
1521                         description = "IP-address of HOST (only necessary if HOST is in another network)."
1522                 }
1523                 "-u" = {
1524                         value = "$disk_smb_username$"
1525                         description = "Username to log in to server. (Defaults to 'guest' if omitted)."
1526                 }
1527                 "-p" = {
1528                         value = "$disk_smb_password$"
1529                         description = "Password to log in to server. (Defaults to an empty password if omitted)."
1530                 }
1531                 "-w" = {
1532                         value = "$disk_smb_wused$"
1533                         description = "Percent of used space at which a warning will be generated (Default: 85%)."
1534                 }
1535                 "-c" = {
1536                         value = "$disk_smb_cused$"
1537                         description = "Percent of used space at which a critical will be generated (Defaults: 95%)"
1538                 }
1539                 "-P" = {
1540                         value = "$disk_smb_port$"
1541                         description = "Port to be used to connect to. Some Windows boxes use 139, others 445 (Defaults to smbclient default if omitted)."
1542                 }
1543         }
1544
1545         vars.disk_smb_wused = "85%"
1546         vars.disk_smb_cused = "95%"
1547 }
1548
1549 object CheckCommand "users" {
1550         command = [ PluginDir + "/check_users" ]
1551
1552         arguments = {
1553                 "-w" = {
1554                         value = "$users_wgreater$"
1555                         description = "Set WARNING status if more than INTEGER users are logged in"
1556                 }
1557                 "-c" = {
1558                         value = "$users_cgreater$"
1559                         description = "Set CRITICAL status if more than INTEGER users are logged in"
1560                 }
1561         }
1562
1563         vars.users_wgreater = 20
1564         vars.users_cgreater = 50
1565 }
1566
1567 object CheckCommand "procs" {
1568         command = [ PluginDir + "/check_procs" ]
1569
1570         arguments = {
1571                 "-w" = {
1572                         value = "$procs_warning$"
1573                         description = "Generate warning state if metric is outside this range"
1574                 }
1575                 "-c" = {
1576                         value = "$procs_critical$"
1577                         description = "Generate critical state if metric is outside this range"
1578                 }
1579                 "-m" = {
1580                         value = "$procs_metric$"
1581                         description = "Check thresholds against metric"
1582                 }
1583                 "-t" = {
1584                         value = "$procs_timeout$"
1585                         description = "Seconds before plugin times out"
1586                 }
1587                 "-T" = {
1588                         set_if = "$procs_traditional$"
1589                         description = "Filter own process the traditional way by PID instead of /proc/pid/exe"
1590                 }
1591                 "-s" = {
1592                         value = "$procs_state$"
1593                         description = "Only scan for processes that have one or more of the status flags you specify"
1594                 }
1595                 "-p" = {
1596                         value = "$procs_ppid$"
1597                         description = "Only scan for children of the parent process ID indicated"
1598                 }
1599                 "-z" = {
1600                         value = "$procs_vsz$"
1601                         description = "Only scan for processes with VSZ higher than indicated"
1602                 }
1603                 "-r" = {
1604                         value = "$procs_rss$"
1605                         description = "Only scan for processes with RSS higher than indicated"
1606                 }
1607                 "-P" = {
1608                         value = "$procs_pcpu$"
1609                         description = "Only scan for processes with PCPU higher than indicated"
1610                 }
1611                 "-u" = {
1612                         value = "$procs_user$"
1613                         description = "Only scan for processes with user name or ID indicated"
1614                 }
1615                 "-a" = {
1616                         value = "$procs_argument$"
1617                         description = "Only scan for processes with args that contain STRING"
1618                 }
1619                 "--ereg-argument-array" = {
1620                         value = "$procs_argument_regex$"
1621                         description = "Only scan for processes with args that contain the regex STRING"
1622                 }
1623                 "-C" = {
1624                         value = "$procs_command$"
1625                         description = "Only scan for exact matches of COMMAND (without path)"
1626                 }
1627                 "-k" = {
1628                         set_if = "$procs_nokthreads$"
1629                         description = "Only scan for non kernel threads"
1630                 }
1631         }
1632
1633         vars.procs_traditional = false
1634         vars.procs_nokthreads = false
1635         vars.procs_warning = 250
1636         vars.procs_critical = 400
1637 }
1638
1639 object CheckCommand "swap" {
1640         command = [ PluginDir + "/check_swap" ]
1641
1642         arguments = {
1643                 "-w" = {{
1644                         if (macro("$swap_integer$")) {
1645                                 return macro("$swap_wfree$")
1646                         } else {
1647                                 return macro("$swap_wfree$%")
1648                         }
1649                 }}
1650                 "-c" = {{
1651                         if (macro("$swap_integer$")) {
1652                                 return macro("$swap_cfree$")
1653                         } else {
1654                                 return macro("$swap_cfree$%")
1655                         }
1656                 }}
1657                 "-a" = {
1658                         set_if = "$swap_allswaps$"
1659                         description = "Conduct comparisons for all swap partitions, one by one"
1660                 }
1661                 "-n" = {
1662                         value = "$swap_noswap$"
1663                         description = "Resulting state when there is no swap regardless of thresholds. Possible values are \"ok\", \"warning\", \"critical\", \"unknown\". Defaults to \"critical\""
1664                 }
1665         }
1666
1667         vars.swap_wfree = 50
1668         vars.swap_cfree = 25
1669         vars.swap_integer = false
1670         vars.swap_allswaps = false
1671 }
1672
1673 object CheckCommand "load" {
1674         command = [ PluginDir + "/check_load" ]
1675
1676         arguments = {
1677                 "-w" = {
1678                         value = "$load_wload1$,$load_wload5$,$load_wload15$"
1679                         description = "Exit with WARNING status if load average exceeds WLOADn"
1680                 }
1681                 "-c" = {
1682                         value = "$load_cload1$,$load_cload5$,$load_cload15$"
1683                         description = "Exit with CRITICAL status if load average exceed CLOADn; the load average format is the same used by 'uptime' and 'w'"
1684                 }
1685                 "-r" = {
1686                         set_if = "$load_percpu$"
1687                         description = "Divide the load averages by the number of CPUs (when possible)"
1688                 }
1689         }
1690
1691         vars.load_wload1 = 5.0
1692         vars.load_wload5 = 4.0
1693         vars.load_wload15 = 3.0
1694
1695         vars.load_cload1 = 10.0
1696         vars.load_cload5 = 6.0
1697         vars.load_cload15 = 4.0
1698
1699         vars.load_percpu = false
1700 }
1701
1702 object CheckCommand "snmp" {
1703         command = [ PluginDir + "/check_snmp" ]
1704
1705         arguments = {
1706                 "-H" = {
1707                         value = "$snmp_address$"
1708                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1709                 }
1710                 "-o" = {
1711                         value = "$snmp_oid$"
1712                         description = "Object identifier(s) or SNMP variables whose value you wish to query"
1713                 }
1714                 "-C" = {
1715                         value = "$snmp_community$"
1716                         description = "Optional community string for SNMP communication (default is 'public')"
1717                 }
1718                 "-c" = {
1719                         value = "$snmp_crit$"
1720                         description = "Critical threshold range(s)"
1721                 }
1722                 "-w" = {
1723                         value = "$snmp_warn$"
1724                         description = "Warning threshold range(s)"
1725                 }
1726                 "-s" = {
1727                         value = "$snmp_string$"
1728                         description = "Return OK state (for that OID) if STRING is an exact match"
1729                 }
1730                 "-r" = {
1731                         value = "$snmp_ereg$"
1732                         description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1733                 }
1734                 "-R" = {
1735                         value = "$snmp_eregi$"
1736                         description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1737                 }
1738                 "-l" = {
1739                         value = "$snmp_label$"
1740                         description = "Prefix label for output from plugin"
1741                 }
1742                 "-u" = {
1743                         value = "$snmp_units$"
1744                         description = "Units label(s) for output data (e.g., 'sec.')"
1745                 }
1746                 "-t" = {
1747                         value = "$snmp_timeout$"
1748                         description = "Seconds before connection times out (default: 10)"
1749                 }
1750                 "-p" = {
1751                         value = "$snmp_port$"
1752                         description = "Port number (default: 161)"
1753                 }
1754                 "-e" = {
1755                         value = "$snmp_retries$"
1756                         description = "Number of retries to be used in the requests"
1757                 }
1758                 "--invert-search" = {
1759                         set_if = "$snmp_invert_search$"
1760                         description = "Invert search result and return CRITICAL if found"
1761                 }
1762                 "-P" = {
1763                         value = "$snmp_version$"
1764                         description = "SNMP protocol version"
1765                 }
1766                 "-m" = {
1767                         value = "$snmp_miblist$"
1768                         description = "List of MIBS to be loaded (default = none if using numeric OIDs or 'ALL' for symbolic OIDs.)"
1769                 }
1770                 "--rate-multiplier" = {
1771                         value = "$snmp_rate_multiplier$"
1772                         description = "Converts rate per second. For example, set to 60 to convert to per minute"
1773                 }
1774                 "--rate" = {
1775                         set_if = "$snmp_rate$"
1776                         description = "Enable rate calculation"
1777                 }
1778                 "-n" = {
1779                         set_if = "$snmp_getnext$"
1780                         description = "Use SNMP GETNEXT instead of SNMP GET"
1781                 }
1782                 "--offset" = {
1783                         value = "$snmp_offset$"
1784                         description = "Add/substract the specified OFFSET to numeric sensor data"
1785                 }
1786                 "-D" = {
1787                         value = "$snmp_output_delimiter$"
1788                         description = "Separates output on multiple OID requests"
1789                 }
1790                 "-O" = {
1791                         set_if = "$snmp_perf_oids$"
1792                         description = "Label performance data with OIDs instead of --label's"
1793                 }
1794         }
1795
1796         vars.snmp_address = {{
1797                 var addr_v4 = macro("$address$")
1798                 var addr_v6 = macro("$address6$")
1799
1800                 if (addr_v4) {
1801                         return addr_v4
1802                 } else {
1803                         return "udp6:[" + addr_v6 + "]"
1804                 }
1805         }}
1806
1807         vars.snmp_community = "public"
1808         vars.snmp_invert_search = false
1809         vars.snmp_timeout = "10"
1810 }
1811
1812 object CheckCommand "snmpv3" {
1813         import "ipv4-or-ipv6"
1814
1815         command = [ PluginDir + "/check_snmp" ]
1816
1817         arguments = {
1818                 "-H" = {
1819                         value = "$snmpv3_address$"
1820                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
1821                 }
1822                 "-p" = {
1823                         value = "$snmpv3_port$"
1824                         description = "Port number"
1825                 }
1826                 "-n" = {
1827                         set_if = "$snmpv3_getnext$"
1828                         description = "Use SNMP GETNEXT instead of SNMP GET"
1829                 }
1830                 "-P" = {
1831                         value = 3
1832                         description = "SNMP protocol version"
1833                 }
1834                 "-L" = {
1835                         value = "$snmpv3_seclevel$"
1836                         description = "SNMPv3 securityLevel"
1837                 }
1838                 "-a" = {
1839                         value = "$snmpv3_auth_alg$"
1840                         description = "SNMPv3 auth proto"
1841                 }
1842                 "-U" = {
1843                         value = "$snmpv3_user$"
1844                         description = "SNMPv3 username"
1845                 }
1846                 "-A" = {
1847                         value = "$snmpv3_auth_key$"
1848                         description = "SNMPv3 authentication password"
1849                 }
1850                 "-X" = {
1851                         value = "$snmpv3_priv_key$"
1852                         description = "SNMPv3 privacy password"
1853                 }
1854                 "-o" = {
1855                         value = "$snmpv3_oid$"
1856                         description = "Object identifier(s) or SNMP variables whose value you wish to query"
1857                 }
1858                 "-x" = {
1859                         value = "$snmpv3_priv_alg$"
1860                         description = "SNMPv3 priv proto (default DES)"
1861                 }
1862                 "-w" = {
1863                         value = "$snmpv3_warn$"
1864                         description = "Warning threshold range(s)"
1865                 }
1866                 "-c" = {
1867                         value = "$snmpv3_crit$"
1868                         description = "Critical threshold range(s)"
1869                 }
1870                 "-s" = {
1871                         value = "$snmpv3_string$"
1872                         description = "Return OK state (for that OID) if STRING is an exact match"
1873                 }
1874                 "-r" = {
1875                         value = "$snmpv3_ereg$"
1876                         description = "Return OK state (for that OID) if extended regular expression REGEX matches"
1877                 }
1878                 "-R" = {
1879                         value = "$snmpv3_eregi$"
1880                         description = "Return OK state (for that OID) if case-insensitive extended REGEX matches"
1881                 }
1882                 "--invert-search" = {
1883                         set_if = "$snmpv3_invert_search$"
1884                         description = "Invert search result and return CRITICAL if found"
1885                 }
1886                 "-l" = {
1887                         value = "$snmpv3_label$"
1888                         description = "Prefix label for output from plugin"
1889                 }
1890                 "-m" = {
1891                         value = "$snmpv3_miblist$"
1892                         description = "List of SNMP MIBs for translating OIDs between numeric and textual representation"
1893                 }
1894                 "-u" = {
1895                         value = "$snmpv3_units$"
1896                         description = "Units label(s) for output data (e.g., 'sec.')"
1897                 }
1898                 "--rate-multiplier" = {
1899                         value = "$snmpv3_rate_multiplier$"
1900                         description = "Converts rate per second. For example, set to 60 to convert to per minute"
1901                 }
1902                 "--rate" = {
1903                         set_if = "$snmpv3_rate$"
1904                         description = "Enable rate calculation"
1905                 }
1906                 "-t" = {
1907                         value = "$snmpv3_timeout$"
1908                         description = "Seconds before connection times out (default: 10)"
1909                 }
1910         }
1911
1912         vars.snmpv3_address = "$check_address$"
1913         vars.snmpv3_auth_alg = "SHA"
1914         vars.snmpv3_priv_alg = "AES"
1915         vars.snmpv3_seclevel = "authPriv"
1916         vars.snmpv3_timeout = "10"
1917 }
1918
1919 object CheckCommand "snmp-uptime" {
1920         import "snmp"
1921
1922         vars.snmp_oid = "1.3.6.1.2.1.1.3.0"
1923 }
1924
1925 object CheckCommand "apt" {
1926         command = [ PluginDir + "/check_apt" ]
1927
1928         arguments = {
1929                 "--extra-opts" = {
1930                         value = "$apt_extra_opts$"
1931                         description = "Read options from an ini file."
1932                 }
1933                 "--upgrade" = {
1934                         value = "$apt_upgrade$"
1935                         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."
1936                 }
1937                 "--dist-upgrade" = {
1938                         value = "$apt_dist_upgrade$"
1939                         description = "Perform a dist-upgrade instead of normal upgrade. Like with -U OPTS can be provided to override the default options."
1940                 }
1941                 "--include" = {
1942                         value = "$apt_include$"
1943                         description = "Include only packages matching REGEXP. Can be specified multiple times the values will be combined together."
1944                 }
1945                 "--exclude" = {
1946                         value = "$apt_exclude$"
1947                         description = "Exclude packages matching REGEXP from the list of packages that would otherwise be included. Can be specified multiple times."
1948                 }
1949                 "--critical" = {
1950                         value = "$apt_critical$"
1951                         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."
1952                 }
1953                 "--timeout" = {
1954                         value = "$apt_timeout$"
1955                         description = "Seconds before plugin times out (default: 10)."
1956                 }
1957                 "--only-critical" = {
1958                         set_if = "$apt_only_critical$"
1959                         description = "Only warn about critical upgrades."
1960                 }
1961                 "--list" = {
1962                         set_if = "$apt_list$"
1963                         description = "List packages available for upgrade."
1964                 }
1965         }
1966
1967         timeout = 5m
1968 }
1969
1970 object CheckCommand "dhcp" {
1971         command = [ PluginDir + "/check_dhcp" ]
1972
1973         arguments = {
1974                 "-s" = {
1975                         value = "$dhcp_serverip$"
1976                         description = "IP address of DHCP server that we must hear from"
1977                 }
1978                 "-r" = {
1979                         value = "$dhcp_requestedip$"
1980                         description = "IP address that should be offered by at least one DHCP server"
1981                 }
1982                 "-t" = {
1983                         value = "$dhcp_timeout$"
1984                         description = "Seconds to wait for DHCPOFFER before timeout occurs"
1985                 }
1986                 "-i" = {
1987                         value = "$dhcp_interface$"
1988                         description = "Interface to to use for listening (i.e. eth0)"
1989                 }
1990                 "-m" = {
1991                         value = "$dhcp_mac$"
1992                         description = "MAC address to use in the DHCP request"
1993                 }
1994                 "-u" = {
1995                         set_if = "$dhcp_unicast$"
1996                         description = "Unicast testing: mimic a DHCP relay"
1997                 }
1998         }
1999
2000         vars.dhcp_unicast = false
2001 }
2002
2003 object CheckCommand "dns" {
2004         import "ipv4-or-ipv6"
2005
2006         command = [ PluginDir + "/check_dns" ]
2007
2008         arguments = {
2009                 "-H" = {
2010                         value = "$dns_lookup$"
2011                         description = "The name or address you want to query."
2012                 }
2013                 "-s" = {
2014                         value = "$dns_server$"
2015                         description = "Optional DNS server you want to use for the lookup."
2016                 }
2017                 "-q" = {
2018                         value = "$dns_query_type$"
2019                         description = "Optional DNS record query type where TYPE =(A, AAAA, SRV, TXT, MX, ANY). The default query type is 'A' (IPv4 host entry)"
2020                 }
2021                 "-a" = {
2022                         value = "$dns_expected_answers$"
2023                         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)."
2024                 }
2025                 "-A" = {
2026                         set_if = "$dns_authoritative$"
2027                         description = "Optionally expect the DNS server to be authoritative for the lookup"
2028                 }
2029                 "-n" = {
2030                         set_if = "$dns_accept_cname$"
2031                         description = "Optionally accept cname responses as a valid result to a query. The default is to ignore cname responses as part of the result"
2032                 }
2033                 "-w" = {
2034                         value = "$dns_wtime$"
2035                         description = "Return warning if elapsed time exceeds value."
2036                 }
2037                 "-c" = {
2038                         value = "$dns_ctime$"
2039                         description = "Return critical if elapsed time exceeds value."
2040                 }
2041                 "-t" = {
2042                         value = "$dns_timeout$"
2043                         description = "Seconds before connection times out. Defaults to 10."
2044                 }
2045         }
2046
2047         vars.dns_lookup = "$host.name$"
2048         vars.dns_timeout = 10
2049 }
2050
2051 object CheckCommand "dig" {
2052         import "ipv4-or-ipv6"
2053
2054         command = [ PluginDir + "/check_dig" ]
2055
2056         arguments = {
2057                 "-H" = {
2058                         value = "$dig_server$"
2059                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2060                 }
2061                 "-p" = {
2062                         value = "$dig_port$"
2063                         description = "Port number (default: 53)"
2064                 }
2065                 "-l" = {
2066                         value = "$dig_lookup$"
2067                         required = true
2068                         description = "Machine name to lookup"
2069                 }
2070                 "-T" = {
2071                         value = "$dig_record_type$"
2072                         description = "Record type to lookup (default: A)"
2073                 }
2074                 "-a" = {
2075                         value = "$dig_expected_address$"
2076                         description = "An address expected to be in the answer section"
2077                 }
2078                 "-A" = {
2079                         value = "$dig_arguments$"
2080                         description = "Pass STRING as argument(s) to dig"
2081                 }
2082                 "-w" = {
2083                         value = "$dig_warning$"
2084                         description = "Response time to result in warning status (seconds)"
2085                 }
2086                 "-c" = {
2087                         value = "$dig_critical$"
2088                         description = "Response time to result in critical status (seconds)"
2089                 }
2090                 "-t" = {
2091                         value = "$dig_timeout$"
2092                         description = "Seconds before connection times out (default: 10)"
2093                 }
2094                 "-4" = {
2095                         set_if = "$dig_ipv4$"
2096                         description = "Force dig to only use IPv4 query transport"
2097                 }
2098                 "-6" = {
2099                         set_if = "$dig_ipv6$"
2100                         description = "Force dig to only use IPv6 query transport"
2101                 }
2102         }
2103
2104         vars.dig_server = "$check_address$"
2105         vars.check_ipv4 = "$dig_ipv4$"
2106         vars.check_ipv6 = "$dig_ipv6$"
2107 }
2108
2109 object CheckCommand "nscp" {
2110         import "ipv4-or-ipv6"
2111
2112         command = [ PluginDir + "/check_nt" ]
2113
2114         arguments = {
2115                 "-H" = {
2116                         value = "$nscp_address$"
2117                         description = "Name of the host to check"
2118                 }
2119                 "-p" = {
2120                         value = "$nscp_port$"
2121                         description = "Optional port number (default: 1248)"
2122                 }
2123                 "-s" = {
2124                         value = "$nscp_password$"
2125                         description = "Password needed for the request"
2126                 }
2127                 "-v" = {
2128                         value = "$nscp_variable$"
2129                         required = true
2130                         description = "Variable to check"
2131                 }
2132                 "-l" = {
2133                         value = "$nscp_params$"
2134                         repeat_key = false
2135                 }
2136                 "-w" = {
2137                         value = "$nscp_warn$"
2138                         description = "Threshold which will result in a warning status"
2139                 }
2140                 "-c" = {
2141                         value = "$nscp_crit$"
2142                         description = "Threshold which will result in a critical status"
2143                 }
2144                 "-t" = {
2145                         value = "$nscp_timeout$"
2146                         description = "Seconds before connection attempt times out"
2147                 }
2148                 "-d" = {
2149                         value = "SHOWALL"
2150                         set_if = "$nscp_showall$"
2151                         description = "Use with SERVICESTATE to see working services or PROCSTATE for running processes"
2152                 }
2153         }
2154
2155         vars.nscp_address = "$check_address$"
2156         vars.nscp_port = 12489
2157         vars.nscp_showall = false
2158 }
2159
2160 object CheckCommand "by_ssh" {
2161         import "ipv4-or-ipv6"
2162
2163         command = [ PluginDir + "/check_by_ssh" ]
2164
2165         arguments = {
2166                 "-H" = {
2167                         value = "$by_ssh_address$"
2168                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2169                 }
2170                 "-p" = {
2171                         value = "$by_ssh_port$"
2172                         description = "Port number (default: none)"
2173                 }
2174                 "-C" = {{
2175                         var command = macro("$by_ssh_command$")
2176                         var arguments = macro("$by_ssh_arguments$")
2177
2178                         if (typeof(command) == String && !arguments) {
2179                                 return command
2180                         }
2181
2182                         var escaped_args = []
2183                         for (arg in resolve_arguments(command, arguments)) {
2184                                 escaped_args.add(escape_shell_arg(arg))
2185                         }
2186                         return escaped_args.join(" ")
2187                 }}
2188                 "-l" = {
2189                         value = "$by_ssh_logname$"
2190                         description = "SSH user name on remote host [optional]"
2191                 }
2192                 "-i" = {
2193                         value = "$by_ssh_identity$"
2194                         description = "identity of an authorized key [optional]"
2195                 }
2196                 "-q" = {
2197                         set_if = "$by_ssh_quiet$"
2198                         description = "Tell ssh to suppress warning and diagnostic messages [optional]"
2199                 }
2200                 "-w" = {
2201                         value = "$by_ssh_warn$"
2202                         description = "Response time to result in warning status (seconds)"
2203                 }
2204                 "-c" = {
2205                         value = "$by_ssh_crit$"
2206                         description = "Response time to result in critical status (seconds)"
2207                 }
2208                 "-t" = {
2209                         value = "$by_ssh_timeout$"
2210                         description = "Seconds before connection times out (default: 10)"
2211                 }
2212                 "-o" = {
2213                         value = "$by_ssh_options$"
2214                         description = "Provide ssh options (may be repeated)"
2215                 }
2216                 "-4" = {
2217                         set_if = "$by_ssh_ipv4$"
2218                         description = "Use IPv4 only"
2219                 }
2220                 "-6" = {
2221                         set_if = "$by_ssh_ipv6$"
2222                         description = "Use IPv6 only"
2223                 }
2224                 "-E" = {
2225                         value = "$by_ssh_skip_stderr$"
2226                         description = "Ignore all or (if specified) first n lines on STDERR [optional]"
2227                 }
2228         }
2229
2230         vars.by_ssh_address = "$check_address$"
2231         vars.by_ssh_quiet = false
2232         vars.check_ipv4 = "$by_ssh_ipv4$"
2233         vars.check_ipv6 = "$by_ssh_ipv6$"
2234 }
2235
2236 object CheckCommand "ups" {
2237         import "ipv4-or-ipv6"
2238
2239         command = [ PluginDir + "/check_ups" ]
2240
2241         arguments = {
2242                 "-H" = {
2243                         value = "$ups_address$"
2244                         description = "Address of the upsd server"
2245                         required = true
2246                 }
2247                 "-u" = {
2248                         value = "$ups_name$"
2249                         description = "Name of the UPS to monitor"
2250                         required = true
2251                 }
2252                 "-p" = {
2253                         value = "$ups_port$"
2254                         description = "Port number (default: 3493)"
2255                 }
2256                 "-v" = {
2257                         value = "$ups_variable$"
2258                         description = "Variable to monitor, valid strings are LINE, TEMP, BATTPCT or LOADPCT"
2259                 }
2260                 "-w" = {
2261                         value = "$ups_warning$"
2262                         description = "Warning threshold for the selected variable"
2263                 }
2264                 "-c" = {
2265                         value = "$ups_critical$"
2266                         description = "Critical threshold for the selected variable"
2267                 }
2268                 "-T" = {
2269                         set_if = "$ups_celsius$"
2270                         description = "Display temperature in degrees Celsius instead of Fahrenheit"
2271                 }
2272                 "-t" = {
2273                         value = "$ups_timeout$"
2274                         description = "Seconds before the connection times out (default: 10)"
2275                 }
2276         }
2277
2278         vars.ups_address = "$check_address$"
2279         vars.ups_name = "ups"
2280 }
2281
2282 object CheckCommand "nrpe" {
2283         import "ipv4-or-ipv6"
2284
2285         command = [ PluginDir + "/check_nrpe" ]
2286
2287         arguments = {
2288                 "-H" = {
2289                         value = "$nrpe_address$"
2290                         description = "The address of the host running the NRPE daemon"
2291                 }
2292                 "-p" = {
2293                         value = "$nrpe_port$"
2294                 }
2295                 "-c" = {
2296                         value = "$nrpe_command$"
2297                 }
2298                 "-n" = {
2299                         set_if = "$nrpe_no_ssl$"
2300                         description = "Do not use SSL"
2301                 }
2302                 "-u" = {
2303                         set_if = "$nrpe_timeout_unknown$"
2304                         description = "Make socket timeouts return an UNKNOWN state instead of CRITICAL"
2305                 }
2306                 "-t" = {
2307                         value = "$nrpe_timeout$"
2308                         description = "<interval>:<state> = <Number of seconds before connection times out>:<Check state to exit with in the event of a timeout (default=CRITICAL)>"
2309                 }
2310                 "-a" = {
2311                         value = "$nrpe_arguments$"
2312                         repeat_key = false
2313                         order = 1
2314                 }
2315                 "-4" = {
2316                         set_if = "$nrpe_ipv4$"
2317                         description = "Use IPv4 connection"
2318                 }
2319                 "-6" = {
2320                         set_if = "$nrpe_ipv6$"
2321                         description = "Use IPv6 connection"
2322                 }
2323                 "-2" = {
2324                         set_if = "$nrpe_version_2$"
2325                         description = "Use this if you want to connect to NRPE v2"
2326                 }
2327         }
2328
2329         vars.nrpe_address = "$check_address$"
2330         vars.nrpe_no_ssl = false
2331         vars.nrpe_timeout_unknown = false
2332         vars.check_ipv4 = "$nrpe_ipv4$"
2333         vars.check_ipv6 = "$nrpe_ipv6$"
2334         vars.nrpe_version_2 = false
2335         timeout = 5m
2336 }
2337
2338 object CheckCommand "hpjd" {
2339         import "ipv4-or-ipv6"
2340
2341         command = [ PluginDir + "/check_hpjd" ]
2342
2343         arguments = {
2344                 "-H" = {
2345                         value = "$hpjd_address$"
2346                         description = "Host address"
2347                 }
2348                 "-C" = {
2349                         value = "$hpjd_community$"
2350                         description = "The SNMP community name (default=public)"
2351                 }
2352                 "-p" = {
2353                         value = "$hpjd_port$"
2354                         description = "Specify the port to check (default=161)"
2355                 }
2356         }
2357
2358         vars.hpjd_address = "$check_address$"
2359 }
2360
2361 object CheckCommand "icmp" {
2362         command = [ PluginDir + "/check_icmp" ]
2363
2364         arguments = {
2365                 "-H" = {
2366                         value = "$icmp_address$"
2367                         repeat_key = false
2368                         order = 1
2369                         description = "Host address"
2370                 }
2371                 "-w" = {
2372                         value = "$icmp_wrta$,$icmp_wpl$%"
2373                         description = "warning threshold (currently 200.000ms,40%)"
2374                 }
2375                 "-c" = {
2376                         value = "$icmp_crta$,$icmp_cpl$%"
2377                         description = "critical threshold (currently 500.000ms,80%)"
2378                 }
2379                 "-s" = {
2380                         value = "$icmp_source$"
2381                         description = "specify a source IP address or device name"
2382                 }
2383                 "-n" = {
2384                         value = "$icmp_packets$"
2385                         description = "number of packets to send (currently 5)"
2386                 }
2387                 "-i" = {
2388                         value = "$icmp_packet_interval$"
2389                         description = "max packet interval (currently 80.000ms)"
2390                 }
2391                 "-I" = {
2392                         value = "$icmp_target_interval$"
2393                         description = "max target interval (currently 0.000ms)"
2394                 }
2395                 "-m" = {
2396                         value = "$icmp_hosts_alive$"
2397                         description = "number of alive hosts required for success"
2398                 }
2399                 "-b" = {
2400                         value = "$icmp_data_bytes$"
2401                         description = "Number of icmp data bytes to send. Packet size will be data bytes + icmp header (currently 68 + 8)"
2402                 }
2403                 "-t" = {
2404                         value = "$icmp_timeout$"
2405                         description = "timeout value (seconds, currently  10)"
2406                 }
2407                 "-l" = {
2408                         value = "$icmp_ttl$"
2409                         description = "TTL on outgoing packets (currently 0)"
2410                 }
2411         }
2412
2413         vars.icmp_address = "$address$"
2414         vars.icmp_wrta = 100
2415         vars.icmp_wpl = 5
2416         vars.icmp_crta = 200
2417         vars.icmp_cpl = 15
2418 }
2419
2420 object CheckCommand "ldap" {
2421         import "ipv4-or-ipv6"
2422
2423         command = [ PluginDir + "/check_ldap" ]
2424
2425         arguments = {
2426                 "-H" = {
2427                         value = "$ldap_address$"
2428                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2429                 }
2430                 "-p" = {
2431                         value = "$ldap_port$"
2432                         description = "Port number (default: 389)"
2433                 }
2434                 "-a" = {
2435                         value = "$ldap_attr$"
2436                         description = "ldap attribute to search (default: \"(objectclass=*)\""
2437                 }
2438                 "-b" = {
2439                         value = "$ldap_base$"
2440                         required = true
2441                         description = "ldap base (eg. ou=my unit, o=my org, c=at"
2442                 }
2443                 "-D" = {
2444                         value = "$ldap_bind$"
2445                         description = "ldap bind DN (if required)"
2446                 }
2447                 "-P" = {
2448                         value = "$ldap_pass$"
2449                         description = "ldap password (if required)"
2450                 }
2451                 "-T" = {
2452                         set_if = "$ldap_starttls$"
2453                         description = "use starttls mechanism introduced in protocol version 3"
2454                 }
2455                 "-S" = {
2456                         set_if = "$ldap_ssl$"
2457                         description = "use ldaps (ldap v2 ssl method). this also sets the default port to 636"
2458                 }
2459                 "-2" = {
2460                         set_if = "$ldap_v2$"
2461                         description = "Use LDAP protocol version 2"
2462                 }
2463                 "-3" = {
2464                         set_if = "$ldap_v3$"
2465                         description = "Use LDAP protocol version 3"
2466                 }
2467                 "-w" = {
2468                         value = "$ldap_warning$"
2469                         description = "Response time to result in warning status (seconds)"
2470                 }
2471                 "-c" = {
2472                         value = "$ldap_critical$"
2473                         description = "Response time to result in critical status (seconds)"
2474                 }
2475                 "-W" = {
2476                         value = "$ldap_warning_entries$"
2477                         description = "Number of found entries to result in warning status (optional)"
2478                 }
2479                 "-C" = {
2480                         value = "$ldap_critical_entries$"
2481                         description = "Number of found entries to result in critical status (optional)"
2482                 }
2483                 "-t" = {
2484                         value = "$ldap_timeout$"
2485                         description = "Seconds before connection times out (default: 10)"
2486                 }
2487                 "-v" = {
2488                         set_if = "$ldap_verbose$"
2489                         description = "Show details for command-line debugging"
2490                 }
2491         }
2492
2493         vars.ldap_address = "$check_address$"
2494         vars.ldap_v2 = true
2495         vars.ldap_v3 = false
2496         vars.ldap_timeout = 10s
2497         vars.ldap_verbose = false
2498 }
2499
2500 object CheckCommand "clamd" {
2501         command = [ PluginDir + "/check_clamd" ]
2502
2503         arguments = {
2504                 "-H" = {
2505                         value = "$clamd_address$"
2506                         description = "The host's address or unix socket (must be an absolute path)."
2507                         required = true
2508                 }
2509                 "-p" = {
2510                         value = "$clamd_port$"
2511                         description = "Port number (default: none)."
2512                 }
2513                 "-e" = {
2514                         value = "$clamd_expect$"
2515                         description = "String to expect in server response (may be repeated)."
2516                         repeat_key = true
2517                 }
2518                 "-A" = {
2519                         set_if = "$clamd_all$"
2520                         description = "All expect strings need to occur in server response. Default is any."
2521                 }
2522                 "-E_send" = {
2523                         key = "-E"
2524                         order = 1
2525                         set_if = "$clamd_escape_send$"
2526                         description = "Enable usage of \n, \r, \t or \\ in send string. Default is nothing."
2527                 }
2528                 "-s" = {
2529                         order = 2
2530                         value = "$clamd_send$"
2531                         description = "String to send to the server."
2532                 }
2533                 "-E_quit" = {
2534                         key = "-E"
2535                         order = 3
2536                         set_if = "$clamd_escape_quit$"
2537                         description = "Can use \n, \r, \t or \\ in quit string. Default is \r\n added to end of quit."
2538                 }
2539                 "-q" = {
2540                         order = 4
2541                         value = "$clamd_quit$"
2542                         description = "String to send server to initiate a clean close of the connection."
2543                 }
2544                 "-r" = {
2545                         value = "$clamd_refuse$"
2546                         description = "Accept TCP refusals with states ok, warn, crit. Defaults to crit."
2547                 }
2548                 "-M" = {
2549                         value = "$clamd_mismatch$"
2550                         description = "Accept expected string mismatches with states ok, warn, crit. Defaults to warn."
2551                 }
2552                 "-j" = {
2553                         set_if = "$clamd_jail$"
2554                         description = "Hide output from TCP socket."
2555                 }
2556                 "-m" = {
2557                         value = "$clamd_maxbytes$"
2558                         description = "Close connection once more than this number of bytes are received."
2559                 }
2560                 "-d" = {
2561                         value = "$clamd_delay$"
2562                         description = "Seconds to wait between sending string and polling for response."
2563                 }
2564                 "-D" = {
2565                         value = "$clamd_certificate$"
2566                         description = "Minimum number of days a certificate has to be valid. 1st value is number of days for warning, 2nd is critical (if not specified: 0) - seperated by comma."
2567                 }
2568                 "-S" = {
2569                         set_if = "$clamd_ssl$"
2570                         description = "Use SSL for the connection."
2571                 }
2572                 "-w" = {
2573                         value = "$clamd_wtime$"
2574                         description = "Response time to result in warning status (seconds)."
2575                 }
2576                 "-c" = {
2577                         value = "$clamd_ctime$"
2578                         description = "Response time to result in critical status (seconds)."
2579                 }
2580                 "-t" = {
2581                         value = "$clamd_timeout$"
2582                         description = "Seconds before connection times out. Defaults to 10."
2583                 }
2584                 "-4" = {
2585                         set_if = "$clamd_ipv4$"
2586                         description = "Use IPv4 only"
2587                 }
2588                 "-6" = {
2589                         set_if = "$clamd_ipv6$"
2590                         description = "Use IPv6 only"
2591                 }
2592         }
2593
2594         vars.clamd_ssl = false
2595         vars.clamd_refuse = "crit"
2596         vars.clamd_mismatch = "warn"
2597         vars.clamd_timeout = 10
2598         vars.check_ipv4 = "$clamd_ipv4$"
2599         vars.check_ipv6 = "$clamd_ipv6$"
2600 }
2601
2602 object CheckCommand "mailq" {
2603         command = [ PluginDir + "/check_mailq" ]
2604
2605         arguments = {
2606                 "-w" = {
2607                         value = "$mailq_warning$"
2608                         description = "Min. number of messages in queue to generate warning"
2609                         required = true
2610                 }
2611                 "-c" = {
2612                         value = "$mailq_critical$"
2613                         description = "Min. number of messages in queue to generate critical alert ( w < c )"
2614                         required = true
2615                 }
2616                 "-W" = {
2617                         value = "$mailq_domain_warning$"
2618                         description = "Min. number of messages for same domain in queue to generate warning"
2619                 }
2620                 "-C" = {
2621                         value = "$mailq_domain_critical$"
2622                         description = "Min. number of messages for same domain in queue to generate critical alert ( W < C )"
2623                 }
2624                 "-t" = {
2625                         value = "$mailq_timeout$"
2626                         description = "Plugin timeout in seconds (default = 15)"
2627                 }
2628                 "-M" = {
2629                         value = "$mailq_servertype$"
2630                         description = "[ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)"
2631                 }
2632                 "-s" = {
2633                         set_if = "$mailq_sudo$"
2634                         description = "Use sudo for mailq command"
2635                 }
2636         }
2637 }
2638
2639 object CheckCommand "pgsql" {
2640         import "ipv4-or-ipv6"
2641
2642         command = [ PluginDir + "/check_pgsql" ]
2643
2644         arguments = {
2645                 "-H" = {
2646                         value = "$pgsql_hostname$"
2647                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2648                 }
2649                 "-P" = {
2650                         value = "$pgsql_port$"
2651                         description = "Port number (default: 5432)"
2652                 }
2653                 "-d" = {
2654                         value = "$pgsql_database$"
2655                         description = "Database to check (default: template1)"
2656                 }
2657                 "-l" = {
2658                         value = "$pgsql_username$"
2659                         description = "Login name of user"
2660                 }
2661                 "-p" = {
2662                         value = "$pgsql_password$"
2663                         description = "Password (BIG SECURITY ISSUE)"
2664                 }
2665                 "-o" = {
2666                         value = "$pgsql_options$"
2667                         description = "Connection parameters (keyword = value), see below"
2668                         }
2669                 "-w" = {
2670                         value = "$pgsql_warning$"
2671                         description = "Response time to result in warning status (seconds)"
2672                 }
2673                 "-c" = {
2674                         value = "$pgsql_critical$"
2675                         description = "Response time to result in critical status (seconds)"
2676                 }
2677                 "-t" = {
2678                         value = "$pgsql_timeout$"
2679                         description = "Seconds before connection times out (default: 10)"
2680                 }
2681                 "-q" = {
2682                         value = "$pgsql_query$"
2683                         description = "SQL query to run. Only first column in first row will be read"
2684                 }
2685                 "-W" = {
2686                         value = "$pgsql_query_warning$"
2687                         description = "SQL query value to result in warning status (double)"
2688                 }
2689                 "-C" = {
2690                         value = "$pgsql_query_critical$"
2691                         description = "SQL query value to result in critical status (double)"
2692                 }
2693         }
2694
2695         vars.pgsql_hostname = "$check_address$"
2696 }
2697
2698 object CheckCommand "mysql" {
2699         import "ipv4-or-ipv6"
2700
2701         command = [ PluginDir + "/check_mysql" ]
2702
2703         arguments = {
2704                 "-H" = {
2705                         value = "$mysql_hostname$"
2706                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2707                 }
2708                 "-P" = {
2709                         value = "$mysql_port$"
2710                         description = "Port number (default: 3306)"
2711                 }
2712                 "-n" = {
2713                         set_if = "$mysql_ignore_auth$"
2714                         description = "Ignore authentication failure and check for mysql connectivity only"
2715                 }
2716                 "-s" = {
2717                         value = "$mysql_socket$"
2718                         description = "Use the specified socket"
2719                 }
2720                 "-d" = {
2721                         value = "$mysql_database$"
2722                         description = "Check database with indicated name"
2723                 }
2724                 "-f" = {
2725                         value = "$mysql_file$"
2726                         description = "Read from the specified client options file"
2727                 }
2728                 "-g" = {
2729                         value = "$mysql_group$"
2730                         description = "Use a client options group"
2731                 }
2732                 "-u" = {
2733                         value = "$mysql_username$"
2734                         description = "Connect using the indicated username"
2735                 }
2736                 "-p" = {
2737                         value = "$mysql_password$"
2738                         description = "Use the indicated password to authenticate the connection"
2739                 }
2740                 "-S" = {
2741                         set_if = "$mysql_check_slave$"
2742                         description = "Check if the slave thread is running properly"
2743                 }
2744                 "-w" = {
2745                         value = "$mysql_warning$"
2746                         description = "Exit with WARNING status if slave server is more than INTEGER seconds behind master"
2747                 }
2748                 "-c" = {
2749                         value = "$mysql_critical$"
2750                         description = "Exit with CRITICAL status if slave server is more then INTEGER seconds behind master"
2751                 }
2752                 "-l" = {
2753                         set_if = "$mysql_ssl$"
2754                         description = "Use ssl encryptation"
2755                 }
2756                 "-C" = {
2757                         value = "$mysql_cacert$"
2758                         description = "Path to CA signing the cert"
2759                 }
2760                 "-a" = {
2761                         value = "$mysql_cert$"
2762                         description = "Path to SSL certificate"
2763                 }
2764                 "-k" = {
2765                         value = "$mysql_key$"
2766                         description = "Path to private SSL key"
2767                 }
2768                 "-D" = {
2769                         value = "$mysql_cadir$"
2770                         description = "Path to CA directory"
2771                 }
2772                 "-L" = {
2773                         value = "$mysql_ciphers$"
2774                         description = "List of valid SSL ciphers"
2775                 }
2776         }
2777
2778         vars.mysql_hostname = "$check_address$"
2779 }
2780
2781 object CheckCommand "negate" {
2782         command = [ PluginDir + "/negate" ]
2783
2784         arguments = {
2785                 "-t" = {
2786                         value = "$negate_timeout$"
2787                         description = "Seconds before plugin times out (default: 11)"
2788                 }
2789                 "-T" = {
2790                         value = "$negate_timeout_result$"
2791                         description = "Custom result on Negate timeouts"
2792                 }
2793                 "-o" = {
2794                         value = "$negate_ok$"
2795                 }
2796                 "-w" = {
2797                         value = "$negate_warning$"
2798                 }
2799                 "-c" = {
2800                         value = "$negate_critical$"
2801                 }
2802                 "-u" = {
2803                         value = "$negate_unknown$"
2804                 }
2805                 "-s" = {
2806                         set_if = "$negate_substitute$"
2807                         description = "Substitute output text as well. Will only substitute text in CAPITALS"
2808                 }
2809                 "--wrapped-plugin" = {
2810                         value = {{
2811                                 var command = macro("$negate_command$")
2812                                 var arguments = macro("$negate_arguments$")
2813
2814                                 if (typeof(command) == String && !arguments) {
2815                                         return command
2816                                 }
2817
2818                                 var escaped_args = []
2819                                 for (arg in resolve_arguments(command, arguments)) {
2820                                         escaped_args.add(arg)
2821                                 }
2822                                 return escaped_args.join(" ")
2823                         }}
2824                         skip_key = true
2825                         order = 1
2826                 }
2827         }
2828
2829         vars.negate_timeout_result = "UNKNOWN"
2830 }
2831
2832 object CheckCommand "file_age" {
2833         command = [ PluginDir + "/check_file_age" ]
2834
2835         arguments = {
2836                 "-w" = {
2837                         value = "$file_age_warning_time$"
2838                         description = "File must be no more than this many seconds old (default: 240s)"
2839                 }
2840                 "-c" = {
2841                         value = "$file_age_critical_time$"
2842                         description = "File must be no more than this many seconds old (default: 600s)"
2843                 }
2844                 "-W" = {
2845                         value = "$file_age_warning_size$"
2846                         description = "File must be at least this many bytes long"
2847                 }
2848                 "-C" = {
2849                         value = "$file_age_critical_size$"
2850                         description = "File must be at least this many bytes long (default: 0B)"
2851                 }
2852                 "-i" = {
2853                         set_if = "$file_age_ignoremissing$"
2854                         description = "return OK if the file does not exist"
2855                 }
2856                 "-f" = {
2857                         value = "$file_age_file$"
2858                         description = "File to monitor"
2859                 }
2860         }
2861
2862         vars.file_age_ignoremissing = false
2863 }
2864
2865 object CheckCommand "smart" {
2866         command = [ PluginDir + "/check_ide_smart" ]
2867
2868         arguments = {
2869                 "-d" = {
2870                         value = "$smart_device$"
2871                         description = "Name of a local hard drive to monitor"
2872                         required = true
2873                 }
2874         }
2875 }
2876
2877 object CheckCommand "breeze" {
2878         import "ipv4-or-ipv6"
2879
2880         command = [ PluginDir + "/check_breeze" ]
2881
2882         arguments = {
2883                 "-H" = {
2884                         value = "$breeze_hostname$"
2885                         description = "Name or IP address of host to check"
2886                         required = true
2887                 }
2888                 "-C" = {
2889                         value = "$breeze_community$"
2890                         description = "SNMPv1 community (default public)"
2891                 }
2892                 "-w" = {
2893                         value = "$breeze_warning$"
2894                         description = "Percentage strength below which a WARNING status will result"
2895                         required = true
2896                 }
2897                 "-c" = {
2898                         value = "$breeze_critical$"
2899                         description = "Percentage strength below which a CRITICAL status will result"
2900                         required = true
2901                 }
2902         }
2903
2904         vars.breeze_hostname = "$check_address$"
2905         vars.breeze_warning = "50"
2906         vars.breeze_critical = "20"
2907 }
2908
2909 object CheckCommand "flexlm" {
2910         command = [ PluginDir + "/check_flexlm" ]
2911
2912         arguments = {
2913                 "-F" = {
2914                         value = "$flexlm_licensefile$"
2915                         description = "Name of license file (usually license.dat)"
2916                         required = true
2917                 }
2918                 "-t" = {
2919                         value = "$flexlm_timeout$"
2920                         description = "Plugin time out in seconds (default = 15)"
2921                 }
2922         }
2923 }
2924
2925 object CheckCommand "game" {
2926         import "ipv4-or-ipv6"
2927
2928         command = [ PluginDir + "/check_game" ]
2929
2930         arguments = {
2931                 "-P" = {
2932                         value = "$game_port$"
2933                         description = "Port to connect to"
2934                 }
2935                 "-t" = {
2936                         value = "$game_timeout$"
2937                         description = "Seconds before connection times out (default: 10)"
2938                 }
2939                 "-g" = {
2940                         value = "$game_gamefield$"
2941                         description = "Field number in raw qstat output that contains game name"
2942                 }
2943                 "-m" = {
2944                         value = "$game_mapfield$"
2945                         description = "Field number in raw qstat output that contains map name"
2946                 }
2947                 "-p" = {
2948                         value = "$game_pingfield$"
2949                         description = "Field number in raw qstat output that contains ping time"
2950                 }
2951                 "-G" = {
2952                         value = "$game_gametime$"
2953                         description = "Field number in raw qstat output that contains game time"
2954                 }
2955                 "-H" = {
2956                         value = "$game_hostname$"
2957                         description = "Name of the host running the game"
2958                 }
2959                 "game" = {
2960                         value = "$game_game$"
2961                         description = "Name of the game"
2962                         order = 1
2963                         skip_key = true
2964                 }
2965                 "ipaddress" = {
2966                         value = "$game_ipaddress$"
2967                         description = "Ipaddress of the game server to query"
2968                         order = 2
2969                         skip_key = true
2970                 }
2971         }
2972 }
2973
2974 object CheckCommand "mysql_query" {
2975         import "ipv4-or-ipv6"
2976
2977         command = [ PluginDir + "/check_mysql_query" ]
2978
2979         arguments = {
2980                 "-H" = {
2981                         value = "$mysql_query_hostname$"
2982                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
2983                 }
2984                 "-P" = {
2985                         value = "$mysql_query_port$"
2986                         description = "Port number (default: 3306)"
2987                 }
2988                 "-u" = {
2989                         value = "$mysql_query_username$"
2990                         description = "Username to login with"
2991                 }
2992                 "-p" = {
2993                         value = "$mysql_query_password$"
2994                         description = "Password to login with"
2995                 }
2996                 "-d" = {
2997                         value = "$mysql_query_database$"
2998                         description = "Database to check"
2999                 }
3000                 "-f" = {
3001                         value = "$mysql_query_file$"
3002                         description = "Read from the specified client options file"
3003                 }
3004                 "-g" = {
3005                         value = "$mysql_query_group$"
3006                         description = "Use a client options group"
3007                 }
3008                 "-q" = {
3009                         value = "$mysql_query_execute$"
3010                         description = "SQL query to run. Only first column in first row will be read"
3011                 }
3012                 "-w" = {
3013                         value = "$mysql_query_warning$"
3014                         description = "Warning range (format: start:end). Alert if outside this range"
3015                 }
3016                 "-c" = {
3017                         value = "$mysql_query_critical$"
3018                         description = "Critical range"
3019                 }
3020         }
3021
3022         vars.mysql_query_hostname = "$check_address$"
3023 }
3024
3025 object CheckCommand "radius" {
3026         import "ipv4-or-ipv6"
3027
3028         command = [
3029                 PluginDir + "/check_radius",
3030         ]
3031
3032         arguments = {
3033                 "-H" = {
3034                         value = "$radius_address$",
3035                         description = "Host name, IP Address, or unix socket (must be an absolute path)"
3036                 }
3037                 "-F" = {
3038                         value = "$radius_config_file$",
3039                         description = "Configuration file"
3040                 }
3041                 "-u" = {
3042                         value = "$radius_username$",
3043                         description = "The user to authenticate"
3044                 }
3045                 "-p" = {
3046                         value = "$radius_password$",
3047                         description = "Password for authentication"
3048                 }
3049                 "-P" = {
3050                         value = "$radius_port$",
3051                         description = "Port number (default: 1645)"
3052                 },
3053                 "-n" = {
3054                         value = "$radius_nas_id$",
3055                         description = "NAS identifier"
3056                 }
3057                 "-N" = {
3058                         value = "$radius_nas_address$",
3059                         description = "NAS IP Address"
3060                 },
3061                 "-e" = {
3062                         value = "$radius_expect$",
3063                         description = "Response string to expect from the server"
3064                 },
3065                 "-r" = {
3066                         value = "$radius_retries$",
3067                         description = "Number of times to retry a failed connection"
3068                 },
3069                 "-t" = {
3070                         value = "$radius_timeout$",
3071                         description = "Seconds before connection times out (default: 10) Optional :<timeout state> can be a state integer (0,1,2,3) or a state STRING"
3072                 },
3073         }
3074
3075         vars.radius_address = "$check_address$"
3076 }
3077
3078 object CheckCommand "nscp_api" {
3079         import "ipv4-or-ipv6"
3080
3081         command = [ PluginDir + "/check_nscp_api" ]
3082
3083         arguments = {
3084                 "-H" = {
3085                         value = "$nscp_api_host$"
3086                         description = "NSCP API host address"
3087                         required = true
3088                 }
3089                 "-P" = {
3090                         value = "$nscp_api_port$"
3091                         description = "NSCP API host port. Defaults to 8443."
3092                 }
3093                 "--password" = {
3094                         value = "$nscp_api_password$"
3095                         description = "NSCP API password"
3096                 }
3097                 "-q" = {
3098                         value = "$nscp_api_query$"
3099                         description = "NSCPI API Query endpoint to use"
3100                 }
3101                 "-a" = {
3102                         value = "$nscp_api_arguments$"
3103                         description = "NSCP API Query arguments"
3104                         repeat_key = true
3105                 }
3106         }
3107
3108         vars.nscp_api_host = "$check_address$"
3109 }
3110
3111 object CheckCommand "rpc" {
3112         import "ipv4-or-ipv6"
3113
3114         command = [ PluginDir + "/check_rpc" ]
3115
3116         arguments = {
3117                 "-H" = {
3118                         value = "$rpc_address$"
3119                         description = "RPC host address"
3120                         required = true
3121                 }
3122                 "-C" = {
3123                         value = "$rpc_command$"
3124                         description = "Programm name (or number)"
3125                         required = true
3126                 }
3127                 "-p" = {
3128                         value = "$rpc_port$"
3129                         description = "RPC port"
3130                 }
3131                 "-c" = {
3132                         value = "$rpc_version$"
3133                         description = "The version to check"
3134                 }
3135                 "-u" = {
3136                         set_if = "$rpc_udp$"
3137                         description = "Test UDP"
3138                 }
3139                 "-t" = {
3140                         set_if = "$rpc_tcp$"
3141                         description     = "Test TCP"
3142                 }
3143                 "-v" = {
3144                         set_if = "$rpc_verbose$"
3145                         description = "Show verbose details"
3146                 }
3147         }
3148
3149         vars.rpc_address = "$check_address$"
3150 }