Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions doc/10-icinga-template-library.md
Original file line number Diff line number Diff line change
Expand Up @@ -2761,19 +2761,20 @@ mongodb_disableretrywrites | **Optional.** If set to true, will disable Re

#### elasticsearch <a id="plugin-contrib-command-elasticsearch"></a>

The [check_elasticsearch](https://github.com/anchor/nagios-plugin-elasticsearch) plugin
The [check_elasticsearch](https://github.com/NETWAYS/check_elasticsearch) plugin
uses the HTTP API to monitor an [Elasticsearch](https://www.elastic.co/products/elasticsearch) node.

Custom variables passed as [command parameters](03-monitoring-basics.md#command-passing-parameters):

Name | Description
-----------------------------|-------------------------------------------------------------------------------------------------------
elasticsearch_host | **Optional.** Hostname or network address to probe. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise.
elasticsearch_failuredomain | **Optional.** A comma-separated list of ElasticSearch attributes that make up your cluster's failure domain.
elasticsearch_masternodes | **Optional.** Issue a warning if the number of master-eligible nodes in the cluster drops below this number. By default, do not monitor the number of nodes in the cluster.
elasticsearch_port | **Optional.** TCP port to probe. The ElasticSearch API should be listening here. Defaults to 9200.
elasticsearch_prefix | **Optional.** Optional prefix (e.g. 'es') for the ElasticSearch API. Defaults to ''.
elasticsearch_yellowcritical | **Optional.** Instead of issuing a 'warning' for a yellow cluster state, issue a 'critical' alert. Defaults to false.
elasticsearch_username | **Optional.** Username if authentication is required
elasticsearch_password | **Optional.** Password if authentication is required
elasticsearch_timeout | **Optional.** Allows to set timeout for execution of this plugin.
elasticsearch_tls | **Optional.** Use a HTTPS connection (default false)
elasticsearch_insecure | **Optional.** Skip the verification of the server's TLS certificate (default false)

#### redis <a id="plugin-contrib-command-redis"></a>

Expand Down
94 changes: 66 additions & 28 deletions itl/plugins-contrib.d/databases.conf
Original file line number Diff line number Diff line change
Expand Up @@ -722,41 +722,79 @@ object CheckCommand "mongodb" {
vars.mongodb_action = "connections"
}

object CheckCommand "elasticsearch" {
template CheckCommand "elasticsearch" {
import "ipv4-or-ipv6"

command = [ PluginContribDir + "/check_elasticsearch" ]
command = [ PluginDir + "/check_elasticsearch" ]

arguments = {
"--failure-domain" = {
value = "$elasticsearch_failuredomain$"
description = "A comma-separated list of ElasticSearch attributes that make up your cluster's failure domain"
}
"--host" = {
value = "$elasticsearch_host$"
description = "Hostname or network address to probe, defaults to 'localhost'"
}
"--master-nodes" = {
value = "$elasticsearch_masternodes$"
description = "Issue a warning if the number of master-eligible nodes in the cluster drops below this number. By default, do not monitor the number of nodes in the cluster"
}
"--port" = {
value = "$elasticsearch_port$"
description = "TCP port to probe, defaults to 9200"
}
"--prefix" = {
value = "$elasticsearch_prefix$"
description = "Optional prefix for the ElasticSearch API, defaults to ''"
}
"--yellow-critical" = {
value = "TRUE"
set_if = "$elasticsearch_yellowcritical$"
description = "Instead of issuing a 'warning' for a yellow cluster state, issue a 'critical' alert"
"-H" = {
value = "$elasticsearch_hostname$"
description = "Hostname of the Elasticsearch instance (default 'localhost')"
}
"-p" = {
value= "$elasticsearch_port$"
description = "Port of the Elasticsearch instance (default 9200)"
}
"-U" = {
value = "$elasticsearch_username$"
description = "Username if authentication is required"
}
"-P" = {
value = "$elasticsearch_password$"
description = "Password if authentication is required"
}
"-S" = {
set_if = "$elasticsearch_tls$"
description = "Use a HTTPS connection (default false)"
}
"--insecure" = {
set_if = "$elasticsearch_insecure$"
description = "Skip the verification of the server's TLS certificate (default false)"
}
"-t" = {
value = "$elasticsearch_timeout$"
description = "Timeout in seconds for the CheckPlugin (default 30)"
}}
}

object CheckCommand "elasticsearch-query" {
import "elasticsearch"

command += [ "query" ]

arguments += {
"-q" = {
value = "$elasticsearch_query$"
description = "The Elasticsearch query"
}
"-I" = {
value = "$elasticsearch_query_index$"
description = "Name of the Index which will be used (default '_all')"
}
"-k" = {
value = "$elasticsearch_query_msgkey$"
description = "Message of messagekey to display"
}
"-m" = {
value = "$elasticsearch_query_msglen$"
description = "Number of characters to display in the latest message (default 80)"
}
"-w" = {
value = "$elasticsearch_query_warning$"
description = "Warning threshold for total hits (default '20')"
}
"-c" = {
value = "$elasticsearch_query_critical$"
description = "Critical threshold for total hits (default '50')"
}
}
}

object CheckCommand "elasticsearch-health" {
import "elasticsearch"

vars.elasticsearch_host = "$check_address$"
vars.elasticsearch_yellowcritical = false
command += [ "health" ]
}

object CheckCommand "redis" {
Expand Down
Loading