diff --git a/doc/10-icinga-template-library.md b/doc/10-icinga-template-library.md index 4b7f13acc..8a2da4fb6 100644 --- a/doc/10-icinga-template-library.md +++ b/doc/10-icinga-template-library.md @@ -5466,6 +5466,30 @@ haproxy_timeout | **Optional.** Seconds before plugin times out (default haproxy_warning | **Optional.** Warning request time threshold (in seconds) haproxy_critical | **Optional.** Critical request time threshold (in seconds) +#### haproxy-status + +The [check_haproxy_status](https://github.com/jonathanio/monitoring-nagios-haproxy) plugin, +uses the `haproxy` statistics socket to monitor [haproxy](http://www.haproxy.org/) frontends/backends. + +This plugin need read/write access to the statistics socket with an operator level. You can configure it in the global section of haproxy to allow icinga user to use it: +``` +stats socket /run/haproxy/admin.sock user haproxy group icinga mode 660 level operator +``` + +Custom attributes passed as [command parameters](03-monitoring-basics.md#command-passing-parameters): + +Name | Description +----------------------------|---------------------------------------------------------------------------------- +haproxy\_status\_default | **Optional.** Set/Override the defaults which will be applied to all checks (unless specifically set by --overrides). +haproxy\_status\_frontends | **Optional.** Enable checks for the frontends in HAProxy (that they're marked as OPEN and the session limits haven't been reached). +haproxy\_status\_nofrontends| **Optional.** Disable checks for the frontends in HAProxy (that they're marked as OPEN and the session limits haven't been reached). +haproxy\_status\_backends | **Optional.** Enable checks for the backends in HAProxy (that they have the required quorum of servers, and that the session limits haven't been reached). +haproxy\_status\_nobackends | **Optional.** Disable checks for the backends in HAProxy (that they have the required quorum of servers, and that the session limits haven't been reached). +haproxy\_status\_servers | **Optional.** Enable checks for the servers in HAProxy (that they haven't reached the limits for the sessions or for queues). +haproxy\_status\_noservers | **Optional.** Disable checks for the servers in HAProxy (that they haven't reached the limits for the sessions or for queues). +haproxy\_status\_overrides | **Optional.** Override the defaults for a particular frontend or backend, in the form {name}:{override}, where {override} is the same format as --defaults above. +haproxy\_status\_socket | **Required.** Path to the socket check_haproxy should connect to + #### phpfpm_status The [check_phpfpm_status](http://github.com/regilero/check_phpfpm_status) plugin, diff --git a/itl/plugins-contrib.d/web.conf b/itl/plugins-contrib.d/web.conf index cccadefc1..0585248f1 100644 --- a/itl/plugins-contrib.d/web.conf +++ b/itl/plugins-contrib.d/web.conf @@ -619,6 +619,51 @@ object CheckCommand "haproxy" { } } +object CheckCommand "haproxy_status" { + import "plugin-check-command" + command = [ PluginDir + "/check_haproxy_status" ] + + arguments = { + "--defaults" = { + value = "$haproxy_status_default$" + description = "Set/Override the defaults which will be applied to all checks (unless specifically set by --overrides)." + } + "--frontends" = { + set_if = "$haproxy_status_frontends$" + description = "Enable checks for the frontends in HAProxy (that they're marked as OPEN and the session limits haven't been reached)." + } + "--nofrontends" = { + set_if = "$haproxy_status_nofrontends$" + description = "Disable checks for the frontends in HAProxy (that they're marked as OPEN and the session limits haven't been reached)." + } + "--backends" = { + set_if = "$haproxy_status_backends$" + description = "Enable checks for the backends in HAProxy (that they have the required quorum of servers, and that the session limits haven't been reached)." + } + "--nobackends" = { + set_if = "$haproxy_status_nobackends$" + description = "Disable checks for the backends in HAProxy (that they have the required quorum of servers, and that the session limits haven't been reached)." + } + "--servers" = { + set_if = "$haproxy_status_servers$" + description = "Enable checks for the servers in HAProxy (that they haven't reached the limits for the sessions or for queues)." + } + "--noservers" = { + set_if = "$haproxy_status_noservers$" + description = "Disable checks for the servers in HAProxy (that they haven't reached the limits for the sessions or for queues)." + } + "--overrides" = { + value = "$haproxy_status_overrides$" + description = "Override the defaults for a particular frontend or backend, in the form {name}:{override}, where {override} is the same format as --defaults above." + } + "--socket" = { + value = "$haproxy_status_socket$" + description = "Path to the socket check_haproxy should connect to" + required = true + } + } +} + object CheckCommand "phpfpm_status" { import "plugin-check-command" command = [ PluginDir + "/check_phpfpm_status" ]