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