1 /******************************************************************************
3 * Copyright (C) 2012-2016 Icinga Development Team (https://www.icinga.org/) *
5 * This program is free software; you can redistribute it and/or *
6 * modify it under the terms of the GNU General Public License *
7 * as published by the Free Software Foundation; either version 2 *
8 * of the License, or (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the Free Software Foundation *
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ******************************************************************************/
20 object CheckCommand "webinject" {
21 import "plugin-check-command"
23 command = [ PluginContribDir + "/check_webinject" ]
27 value = "$webinject_config_file$"
28 description = "There is a configuration file named 'config.xml' that is used to store configuration settings for your project. You can use this to specify which test case files to run and to set some constants and settings to be used by WebInject."
32 value = "$webinject_output$"
33 description = "This option is followed by a directory name or a prefix to prepended to the output files. This is used to specify the location for writing output files (http.log, results.html, and results.xml). If a directory name is supplied (use either an absolute or relative path and make sure to add the trailing slash), all output files are written to this directory. If the trailing slash is ommitted, it is assumed to a prefix and this will be prepended to the output files. You may also use a combination of a directory and prefix."
37 set_if = "$webinject_no_output$"
38 description = "Suppresses all output to STDOUT except the results summary."
42 value = "$webinject_timeout$"
43 description = "The value [given in seconds] will be compared to the global time elapsed to run all the tests. If the tests have all been successful, but have taken more time than the 'globaltimeout' value, a warning message is sent back to Icinga."
47 value = "$webinject_report_type$"
48 description = "This setting is used to enable output formatting that is compatible for use with specific external programs. The available values you can set this to are: nagios, mrtg, external and standard"
52 value = "$webinject_key_value$"
53 description = "key=value"
57 value = "$webinject_testcase_file$"
58 description = "When you launch WebInject in console mode, you can optionally supply an argument for a testcase file to run. It will look for this file in the directory that webinject.pl resides in. If no filename is passed from the command line, it will look in config.xml for testcasefile declarations. If no files are specified, it will look for a default file named 'testcases.xml' in the current [webinject] directory. If none of these are found, the engine will stop and give you an error."
65 object CheckCommand "jmx4perl" {
66 import "plugin-check-command"
68 command = [ PluginContribDir + "/check_jmx4perl" ]
72 value = "$jmx4perl_url$"
73 description = "URL to agent web application (e.g. http://server:8080/jolokia/)"
76 value = "$jmx4perl_product$"
77 description = "Name of app server product (e.g. jboss)"
80 value = "$jmx4perl_alias$"
81 description = "Alias name for attribute (e.g. MEMORY_HEAP_USED)"
84 value = "$jmx4perl_mbean$"
85 description = "MBean name (e.g. java.lang:type=Memory)"
88 value = "$jmx4perl_attribute$"
89 description = "Attribute name (e.g. HeapMemoryUsage)"
92 value = "$jmx4perl_operation$"
93 description = "Operation to execute"
96 value = "$jmx4perl_value$"
97 description = "Shortcut for specifying mbean/attribute/path. Slashes within names must be escaped with backslash"
100 value = "$jmx4perl_delta$"
101 description = "Switches on incremental mode. Optional argument are seconds used for normalizing."
104 value = "$jmx4perl_path$"
105 description = "Inner path for extracting a single value from a complex attribute or return value (e.g. used)"
108 value = "$jmx4perl_target$"
109 description = "JSR-160 Service URL specifing the target server"
112 value = "$jmx4perl_target_user$"
113 description = "Username to use for JSR-160 connection"
115 "--target-password" = {
116 value = "$jmx4perl_target_password$"
117 description = "Password to use for JSR-160 connection"
120 value = "$jmx4perl_proxy$"
121 description = "Proxy to use"
124 value = "$jmx4perl_user$"
125 description = "User for HTTP authentication"
128 value = "$jmx4perl_password$"
129 description = "Password for HTTP authentication"
132 value = "$jmx4perl_name$"
133 description = "Name to use for output. Optional, by default a standard value based on the MBean and attribute will be used"
136 value = "$jmx4perl_method$"
137 description = "HTTP method to use. Either get or post"
140 value = "$jmx4perl_base$"
141 description = "Base name, which when given, interprets critical and warning values as relative in the range 0 .. 100%. Must be given in the form mbean/attribute/path"
144 value = "$jmx4perl_base_mbean$"
145 description = "Base MBean name, interprets critical and warning values as relative in the range 0 .. 100%. Requires a base-attribute, too"
147 "--base-attribute" = {
148 value = "$jmx4perl_base_attribute$"
149 description = "Base attribute for a relative check. Used together with base-mbean"
152 value = "$jmx4perl_base_path$"
153 description = "Base path for relative checks, where this path is used on the base attribute's value"
156 value = "$jmx4perl_unit$"
157 description = "Unit of measurement of the data retreived. Recognized values are [B|KB|MN|GB|TB] for memory values and [us|ms|s|m|h|d] for time values"
160 value = "$jmx4perl_null$"
161 description = "Value which should be used in case of a null return value of an operation or attribute. Is null by default"
164 set_if = "$jmx4perl_string$"
165 description = "Force string comparison for critical and warning checks"
168 set_if = "$jmx4perl_numeric$"
169 description = "Force numeric comparison for critical and warning checks"
172 value = "$jmx4perl_critical$"
173 description = "Critical threshold for value"
176 value = "$jmx4perl_warning$"
177 description = "Warning threshold for value"
180 value = "$jmx4perl_label$"
181 description = "Label to be used for printing out the result of the check. Placeholders can be used."
184 value = "$jmx4perl_perfdata$"
185 description = "Whether performance data should be omitted, which are included by default."
187 "--unknown-is-critical" = {
188 set_if = "$jmx4perl_unknown_is_critical$"
189 description = "Map UNKNOWN errors to errors with a CRITICAL status"
192 value = "$jmx4perl_timeout$"
193 description = "Seconds before plugin times out (default: 15)"
196 value = "$jmx4perl_config$"
197 description = "Path to configuration file."
200 value = "$jmx4perl_server$"
201 description = "Symbolic name of server url to use, which needs to be configured in the configuration file."
204 value = "$jmx4perl_check$"
205 description = "Name of a check configuration as defined in the configuration file, use array if you need arguments."
211 vars.jmx4perl_url = "http://$address$:8080/jolokia"
212 vars.jmx4perl_string = false
213 vars.jmx4perl_numeric = false
214 vars.jmx4perl_unknown_is_critical = false
217 object CheckCommand "squid" {
218 import "plugin-check-command"
219 import "ipv4-or-ipv6"
221 command = [ PluginContribDir + "/check_squid" ]
225 value = "$squid_hostname$"
226 description = "Name of the proxy to check (default: localhost)"
229 value = "$squid_data$"
230 description = "Optional data to fetch (default: Connections) available data : Connections Cache Resources Memory FileDescriptors"
233 value = "$squid_port$"
234 description = "Optional port number (default: 3128)"
237 value = "$squid_user$"
238 description = "WWW user"
241 value = "$squid_password$"
242 description = "WWW password"
245 value = "$squid_warning$"
246 description = "Warning threshold. See http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT for the threshold format."
249 value = "$squid_critical$"
250 description = "Critical threshold. See http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT for the threshold format."
253 value = "$squid_client$"
254 description = "Path of squidclient (default: /usr/bin/squidclient)"
257 value = "$squid_timeout$"
258 description = "Seconds before plugin times out (default: 15)"
262 vars.squid_hostname = "$check_address$"
263 vars.squid_client = "/usr/bin/squidclient"
266 object CheckCommand "nginx_status" {
267 import "plugin-check-command"
268 import "ipv4-or-ipv6"
270 command = [ PluginContribDir + "/check_nginx_status.pl" ]
274 value = "$nginx_status_host_address$"
275 description = "name or IP address of host to check"
278 value = "$nginx_status_port$"
279 description = "the http port"
282 value = "$nginx_status_url$"
283 description = "Specific URL to use, instead of the default 'http://<nginx_status_hostname>/nginx_status'"
286 value = "$nginx_status_servername$"
287 description = "ServerName, use it if you specified an IP in -H to match the good Virtualhost in your target"
290 set_if = "$nginx_status_ssl$"
291 description = "Wether we should use HTTPS instead of HTTP"
293 "--disable-sslverifyhostname" = {
294 set_if = "$nginx_status_disable_sslverify$"
295 description = "Disable SSL hostname verification"
298 value = "$nginx_status_user$"
299 description = "Username for basic auth"
302 value = "$nginx_status_pass$"
303 description = "Password for basic auth"
306 value = "$nginx_status_realm$"
307 description = "Realm for basic auth"
310 value = "$nginx_status_maxreach$"
311 description = "Number of max processes reached (since last check) that should trigger an alert"
314 value = "$nginx_status_timeout$"
315 description = "timeout in seconds"
318 value = "$nginx_status_warn$"
319 description = "number of active connections, ReqPerSec or ConnPerSec that will cause a WARNING"
322 value = "$nginx_status_critical$"
323 description = "number of active connections, ReqPerSec or ConnPerSec that will cause a CRITICAL"
327 vars.nginx_status_host_address = "$check_address$"
328 vars.nginx_status_ssl = false
329 vars.nginx_status_disable_sslverify = false
330 vars.nginx_status_warn = "10000,100,200"
331 vars.nginx_status_critical = "20000,200,300"
332 vars.nginx_status_timeout = 15
335 object CheckCommand "apache-status" {
336 import "plugin-check-command"
337 import "ipv4-or-ipv6"
339 command = [ PluginContribDir + "/check_apache_status.pl" ]
343 value = "$apache_status_address$"
344 description = "name or IP address of host to check"
347 value = "$apache_status_port$"
348 description = "the http port"
351 set_if = "$apache_status_ssl$"
352 description = "Wether we should use HTTPS instead of HTTP"
355 value = "$apache_status_uri$"
356 description = "Specific URL to use, instead of the default 'http://<apache_status_address>/server-status'"
359 value = "$apache_status_warning$"
360 description = "number of open slots, busy workers and idle workers that will cause a WARNING"
363 value = "$apache_status_critical$"
364 description = "number of open slots, busy workers and idle workers that will cause a CRITICAL"
367 value = "$apache_status_timeout$"
368 description = "timeout in seconds"
372 vars.apache_status_address = "$check_address$"
373 vars.apache_status_ssl = false