/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */

object CheckCommand "logstash" {
	import "ipv4-or-ipv6"

	command = [ PluginContribDir + "/check_logstash" ]

	arguments = {
		"-H" = {
			value = "$logstash_hostname$"
			description = "Hostname where Logstash is running"
		}
		"-p" = {
			value = "$logstash_port$"
			description = "Port where Logstash is listening for API requests"
		}
		"--file-descriptor-threshold-warn" = {
			value = "$logstash_filedesc_warn$"
			description = "Warning threshold of file descriptor usage in percent"
		}
		"--file-descriptor-threshold-crit" = {
			value = "$logstash_filedesc_crit$"
			description = "Critical threshold of file descriptor usage in percent"
		}
		"--heap-usage-threshold-warn" = {
			value = "$logstash_heap_warn$"
			description = "Warning threshold of heap usage in percent"
		}
		"--heap-usage-threshold-crit" = {
			value = "$logstash_heap_crit$"
			description = "Critical threshold of heap usage in percent"
		}
		"--inflight-events-warn" = {
			value = "$logstash_inflight_warn$"
			description = "Warning threshold of inflight events"
		}
		"--inflight-events-crit" = {
			value = "$logstash_inflight_crit$"
			description = "Critical threshold of inflight events"
		}
		"--cpu-usage-threshold-warn" = {
			value = "$logstash_cpu_warn$"
			description = "Warning threshold for cpu usage in percent"
		}
		"--cpu-usage-threshold-crit" = {
			value = "$logstash_cpu_crit$"
			description = "Critical threshold for cpu usage in percent"
		}
	}

	vars.logstash_hostname = "$check_address$"
	vars.logstash_port = 9600
	vars.logstash_filedesc_warn = 85
	vars.logstash_filedesc_crit = 95
	vars.logstash_heap_warn = 70
	vars.logstash_heap_crit = 80
}

object CheckCommand "logfiles" {
	command = [ PluginContribDir + "/check_logfiles" ]

	arguments = {
		"--tag" = {
			value = "$logfiles_tag$"
			description = "A short unique descriptor for this search. It will appear in the output of the plugin and is used to separare the different services."
		}
		"--logfile" = {
			value = "$logfiles_logfile$"
			description = "This is the name of the log file you want to scan."
		}
		"--rotation" = {
			value = "$logfiles_rotation$"
			description = "This is the method how log files are rotated. One of the predefined methods or a regular expression, which helps identify the rotated archives. If this key is missing, check_logfiles assumes that the log file will be simply overwritten instead of rotated."
		}
		"--criticalpattern" = {
			value = "$logfiles_critical_pattern$"
			description = "A regular expression which will trigger a critical error."
		}
		"--warningpattern" = {
			value = "$logfiles_warning_pattern$"
			description = "A regular expression which will trigger a warning error."
		}
		"--criticalexception" = {
			value = "$logfiles_critical_exception$"
			description = "A regular expression, the exceptions which are not counted as critical errors."
		}
		"--warningexception" = {
			value = "$logfiles_warning_exception$"
			description = "A regular expression, the exceptions which are not counted as warning errors."
		}
		"--okpattern" = {
			value = "$logfiles_ok_pattern$"
			description = "A regular expression which resets the error counters."
		}
		"--noprotocol" = {
			set_if = "$logfiles_no_protocol$"
			description = "Normally all the matched lines are written into a protocol file with this file’s name appearing in the plugin’s output. This option switches this off."
		}
		"--syslogserver" = {
			set_if = "$logfiles_syslog_server$"
			description = "With this option you limit the pattern matching to lines originating from the host check_logfiles is running on."
		}
		"--syslogclient" = {
			value = "$logfiles_syslog_client$"
			description = "With this option you limit the pattern matching to lines originating from the host named in this option."
		}
		"--sticky" = {
			value = "$logfiles_sticky$"
			description = "Errors are propagated through successive runs."
		}
		"--unstick" = {
			set_if = "$logfiles_unstick$"
			description = "Resets sticky errors."
		}
		"--config" = {
			value = "$logfiles_config$"
			description = "The name of a configuration file."
		}
		"--configdir" = {
			value = "$logfiles_configdir$"
			description = "The name of a configuration directory. Configfiles ending in .cfg or .conf are (recursively) imported."
		}
		"--searches" = {
			value = "$logfiles_searches$"
			description = "A list of tags of those searches which are to be run. Using this parameter, not all searches listed in the config file are run, but only those selected."
		}
		"--selectedsearches" = {
			value = "$logfiles_selectedsearches$"
			description = "A list of tags of those searches which are to be run. Using this parameter, not all searches listed in the config file are run, but only those selected."
		}
		"--report" = {
			value = "$logfiles_report$"
			description = "This option turns on multiline output (Default: off). The setting html generates a table which display the last hits in the service details view. Possible values are: short, long, html or off"
		}
		"--maxlength" = {
			value = "$logfiles_max_length$"
			description = "With this parameter long lines are truncated (Default: off). Some programs (e.g. TrueScan) generate entries in the eventlog of such a length, that the output of the plugin becomes longer than 1024 characters. NSClient++ discards these."
		}
		"--winwarncrit" = {
			set_if = "$logfiles_winwarncrit$"
			description = "With this parameter messages in the eventlog are classified by the type WARNING/ERROR (Default: off). Replaces or complements warning/criticalpattern."
		}
		"--rununique" = {
			set_if = "$logfiles_run_unique$"
			description = "This parameter prevents check_logfiles from starting when there’s already another instance using the same config file. (exits with UNKNOWN)"
		}
		"--timeout" = {
			value = "$logfiles_timeout$"
			description = "This parameter causes an abort of a running search after a defined number of seconds. It is an aborted in a controlled manner, so that the lines which have been read so far, are used for the computation of the final result."
		}
		"--warning" = {
			value = "$logfiles_warning$"
			description = "Complex handler-scripts can be provided with a warning-parameter this way. Inside the scripts the value is accessible as the macro CL_WARNING."
		}
		"--critical" = {
			value = "$logfiles_critical$"
			description = "Complex handler-scripts can be provided with a critical-parameter this way. Inside the scripts the value is accessible as the macro CL_CRITICAL."
		}
	}
}
