diff --git a/AUTHORS b/AUTHORS index f69b1f11fbf..32938a9800a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -230,6 +230,7 @@ Noah Hilverling noobahoi <20069422+noobahoi@users.noreply.github.com> Obihörnchen Oleg Artenii +Oleksandr Barbashyn Pall Sigurdsson Paolo Schiro Patrick diff --git a/doc/10-icinga-template-library.md b/doc/10-icinga-template-library.md index 72c43a0714a..1442fcbe555 100644 --- a/doc/10-icinga-template-library.md +++ b/doc/10-icinga-template-library.md @@ -3447,6 +3447,38 @@ linux\_netdev\_duration | **Optional.** For how long to run. E.g. "10s" or "2m linux\_netdev\_exclude | **Optional.** Which NICs to exclude. E.g. `eth0` or `eth?*`, may be an array. Default: none linux\_netdev\_thresholds | **Optional.** Warning and critical thresholds. E.g. `eth?*:tx:bytes:persec:w=1000000000` (see [plugin documentation](https://github.com/Al2Klimov/check_linux_netdev#usage)), may be an array. Default: none +#### netgear + +The [check_netgear](https://github.com/Icinga/check-netgear) plugin queries the API provided by NETGEAR AV Line switches +and retrieves device statistics such as CPU usage, memory usage, +temperature, fan speed and port statistics. + +Command line arguments are passed as [command parameters](03-monitoring-basics.md#command-passing-parameters): + +Name | Description +-----------------------------|---------------------------------------------------------------------------------- +netgear\_base\_url | **Required.** Base URL of the NETGEAR API (example: `http://$check_address$`). +netgear\_username | **Required.** Username used for authentication. +netgear\_password | **Required.** Password used for authentication. +netgear\_password\_file | **Optional.** Path to the file contatining the password. +netgear\_cpu\_warning | **Optional.** CPU usage warning threshold (default: 50). +netgear\_cpu\_critical | **Optional.** CPU usage critical threshold (default: 90). +netgear\_mem\_warning | **Optional.** RAM usage warning threshold (default: 50). +netgear\_mem\_critical | **Optional.** RAM usage critical threshold (default: 90). +netgear\_temp\_warning | **Optional.** Temperature warning threshold (default: 50). +netgear\_femp\_critical | **Optional.** Temperature critical threshold (default: 70). +netgear\_fan\_warning | **Optional.** Fan speed warning threshold (default: 3000). +netgear\_fan\_critical | **Optional.** Fan speed critical threshold (default: 5000). +netgear\_stats\_warning | **Optional.** Port statistics warning threshold (default: 5). +netgear\_stats\_critical | **Optional.** Port statistics critical threshold (default: 20). +netgear\_mode | **Optional.** Output modes to enable. Array of `basic`, `ports`, `poe`, `all`. Default: [`basic`]. +netgear\_ports | **Optional.** Ports to check as an arary. Default: [`1,2,3,4,5,6,7,8`]. +netgear\_hide\_perfdata | **Optional.** Disable performance data output. +netgear\_hide\_cpu | **Optional.** Hide CPU information. +netgear\_hide\_mem | **Optional.** Hide memory information. +netgear\_hide\_temp | **Optional.** Hide temperature information. +netgear\_hide\_fans | **Optional.** Hide fan information. + #### nwc_health The [check_nwc_health](https://labs.consol.de/de/nagios/check_nwc_health/index.html) plugin diff --git a/itl/plugins-contrib.d/network-components.conf b/itl/plugins-contrib.d/network-components.conf index 2f5faf1d6ad..e6628c6fa48 100644 --- a/itl/plugins-contrib.d/network-components.conf +++ b/itl/plugins-contrib.d/network-components.conf @@ -510,6 +510,103 @@ object CheckCommand "linux_netdev" { } } +object CheckCommand "netgear" { + import "ipv4-or-ipv6" + command = [ PluginContribDir + "/check_netgear" ] + arguments = { + "-base-url" = { + value = "$netgear_base_url$" + description = "Netgear base URL" + required = true + } + "-username" = { + value = "$netgear_username$" + description = "Username for authentication" + required = true + } + "-password" = { + value = "$netgear_password$" + description = "Password for authentication" + required = true + } + "-password-file" = { + value = "$netgear_password_file$" + description = "Path to the file contatining the password" + required = true + } + "-cpu-warning" = { + value = "$netgear_cpu_warning$" + description = "CPU usage warning threshold (default 50)" + } + "-cpu-critical" = { + value = "$netgear_cpu_critical$" + description = "CPU usage critical threshold (default 90)" + } + "-mem-warning" = { + value = "$netgear_mem_warning$" + description = "RAM usage warning threshold (default 50)" + } + "-mem-critical" = { + value = "$netgear_mem_critical$" + description = "RAM usage critical threshold (default 90)" + } + "-temp-warning" = { + value = "$netgear_temp_warning$" + description = "Temperature warning threshold (default 50)" + } + "-temp-critical" = { + value = "$netgear_temp_critical$" + description = "Temperature critical threshold (default 70)" + } + "-fan-warning" = { + value = "$netgear_fan_warning$" + description = "Fan speed warning threshold (default 3000)" + } + "-fan-critical" = { + value = "$netgear_fan_critical$" + description = "Fan speed critical threshold (default 5000)" + } + "-stats-warning" = { + value = "$netgear_stats_warning$" + description = "Port stats warning threshold (default 5)" + } + "-stats-critical" = { + value = "$netgear_stats_critical$" + description = "Port stats critical threshold (default 20)" + } + "-mode" = { + value = "$netgear_mode$" + description = "Output modes to enable {basic|ports|poe|all} (repeatable) (default: basic)" + repeat_key = true + } + "-port" = { + value = "$netgear_ports$" + description = "Ports to check (repeatable) (default 1,2,3,4,5,6,7,8)" + repeat_key = true + } + "-noperfdata" = { + set_if = "$netgear_hide_perfdata$" + description = "Do not output performance data" + } + "-nocpu" = { + set_if = "$netgear_hide_cpu$" + description = "Hide the CPU info" + } + "-nomem" = { + set_if = "$netgear_hide_mem$" + description = "Hide the RAM info" + } + "-notemp" = { + set_if = "$netgear_hide_temp$" + description = "Hide the Temperature info" + } + "-nofans" = { + set_if = "$netgear_hide_fans$" + description = "Hide the Fans info" + } + } +} + object CheckCommand "nwc_health" { import "ipv4-or-ipv6"