From 3909190c9d7127ebd3f9a8975a98f3f97b146993 Mon Sep 17 00:00:00 2001 From: lorenzg Date: Fri, 16 Oct 2026 18:13:11 +0200 Subject: [PATCH 1/4] fix phrasing/ typos --- README.md | 34 +++++------ docs/_index.md | 19 +++---- docs/api/_index.md | 46 +++++++-------- docs/checks/arguments/_index.md | 74 ++++++++++++------------ docs/checks/expressions/_index.md | 46 +++++++-------- docs/checks/external_commands/_index.md | 26 ++++----- docs/checks/filter/_index.md | 46 ++++++++------- docs/checks/macros/_index.md | 22 +++---- docs/checks/perfconfig/_index.md | 76 ++++++++++++------------- docs/checks/syntax/_index.md | 14 ++--- docs/compatibility/_index.md | 47 ++++++++------- docs/configuration/_index.md | 58 +++++++++---------- docs/install/_index.md | 18 +++--- docs/install/archlinux/_index.md | 2 +- docs/install/build.md | 58 +++++++++---------- docs/install/debian/_index.md | 8 +-- docs/install/osx/_index.md | 12 ++-- docs/install/rhel/_index.md | 8 +-- docs/install/supported.md | 20 +++---- docs/install/windows/_index.md | 34 +++++------ docs/prometheus/_index.md | 12 ++-- docs/prometheus/exporter.md | 22 +++---- docs/prometheus/managed.md | 16 +++--- docs/prometheus/node.md | 14 ++--- docs/prometheus/windows.md | 10 ++-- docs/security/_index.md | 39 +++++++------ docs/updates/_index.md | 14 ++--- packaging/RELEASE.md | 18 +++--- 28 files changed, 406 insertions(+), 407 deletions(-) diff --git a/README.md b/README.md index ed429985a..6edf719bf 100644 --- a/README.md +++ b/README.md @@ -11,22 +11,22 @@ [![License](https://img.shields.io/github/license/Consol-Monitoring/snclient)](https://github.com/Consol-Monitoring/snclient/blob/main/LICENSE) [![IRC](https://img.shields.io/badge/IRC-libera.chat%2F%23snclient-blue)](https://web.libera.chat/?nick=Guest?#snclient) -SNClient (Secure Naemon Client) is a general purpose monitoring agent designed as replacement for NRPE and NSClient++. +SNClient (Secure Naemon Client) is a general-purpose monitoring agent designed as a replacement for NRPE and NSClient++. ## Contact * Report a Security Advisory via [GitHub Security](https://github.com/Consol-Monitoring/snclient/security). * Mailing list on [Google Groups](https://groups.google.com/group/snclient). -* Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/snclient) +* Ask a question on [Stack Overflow](https://stackoverflow.com/questions/tagged/snclient). * File a Bug in [GitHub Issues](https://github.com/Consol-Monitoring/snclient/issues). * Chat with developers on [IRC Libera #snclient](irc://irc.libera.chat/snclient) ([Webchat](https://web.libera.chat/?nick=Guest?#snclient)). -* Professional Support from [ConSol*](https://www.consol.com/product-solutions/open-source-monitoring/) +* Professional Support from [ConSol*](https://www.consol.com/product-solutions/open-source-monitoring/). ## Documentation The documentation can be found on [omd.consol.de](https://omd.consol.de/docs/snclient/). -It is maintained in [docs/](docs/) +It is maintained in [docs/](docs/). ## Supported Operating Systems @@ -35,28 +35,28 @@ It is maintained in [docs/](docs/) | **Linux** | X | X | X | | **Windows**\* | X | X | X | | **FreeBSD** | X | X | X | -| **MacOS** | | X | X | +| **macOS** | | X | X | \* Only Windows 10 / Windows Server 2016 or newer. -A more detailed list of [supported operating systems](docs/install/supported.md). +See the detailed list of [supported operating systems](docs/install/supported.md). ## Supported Protocols -* Prometheus HTTP(s) +* Prometheus HTTP(S) * NRPE (v2/v4) -* NSCP Rest API via HTTP(s) (checks only) +* NSCP REST API via HTTP(S) (checks only) ## Installation -There are pre-build binaries and packages for the all supported systems (see above) on the +There are prebuilt binaries and packages for all supported systems (see above) on the [release page](https://github.com/Consol-Monitoring/snclient/releases). Further details are covered in the [documentation](https://omd.consol.de/docs/snclient/install/). ## Check Plugin Status -| | Windows | Linux | OSX | BSD | +| | Windows | Linux | macOS | BSD | |-----------------------------------|:-------:|:-------:|:-------:|:-------:| | **check_alias** | X | X | X | X | | **check_connections** | X | X | X | X | @@ -72,7 +72,7 @@ Further details are covered in the [documentation](https://omd.consol.de/docs/sn | **check_index** | X | X | X | X | | **check_kernel_stats** | | X | | | | **check_load** | X | X | X | X | -| **check_log** | X | X | X | X | +| **check_logfile** | X | X | X | X | | **check_mailq** | | X | X | X | | **check_memory** | X | X | X | X | | **check_mount** | X | X | X | X | @@ -102,23 +102,23 @@ Further details are covered in the [documentation](https://omd.consol.de/docs/sn Find a brief overview of what is planned: -* [ ] add time support in threshold, ex.: warn=time > 18:00 && load > 10 -* [ ] open telemetry +* [ ] add time support in thresholds, e.g. warn=time > 18:00 && load > 10 +* [ ] OpenTelemetry * [ ] improve configuration * [ ] add config validator - * [ ] use strong typed config items + * [ ] use strongly typed configuration items * [ ] add module enable/disable option directly in the module section ## Not gonna happen -The following things will most likely not be part of snclient any time: +The following features will most likely not be included in SNClient: * CheckMK support -* Embedded LUA support +* Embedded Lua support * Embedded Python support * Graphite support * NRDP support * NSCA support * SMTP support -* Website/Rest API (except doing checks) +* Website/REST API (except doing checks) * check_nt support diff --git a/docs/_index.md b/docs/_index.md index b46f1d71f..5f4bb89bf 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -13,24 +13,24 @@ tags: --- [![CICD Pipeline](https://github.com/Consol-Monitoring/snclient/actions/workflows/builds.yml/badge.svg?branch=main)](https://github.com/Consol-Monitoring/snclient/actions/workflows/builds.yml) -[![Go Report Card](https://goreportcard.com/badge/github.com/Consol-Monitoring/snclient)](https://goreportcard.com/report/github.com/Consol-Monitoring/snclient) +[![Downloads](https://img.shields.io/github/downloads/Consol-Monitoring/snclient/total?color=yellow)](https://github.com/Consol-Monitoring/snclient/releases) [![Latest Release](https://img.shields.io/github/v/release/Consol-Monitoring/snclient?sort=semver)](https://github.com/Consol-Monitoring/snclient/releases) [![License](https://img.shields.io/github/license/Consol-Monitoring/snclient)](https://github.com/Consol-Monitoring/snclient/blob/main/LICENSE) [![IRC](https://img.shields.io/badge/IRC-libera.chat%2F%23snclient-blue)](https://web.libera.chat/?nick=Guest?#snclient) -**SNClient** is an open-source (drop-in for most use cases) general purpose monitoring agent as replacement for the well-known NSClient++. +**SNClient** is an open-source, general-purpose monitoring agent designed as a replacement for NSClient++. It is a drop-in replacement for most use cases. -It was written from scratch in [Golang](https://go.dev/) using todays state-of-the-art technologies. All the test and build procedures are located on [GitHub](https://github.com/ConSol-Monitoring/snclient). +It was written from scratch in [Go](https://go.dev/) using today's state-of-the-art technologies. All the test and build procedures are located on [GitHub](https://github.com/ConSol-Monitoring/snclient). -It's available for Linux, Windows and MacOS for i386, x86_64 and arm64 ([detailed list of supported operating systems](./install/supported/)). +It's available for Linux, Windows and macOS for i386, x86_64 and arm64 ([detailed list of supported operating systems](./install/supported/)). -Have a look at the [installation](./install/) page for first steps. +Have a look at the [installation](./install/) page to get started. ## Nagios / Naemon and Prometheus -- SNClient supports the [Nagios / Naemon stack](./checks/) with nrpe or check_snclient (formerly check_nsc_web). -- Prometheus is also supported with the [builtin node_exporter and windows_exporter](./prometheus/) +- SNClient supports the [Nagios / Naemon stack](./checks/) with NRPE or check_snclient (formerly check_nsc_web). +- Prometheus is also supported with the [built-in node_exporter and windows_exporter](./prometheus/). ## Releases @@ -38,8 +38,7 @@ The latest release can always be found [here](https://github.com/ConSol-Monitori ## Talks -### 2023 - OSMC Nuremberg +### 2023 at OSMC Nuremberg -- english - 33 minutes -- Talk: +- [YouTube]() (EN - 33 min) - [Slides](https://labs.consol.de/_slides/snclient-2023-11-09.pdf) diff --git a/docs/api/_index.md b/docs/api/_index.md index aa77e4a12..83fa942e5 100644 --- a/docs/api/_index.md +++ b/docs/api/_index.md @@ -5,7 +5,7 @@ linkTitle: REST API SNClient comes with a REST API which can be used to run checks or do administrative tasks. -For the sake of completeness the list of endpoints also contains the available none-rest URLs. +For the sake of completeness the list of endpoints also contains the available non-REST URLs. ## Endpoints @@ -17,7 +17,7 @@ Redirects to `/index.html` ### /index.html -Returns simple OK message: +Returns a simple OK message: Example: @@ -34,7 +34,7 @@ Returns: snclient working... ``` -## Checks Endpoints +## Check Endpoints These endpoints are available if the `WEBServer` is enabled in the modules section. @@ -66,7 +66,7 @@ curl \ ### /api/v1/inventory -Returns the check inventory as json +Returns the check inventory as JSON. Example: @@ -117,7 +117,7 @@ Returns: ### /api/v1/inventory/{module} -Returns the check inventory for a specific modules json. Available modules +Returns the check inventory for a specific module as JSON. Available modules are the keys from the inventory hash map as returned from `/api/v1/inventory`. Example: @@ -135,7 +135,7 @@ These endpoints are available if the `PrometheusServer` is enabled in the module ### /metrics -Returns prometheus metics for snclient itself. +Returns Prometheus metrics for SNClient itself. ## Node Exporter Endpoints @@ -145,7 +145,7 @@ These endpoints are available if the `NodeExporterServer` or `WindowsExporterSer Used by the [WindowsExporter](../prometheus/windows/) and [NodeExporter](../prometheus/node/). -Returns prometheus metrics from those exporters. +Returns Prometheus metrics from those exporters. ## Exporter Exporter Endpoints @@ -155,13 +155,13 @@ These endpoints are available if the `ExporterExporterServer` is enabled in the Used by the [ExporterExporter](../prometheus/exporter/) server. -Returns list of exporters. +Returns a list of exporters. ### /proxy Used by the [ExporterExporter](../prometheus/exporter/) server. -Returns metrics for given exporter. +Returns metrics for the specified exporter. ## Administrative Endpoints @@ -197,7 +197,7 @@ Returns Temporarily (or permanently) override the current log level. -`duration` (in seconds) is optional. When set and greater than 0, the previous log level is restored automatically after the duration elapsed. +`duration` (in seconds) is optional. When set and greater than 0, the previous log level is restored automatically after the duration has elapsed. Example: @@ -237,10 +237,10 @@ curl \ Replace the TLS certificate and key on the fly. Reload is optional. -The certificates need to be base64 encoded as in the following example. +The certificates need to be Base64-encoded as in the following example. -When updating the TLS certificate with a new certificate obtained by requesting a Certificate Signing Request (CSR) from -the CSR endpoint, the keydata field must be omitted. The certificate will only be updated if the public key associated +When updating the TLS certificate with a new certificate issued from a Certificate Signing Request (CSR) generated by +the CSR endpoint, the `keydata` field must be omitted. The certificate will only be updated if the public key associated with the new certificate matches the public key generated by the CSR endpoint. Example: @@ -260,10 +260,10 @@ Returns ### /api/v1/admin/csr -Request a new csr, creates new private key if requested by the user or uses the already existing one. -The only field that needs to be set is `CommonName` the rest of the fields is optional. +Requests a new CSR and creates a new private key if requested by the user, or uses the existing one. +The only field that needs to be set is `CommonName`; the remaining fields are optional. -Optionally you can also set a `ChallengePassword` in the csr request. +Optionally you can also set a `ChallengePassword` in the CSR request. Example: @@ -274,20 +274,20 @@ curl \ https://127.0.0.1:8443/api/v1/admin/csr ``` -Returns PEM encoded csr -When NewKey:true is specified, a new private key will be generated and stored in a temporary file. This temporary file -will be retained until you upload the signed certificate to the /api/v1/admin/certs/replace endpoint, at which point the -new private key will be saved in the keyfile specified in the configuration +Returns a PEM-encoded CSR. +When `NewKey:true` is specified, a new private key will be generated and stored in a temporary file. This temporary file +will be retained until you upload the signed certificate to the `/api/v1/admin/certs/replace` endpoint, at which point the +new private key will be saved in the key file specified in the configuration. ### /api/v1/admin/updates/install Trigger checking for updates. -The endpoint has the following optional options: +The endpoint has the following optional parameters: -- `channel`: set channel to fetch updates from. Defaults to default configured channel. +- `channel`: set channel to fetch updates from. Defaults to the configured channel. - `force`: force installing an update. Default: false -- `version`: force installing an specific version. Default is to use the latest version. +- `version`: force installing a specific version. Default is to use the latest version. - `restart`: restart after installing the update: Default: true Example: diff --git a/docs/checks/arguments/_index.md b/docs/checks/arguments/_index.md index 2318cc68b..06431f9a8 100644 --- a/docs/checks/arguments/_index.md +++ b/docs/checks/arguments/_index.md @@ -12,11 +12,11 @@ title: Common Check Arguments | [critical](#critical) | Threshold when to generate a critical state | | [crit](#critical) | Short alias for critical | | [critical+](#critical-1) | Same as critical but extend default critical instead of overwriting it | -| [ok](#ok) | Threshold when to generate an ok state | -| [top-syntax](#top-syntax) | Top level syntax. | -| [ok-syntax](#ok-syntax) | Syntax used for ok states. | +| [ok](#ok) | Threshold when to generate an OK state | +| [top-syntax](#top-syntax) | Top-level syntax. | +| [ok-syntax](#ok-syntax) | Syntax used for OK states. | | [empty-syntax](#empty-syntax) | Template syntax used when no item matches a filter. | -| [empty-state](#empty-state) | Status to return when no items matches the filter. | +| [empty-state](#empty-state) | Status to return when no items match the filter. | | [detail-syntax](#detail-syntax) | Detailed syntax for list items. | | [perf-syntax](#perf-syntax) | Performance data syntax. | | [perf-config](#perf-config) | Performance data tweaks. | @@ -26,84 +26,84 @@ title: Common Check Arguments Filter for items which will be included in the check. Unwanted items will be ignored and won't trigger a warning or critical state. -ex.: +For example: 'filter=service = snclient' -Filter are explained in detail here: [check filter](../filter/) +Filters are explained in detail here: [check filter](../filter/) ### Filter+ -Extend default filter. +Extend the default filter. -ex.: +For example: 'filter+=service = snclient' ### Warning -Filter which sets a threshold when to generate a warning state. If any wanted item -matches this filter the return state will be escalated to warning. +Expression that defines when to return a WARNING state. If any selected item +matches this expression, the return state will be escalated to WARNING. The syntax works the same way as [filter](#filter) except matching items are not -removed but escalate the status to warning state. +removed, but instead set the status to WARNING. -ex.: +For example: 'warn=load > 90%' -Syntax is explained in details on the [expressions page](../expressions). +Syntax is explained in detail on the [expressions page](../expressions). ### Warning+ -Extend default warning threshold. +Extend the default warning threshold. -ex.: +For example: 'warn+=load > 90%' ### Critical -Filter which sets a threshold when to generate a critical state. If any wanted item -matches this filter the return state will be escalated to critical. +Expression that defines when to return a CRITICAL state. If any selected item +matches this expression, the return state will be escalated to CRITICAL. The syntax works the same way as [filter](#filter) except matching items are not -removed but escalate the status to critical state. +removed, but instead set the status to CRITICAL. -ex.: +For example: 'crit=load > 98%' -Syntax is explained in details on the [expressions page](../expressions). +Syntax is explained in detail on the [expressions page](../expressions). ### Critical+ -Extend default critical threshold. +Extend the default critical threshold. -ex.: +For example: 'crit+=load > 90%' -### Ok +### OK -Filter which sets a threshold when to generate an ok state. If any wanted item -matches this filter its state will be reset to ok regardless of its previous state. +Expression that defines when to return an OK state. If any selected item +matches this expression, its state will be reset to OK regardless of its previous state. The syntax works the same way as [filter](#filter) except matching items are not -removed but the status is reset to ok state. +removed but the status is reset to OK. -ex.: +For example: 'ok=enabled = 0' -Syntax is explained in details on the [expressions page](../expressions). +Syntax is explained in detail on the [expressions page](../expressions). ### Empty-State Status to be returned when no item matches the filter. If no filter is given this won't happen. -Empty-State won't be used at all if there is a `count` warning/critical/ok threshold used. +Empty-State won't be used at all if a `count` warning/critical/ok threshold is used. -ex.: +For example: 'empty-state=3' @@ -114,18 +114,18 @@ as special keywords that will be replaced by information from the check. Details are explained on the [template syntax page](../syntax/). -ex.: +For example: 'top-syntax=%(status) - %(crit_list)' -### Ok-Syntax +### OK-Syntax Overrides the `top-syntax` if the state is OK. Can include text as well as special keywords that will be replaced by information from the check. Details are explained on the [template syntax page](../syntax/). -ex.: +For example: 'ok-syntax=%(status) - everything is fine' @@ -136,7 +136,7 @@ Sets the format for the return message if no item matched the filter. Overrides Details are explained on the [template syntax page](../syntax/). -ex.: +For example: 'empty-syntax=%(status) - nothing found' @@ -146,7 +146,7 @@ Sets the format for each individual list item in the message. Details are explained on the [template syntax page](../syntax/). -ex.: +For example: 'detail-syntax=%(name): Memory: %(mem:h) - CPU: %(cpu)%' @@ -154,7 +154,7 @@ ex.: Sets the format for the base names of the performance data. The default is `%(key)`. -ex.: +For example: 'perf-syntax=%(key | lc)' @@ -164,6 +164,6 @@ Apply tweaks to performance data, like unit conversion. `perf-config` syntax is explained in detail here: [Perf Config](../perfconfig/) -ex.: +For example: 'perf-config=used(unit:G)' diff --git a/docs/checks/expressions/_index.md b/docs/checks/expressions/_index.md index 330c5465a..c9726cfd0 100644 --- a/docs/checks/expressions/_index.md +++ b/docs/checks/expressions/_index.md @@ -7,53 +7,53 @@ Expressions are used for the `filter`, `warning`, `critical` and `ok` arguments. ## Syntax The basic syntax is ` `. For a list and explanation -of allowed operators see [the operator list](#operator). +of allowed operators see [the operator list](#operators). The list of possible attributes is documented along with each [check plugin](../plugins). -ex.: +For example: filter="status = 'started'" critical="count >= 1" -## Logical Operator +## Logical Operators -To combine multiple expressions you can use logical operator and brackets. +To combine multiple expressions you can use logical operators and brackets. | Operator | Alias | Description | Example | | -------- | -------| ------------------------ | ------------------------ | | `and` | `&&` | Logical **and** operator | count = 0 and state != 1 | | `or` | `\|\|` | Logical **or** operator | used > 5 or free < 20 | -ex.: +For example: filter="(status = 'started' or status = 'pending') and usage > 5%" -## Operator +## Operators | Operator | Alias / Safe expression | Types | Case Sens. | Description | | ----------- | --------------------------- | -----------------| ---------- | ----------- | -| `=` | `==`, `is`, `eq` | Strings, Numbers | Yes | Matches on **exact equality**, ex.: `status = 'started'` | -| `!=` | `is not`, `ne` | Strings, Numbers | Yes | Matches if value is **not exactly equal**. ex.: `5 != 3` | -| `like` | `ilike` | Strings | No | Matches if value contains the condition (**case insensitive substring match**), ex.: `status like "pend"` | -| `unlike` | `not like`, `not ilike` | Strings | No | Matches if value does **not contain** the **case insensitive substring**, ex.: `status unlike "stopped"` | -| `slike` | `strictlike` | Strings | Yes | Matches a **case sensitive substring**, ex.: `name slike "WMI"` | -| `not slike` | `not strictlike` | Strings | Yes | Matches if a **case sensitive substring** cannot be found, ex.: `name not slike "WMI"` | -| `~` | `regex`, `regexp` | Strings | Yes | Performs a **regular expression** match, ex.: `status ~ '^pend'` | -| `!~` | `not regex`, `not regexp` | Strings | Yes | Performs a **inverse regular expression** match, ex.: `status !~ 'stop'` | -| `~~` | `regexi`, `regexpi` | Strings | No | Performs a **case insensitive regular expression** match, ex.: `status ~~ '^pend'`. An alternative way is to use `//i` as in `status ~ /^pend/i` | -| `!~~` | `not regexi`, `not regexpi` | Strings | No | Performs a **inverse case insensitive regular expression** match, ex.: `status !~~ 'stop'` | -| `<` | `lt` | Numbers | - | Matches **lower than** numbers, ex.: `usage < 5%` | -| `<=` | `le`, `lte` | Numbers | - | Matches **lower or equal** numbers, ex.: `usage <= 5%` | -| `>` | `gt` | Numbers | - | Matches **greater than** numbers, ex.: `usage > 5%` | -| `>=` | `ge`, `gte` | Numbers | - | Matches **greater or equal** numbers, ex.: `usage >= 5%` | -| `in` | | Strings | Yes | Matches if element **is in list** ex.: `status in ('start', 'pending')` | -| `not in` | | Strings | Yes | Matches if element **is not in list** ex.: `status not in ('stopped', 'starting')` | +| `=` | `==`, `is`, `eq` | Strings, Numbers | Yes | Matches on **exact equality**, e.g. `status = 'started'` | +| `!=` | `is not`, `ne` | Strings, Numbers | Yes | Matches if value is **not exactly equal**. For example: `5 != 3` | +| `like` | `ilike` | Strings | No | Matches if value contains the condition (**case-insensitive substring match**), e.g. `status like "pend"` | +| `unlike` | `not like`, `not ilike` | Strings | No | Matches if value does **not contain** the **case-insensitive substring**, e.g. `status unlike "stopped"` | +| `slike` | `strictlike` | Strings | Yes | Matches a **case-sensitive substring**, e.g. `name slike "WMI"` | +| `not slike` | `not strictlike` | Strings | Yes | Matches if a **case-sensitive substring** cannot be found, e.g. `name not slike "WMI"` | +| `~` | `regex`, `regexp` | Strings | Yes | Performs a **regular expression** match, e.g. `status ~ '^pend'` | +| `!~` | `not regex`, `not regexp` | Strings | Yes | Performs an **inverse regular expression** match, e.g. `status !~ 'stop'` | +| `~~` | `regexi`, `regexpi` | Strings | No | Performs a **case-insensitive regular expression** match, e.g. `status ~~ '^pend'`. An alternative way is to use `//i` as in `status ~ /^pend/i` | +| `!~~` | `not regexi`, `not regexpi` | Strings | No | Performs an **inverse case-insensitive regular expression** match, e.g. `status !~~ 'stop'` | +| `<` | `lt` | Numbers | - | Matches values **less than** the specified value, e.g. `usage < 5%` | +| `<=` | `le`, `lte` | Numbers | - | Matches values **less than or equal to** the specified value, e.g. `usage <= 5%` | +| `>` | `gt` | Numbers | - | Matches values **greater than** the specified value, e.g. `usage > 5%` | +| `>=` | `ge`, `gte` | Numbers | - | Matches values **greater than or equal to** the specified value, e.g. `usage >= 5%` | +| `in` | | Strings | Yes | Matches if the value **is in the list**, e.g. `status in ('start', 'pending')` | +| `not in` | | Strings | Yes | Matches if the value **is not in the list**, e.g. `status not in ('stopped', 'starting')` | ## Other Operators -For backwards compatibility there more operators available: +For backwards compatibility there are more operators available: | Operator | Alias | Description | Example | | -------- | --------| ----------------| --------------------------- | diff --git a/docs/checks/external_commands/_index.md b/docs/checks/external_commands/_index.md index 21a0aa014..9ce0aded4 100644 --- a/docs/checks/external_commands/_index.md +++ b/docs/checks/external_commands/_index.md @@ -56,24 +56,24 @@ allow arguments = true Arguments are available in macros: -- `$ARGS$` contains all macros space separated **without** quotes. -- `$ARGS"$` contains all macros space separated **with quotes**. +- `$ARGS$` contains all arguments, separated by spaces, **without** quotes. +- `$ARGS"$` contains all arguments, separated by spaces, **with** quotes. - `$ARGSn$` contains the value of the argument at position `n`. -- `$ARGSn"$` contains the value of the argument at position `n` **with quotes**. +- `$ARGSn"$` contains the value of the argument at position `n` **with** quotes. -Using arguments is not recommend for security reasons. If arguments are required, at least +Using arguments is not recommended for security reasons. If arguments are required, at least make sure to use quoted arguments as in `$ARGS"$`. Using unquoted arguments almost always leads to a command injection vulnerability. ### Configuration Reference -Below, you'll find a reference section for configuring the External Script Integration feature of SNClient +Below, you'll find a reference section for configuring the External Script Integration feature of SNClient. #### External Script Integration Settings - **allow arguments**: Allow or disallow script arguments when executing external scripts. Default is `false`. - **allow nasty characters**: Permit or restrict certain characters (```|`&><'"\[]{}...```) in arguments. Default is `false`. -- **allow control characters**: Permit or restrict ascii control characters in arguments. Default is `false`. +- **allow control characters**: Permit or restrict ASCII control characters in arguments. Default is `false`. - **timeout**: Set the maximum execution time for commands (in seconds). This applies to external commands only, not internal ones. ```ini @@ -103,7 +103,7 @@ Define scripts available for execution via the External Script Integration featu command = custom_script.bat ``` -Scripts with an extension of .bat, .ps1 and .exe (Windows) or .sh and no extension at all (Unix) can be defined as follows. +Scripts with the extensions .bat, .ps1, or .exe (Windows), or .sh or no extension (Unix), can be defined as follows. ```ini check_dummy = check_dummy.bat @@ -125,14 +125,14 @@ If your scripts are located within the `${scripts}` folder, you can specify them ``` ; Load all scripts in a given folder - Load all (${script path}/*) scripts in a given directory and use them as commands. -; Any executable file is considered a script. They do not have end with an script like extension. -; In windows, executable files cannot be discerned. It will add every file under the directory. -; Links are followed, and if they end up under script path, they will be added as a script. -; If path ends with ** its subdirectories will be searched as well. +; Any executable file is considered a script. They do not need to have a script extension. +; On Windows, executable files cannot be identified this way, so SNClient adds every file in the directory. +; Links are followed, and if they end up under the script path, they will be added as a script. +; If the path ends with **, its subdirectories will be searched as well. script path = ${scripts}/autoinclude ``` -Scripts can also be automatically discovered and added, without defining them individually. This uses the `script path` setting. There is no way to change the alias, as they will use the scripts name and extension for their alias. +Scripts can also be automatically discovered and added, without defining them individually. This uses the `script path` setting. There is no way to change the alias, as they will use the script's name and extension for their alias. #### Wrapped Scripts @@ -151,4 +151,4 @@ check_dummy_wrapped_ok = check_dummy.bat 0 "i am ok wrapped" check_dummy_wrapped_critical = check_dummy.vbs 2 "i am critical wrapped" ``` -**Note:** Unlike NSClient++, you don't need to use wrapping for Powershell scripts. +**Note:** Unlike NSClient++, you don't need to use wrapping for PowerShell scripts. diff --git a/docs/checks/filter/_index.md b/docs/checks/filter/_index.md index 58eb73818..61aa303a3 100644 --- a/docs/checks/filter/_index.md +++ b/docs/checks/filter/_index.md @@ -2,65 +2,66 @@ title: Filter --- -Filter can be uses to select specific objects from a result list. So if a filter +Filters can be used to select specific objects from a result list. So if a filter is specified, only those elements matching the filter will be considered when building the final result. The same syntax is used for warning/critical/ok thresholds, except when used -as threshold, the corresponding status will be set. +as a threshold, the corresponding status will be set. ## Syntax -All filter follow the syntax ` `. For a list and explanation +All filters follow the syntax ` `. For a list and explanation of allowed operators see [the operator list](../expressions). The list of possible attributes is documented along with each [check plugin](../plugins). [Common attributes](#common-filter-attributes) are listed at the end of this page. -ex.: +For example: filter="status = 'started'" -Syntax is explained in details on the [expressions page](../expressions). +Syntax is explained in detail on the [expressions page](../expressions). -Multiple filter can be used and will be combined with an logical `OR`. +Multiple filters can be used and will be combined with a logical `OR`. -ex.: +For example: filter="drive = 'C:'" filter="drive = 'D:'" ## Filter As Excludes -By default filters are a positive include list. But with the right operator -they can be used as exclude as well. +By default, filters form an inclusion list. With the appropriate operator, +they can also exclude items. -ex.: +For example: filter="fstype not in ('tmpfs', 'debugfs')" ## Default Filter -Some checks do have default filter, which will be used if no filter is supplied -as check argument. +Some checks have a default filter, which will be used if no filter is supplied +as a check argument. -Default filter are documented along with each [check plugins](../plugins). +Default filters are documented along with each [check plugin](../plugins). -The default filter can be unset by using a `none` filter, ex.: +The default filter can be unset by using a `none` filter, for example: filter="none" -Default filter will be overwritten if a new filter is set. +The default filter will be overwritten if a new filter is set. ## Extending Filters -Existing default filter can be extended by using a `filter+="..."` syntax, ex.: +An existing default filter can be extended using the `filter+="..."` syntax, for example: filter+="status = 'started'" -In case of extending the default filter, all filter will be combined with an logical `AND`. +When extending the default filter, all filters will be combined with a logical `AND`. + +For example: -ex.: default filter="fstype is not tmpfs" filter += "fstype is not debugfs" @@ -69,9 +70,10 @@ results in: fstype is not tmpfs AND fstype is not debugfs -Same applies to appending to previously set filters: +The same applies to appending to previously set filters: + +For example: -ex.: filter="fstype is not tmpfs" filter+="fstype is not debugfs" also results in: @@ -90,8 +92,8 @@ Expressions are explained on the [expressions page](../expressions). | count | Number of items matching the filter. | | total | Total number of items | | list | List of all items matching the filter. | -| ok_count | Number of items that are ok | -| ok_list | List of items that are ok | +| ok_count | Number of items that are OK | +| ok_list | List of items that are OK | | warn_count | Number of items that matched the warning threshold | | warn_list | List of items that matched the warning threshold | | crit_count | Number of items that matched the critical threshold | diff --git a/docs/checks/macros/_index.md b/docs/checks/macros/_index.md index 1b4dfad33..2bed3214a 100644 --- a/docs/checks/macros/_index.md +++ b/docs/checks/macros/_index.md @@ -6,7 +6,7 @@ Macros can be used to modify raw SNClient values. ## Macro Operators -Values can be altered by adding a colon separated suffix. +Values can be altered by adding a colon-separated suffix. Supported operators are: @@ -14,14 +14,14 @@ Supported operators are: | --------------------- | ------------------------------------- | ------------| | `:lc` | Word -> word | make value lowercase | | `:uc` | test -> TEST | make value uppercase | -| `:h` | 1000 -> 1k | make a number more human readably | -| `:duration` | 125 -> 2m 5s | convert amount of seconds into human readable duration | -| `:age` | 1700834034 -> 374 | subtract value from current unix timestamp to get the age in seconds | -| `:date` | 1700834034 -> 2023-11-24 14:53:54 CET | convert unix timestamp into human readable date (local timezone) | -| `:utc` | 1700834034 -> 2023-11-24 13:53:54 UTC | convert unix timestamp into human readable date (utc timezone) | -| `:fmt=` | 123.45 -> 123.5 | apply format, ex.: $(total \| fmt=%.1f) (using GOs fmt.Sprintf) | -| `:s/regexp/replace/` | C:\ % -> C | apply regexp replacement, ex.: $(name \| 's/\\W//' ) (using GOs regexp.Compile) | -| `:ascii` | C:\ % -> C | remove any none-ascii characters | +| `:h` | 1000 -> 1k | make a number more readable | +| `:duration` | 125 -> 2m 5s | convert a number of seconds into a human-readable duration | +| `:age` | 1700834034 -> 374 | subtract value from current Unix timestamp to get the age in seconds | +| `:date` | 1700834034 -> 2023-11-24 14:53:54 CET | convert a Unix timestamp into a human-readable date (local timezone) | +| `:utc` | 1700834034 -> 2023-11-24 13:53:54 UTC | convert a Unix timestamp into a human-readable date (UTC timezone) | +| `:fmt=` | 123.45 -> 123.5 | apply a format, e.g. $(total \| fmt=%.1f) (using Go's fmt.Sprintf) | +| `:s/regexp/replace/` | C:\ % -> C | apply regexp replacement, e.g. $(name \| 's/\\W//' ) (using Go's regexp.Compile) | +| `:ascii` | C:\ % -> C | remove any non-ASCII characters | | `:trim` | " test " -> "test" | remove leading and trailing whitespace | | `:chomp` | " test " -> " test" | remove trailing whitespace only | @@ -31,7 +31,7 @@ Operators can be put together (spaces are optional): $(datemacro:date : uc) ``` -This converts $(datemacro) to a human readable date and makes everything uppercase. +This converts $(datemacro) to a human-readable date and makes everything uppercase. You can also use the pipe symbol to use multiple operators in a row, for example: @@ -39,7 +39,7 @@ You can also use the pipe symbol to use multiple operators in a row, for example $(macroname | date | uc) ``` -Use the generic fmt operator to apply any format on numbers, for example: +Use the generic fmt operator to apply a format to numbers, for example: ```txt $(used_pct | fmt=%d) diff --git a/docs/checks/perfconfig/_index.md b/docs/checks/perfconfig/_index.md index 619ee0ba2..040cd379a 100644 --- a/docs/checks/perfconfig/_index.md +++ b/docs/checks/perfconfig/_index.md @@ -3,7 +3,7 @@ title: Performance Data Configuration --- Sometimes you might want to tweak performance data and therefore all checks -support the `perf-conf` argument to apply tweaks to them. +support the `perf-config` argument to apply tweaks to them. ## Syntax @@ -17,7 +17,7 @@ For example: check_drivesize "perf-config= used %(ignored:true) used(unit:G)" ``` -This will convert used disk space bytes into gigabytes. It als removes the percent +This will convert used disk space bytes into gigabytes. It also removes the percent performance data from the output completely. ## Configuration @@ -34,13 +34,13 @@ The following keys are available: ## Selector -The perf-conf selector supports wildcards, so something like this will work: +The perf-config selector supports wildcards, so something like this will work: ```bash check_plugin perf-config="*(unit:G)" ``` -The snclient will use the options in order and apply the first matching configuration, so for ex.: +SNClient will use the options in order and apply the first matching configuration, for example: ```bash check_plugin perf-config="used(ignored:true) *(unit:G)" @@ -50,11 +50,11 @@ will hide `used` performance data and apply unit G to everything else. ## Units -There are several possible and useful conversion available. +There are several useful conversions available. ### Bytes -The base unit `B` for bytes can be converted into more human readable units. +The base unit `B` for bytes can be converted into more human-readable units. A common pattern is `*(unit:G)` to simply convert all performance data into gigabytes. @@ -66,36 +66,36 @@ You can choose from these units: | Unit | Description | | ---- | ----------- | -| K | KByte | -| KB | KByte | -| KiB | KiByte | -| Kb | KiByte | -| KI | KiByte | -| M | MByte | -| MB | MByte | -| MiB | MiByte | -| Mb | MiByte | -| MI | MiByte | -| G | GByte | -| GB | GByte | -| GiB | GiByte | -| Gb | GiByte | -| GI | GiByte | -| T | TByte | -| TB | TByte | -| TiB | TiByte | -| Tb | TiByte | -| TI | TiByte | -| P | PByte | -| PB | PByte | -| PiB | PiByte | -| Pb | PiByte | -| PI | PiByte | -| E | EByte | -| EB | EByte | -| EiB | EiByte | -| Eb | EiByte | -| EI | EiByte | +| K | kilobyte | +| KB | kilobyte | +| KiB | kibibyte | +| Kb | kibibyte | +| KI | kibibyte | +| M | megabyte | +| MB | megabyte | +| MiB | mebibyte | +| Mb | mebibyte | +| MI | mebibyte | +| G | gigabyte | +| GB | gigabyte | +| GiB | gibibyte | +| Gb | gibibyte | +| GI | gibibyte | +| T | terabyte | +| TB | terabyte | +| TiB | tebibyte | +| Tb | tebibyte | +| TI | tebibyte | +| P | petabyte | +| PB | petabyte | +| PiB | pebibyte | +| Pb | pebibyte | +| PI | pebibyte | +| E | exabyte | +| EB | exabyte | +| EiB | exbibyte | +| Eb | exbibyte | +| EI | exbibyte | ### Seconds / Duration @@ -111,7 +111,7 @@ Durations with the base unit `s` for seconds can be converted into the following | w | weeks | | y | years | -For example convert the uptime to days: +For example, convert the uptime to days: ```bash check_uptime "perf-config=*(unit:d)" @@ -119,7 +119,7 @@ check_uptime "perf-config=*(unit:d)" ### Percent -All performance data which have at least a value and a min and max value can be converted to percent. +Performance data with a value, a minimum, and a maximum can be converted to a percentage. ```bash check_plugin perf-config="*(unit:%)" diff --git a/docs/checks/syntax/_index.md b/docs/checks/syntax/_index.md index 046cb32f0..b61171f11 100644 --- a/docs/checks/syntax/_index.md +++ b/docs/checks/syntax/_index.md @@ -4,11 +4,11 @@ title: Template Syntax The \*-syntax options can be used to customize the plugin output. -Here is a list of available syntax options which are common for all check plugins. +Here is a list of available syntax options which are common to all check plugins. | Option | Description | | --------------- | ----------- | -| `top-syntax` | Top level syntax | +| `top-syntax` | Top-level syntax | | `ok-syntax` | Ok syntax | | `empty-syntax` | Template syntax used when no item matches a filter. | | `detail-syntax` | Detailed syntax for list items. | @@ -21,7 +21,7 @@ Templates may contain text, conditionals and macros. Macros can be used to access attributes of the current check. The form is the same as used in the config file (snclient.ini) -The macro syntax is explained in detail the [macro section](../../configuration/#macros) of +The macro syntax is explained in detail in the [macro section](../../configuration/#macros) of the configuration page. Supported macro variants: @@ -38,14 +38,14 @@ check_memory 'detail-syntax=%(type) = %(used)/%(size) (%(used_pct)%)' All macros can also make use of [macro operators](../../configuration/#macro-operators). -For example, the default output applies floating point format to make the output more readable: +For example, the default output applies floating-point formatting to make the output more readable: ```bash check_memory 'detail-syntax=%(type) = %(used)/%(size) (%(used_pct | fmt=%.1f)%)' ``` -The list of available macros for each check is available in the help page of each check. -Another way is to run the check with `-vv` verbose mode, which prints the list details +Each check's help page lists its available macros. +Another way is to run the check in verbose mode using `-vv`, which prints the list details as well. ### Conditionals @@ -65,7 +65,7 @@ check_service \ show-all ``` -That way, in case of errors a useful message can be displayed and performance details otherwise. +This displays a useful message when an error occurs, and performance details otherwise. For better readability, here is the template again in multiple lines: diff --git a/docs/compatibility/_index.md b/docs/compatibility/_index.md index 9add7f6df..d260d5789 100644 --- a/docs/compatibility/_index.md +++ b/docs/compatibility/_index.md @@ -3,11 +3,10 @@ title: Compatibility linkTitle: Compatibility --- -SNClient tries hard to be backwards compatible with the NSClient++, however -there are a couple of things different. Some things which seemed useful and do -no harm, others do not make sense anymore. +SNClient aims to remain compatible with NSClient++, but some behavior differs. +Useful features have been retained, while others are no longer supported. -So here is a list of things different to NSClient++. +The differences are listed below. ## Configuration @@ -42,14 +41,14 @@ is the same as NodeExporterServer = enabled ``` -If the later setting in the specific category exists, it will always override the +If the latter setting in the specific category exists, it will always override the value from the modules section. ### Includes -The SNClient supports including configuration files, either from a local folder or by https. +The SNClient supports including configuration files, either from a local folder or over HTTPS. -This helps keeping your configuration organized. Best practice is to keep the +This helps keep your configuration organized. Best practice is to keep the default configuration as it is and override custom values from a separate new file. @@ -71,10 +70,10 @@ Read more about includes on the [configuration page](../configuration/#includes) ![Feature](../icons/feature.png "this is a new thing in SNClient") -SNClient supports standard monitoring-plugins compatible performance data as +SNClient supports performance data compatible with the Monitoring Plugins guidelines as described in [the official plugin developer guidelines](https://www.monitoring-plugins.org/doc/guidelines.html#AEN201). -In addition to standard thresholds, SNClient added support for ranges, ex.: `10:20` or `@10:20`. +In addition to standard thresholds, SNClient added support for ranges, for example: `10:20` or `@10:20`. See examples here: [threshold format](https://www.monitoring-plugins.org/doc/guidelines.html#THRESHOLDFORMAT) @@ -87,7 +86,7 @@ Previous releases did not fully support those ranges. ![Change](../icons/changed.png "this is different in SNClient") -All bytes related performance data uses bytes in the performance data now. +All byte-related performance data is now reported in bytes. ### SI Units @@ -111,7 +110,7 @@ in order and only the first match is applied. A detailed description can be found on the [performance configuration page](../checks/perfconfig/). -SNClients perf-config has an additional `magic` option to apply a magic factor. +SNClient's perf-config has an additional `magic` option to apply a magic factor. ## Allow Arguments Handling @@ -120,14 +119,14 @@ SNClients perf-config has an additional `magic` option to apply a magic factor. SNClient allows arguments from alias definitions, even if `allow arguments` is not allowed. Only additional arguments are not allowed in this case. -Ex.: this works, even with `allow arguments` disabled. +For example: this works, even with `allow arguments` disabled. ```ini [/settings/external scripts/alias] alias_test = check_cpu warn=load=80 crit=load=90 ``` -When enabling arguments, make sure using quoted arguments like `$ARGS"$`. Using unquoted +When enabling arguments, make sure to use quoted arguments like `$ARGS"$`. Using unquoted arguments leads to command injection vulnerabilities. ## Allow Nasty Characters Handling @@ -136,7 +135,7 @@ arguments leads to command injection vulnerabilities. In addition to the existing characters, SNClient does not allow the `$`, `;` and newline characters. -The list of not allowed nasty characters is therefore: +The list of disallowed characters is therefore: ```txt $|`&><'"\[]{};\n\r @@ -150,13 +149,13 @@ nasty characters = $|`&><'"\\[]{};\n\r ``` It is not advised to remove any of the default characters. Each of them is there -for a reason and removing might lead to command injection vulnerabilities. +for a reason and removing them might lead to command injection vulnerabilities. ## Allow Control Characters Handling ![Feature](../icons/feature.png "this is a new thing in SNClient") -In addition to the existing nasty characters, SNClient does not allow ascii control characters. +In addition to the existing nasty characters, SNClient does not allow ASCII control characters. Change the default value with the `allow control characters` configuration option if you need to. @@ -176,18 +175,18 @@ of it as well. ![Change](../icons/changed.png "this is different in SNClient") -The tls configuration has been simplified. Instead of setting specific ciphers, you can now set a -minimum required tls version. +The TLS configuration has been simplified. Instead of setting specific ciphers, you can now set a +minimum required TLS version. -ex.: +For example: ```ini [/settings/default] tls min version = "tls1.3" ``` -Allowing tls 1.2 or higher (default) disables known insecure ciphers. Allowing -tls lower than 1.2 enables all ciphers (even the insecure ones). +Allowing TLS 1.2 or higher (default) disables known insecure ciphers. Allowing +TLS lower than 1.2 enables all ciphers (even the insecure ones). The list of ciphers can be found on [go.dev](https://pkg.go.dev/crypto/tls#pkg-constants). @@ -219,7 +218,7 @@ Check specific changes and enhancements: ![Change](../icons/changed.png "this is different in SNClient") -The `check_drivesize` handles multiple drives different if some are not available. SNClient requires all specified paths to exist. +The `check_drivesize` handles multiple drives differently if some are not available. SNClient requires all specified paths to exist. Example: @@ -253,7 +252,7 @@ check_files path=c:/windows warn=size>2MB max-depth=1 timezone=Europe/Berlin ![Change](../icons/changed.png "this is different in SNClient") -The `check_process` behaves a bit different when checking for not running processes. +The `check_process` behaves differently when checking for processes that are not running. ```bash check_process process=noneexisting.exe crit="state = 'started'" empty-state=0 @@ -267,7 +266,7 @@ case there is a process, the normal critical expression will be used. ![Feature](../icons/feature.png "this is a new thing in SNClient") -The `check_service` adds memory and cpu metrics if the service is running. +The `check_service` adds memory and CPU metrics if the service is running. ```bash check_service service=snclient diff --git a/docs/configuration/_index.md b/docs/configuration/_index.md index 2bb8ad82f..a562330bd 100644 --- a/docs/configuration/_index.md +++ b/docs/configuration/_index.md @@ -5,7 +5,7 @@ linkTitle: Configuration ## General -SNClient uses the ini style config format with some enhancements, ([see syntax specification below](#syntax)). +SNClient uses the INI-style configuration format with some enhancements ([see syntax specification below](#syntax)). The default configuration is explained in the [packaging file](https://github.com/ConSol-Monitoring/snclient/blob/main/packaging/snclient.ini). @@ -15,7 +15,7 @@ By default SNClient searches for a `snclient.ini` in the following folders: - `./snclient.ini` (current folder) - `/etc/snclient/snclient.ini` -- `${exe-path}/snclient.ini` (this is `C:\Program Files\snclient\snclient.ini` on windows) +- `${exe-path}/snclient.ini` (this is `C:\Program Files\snclient\snclient.ini` on Windows) ## Custom Configuration @@ -27,7 +27,7 @@ in a separate file has a couple of advantages. - clean separation of upstream and user configuration. - no need to walk through the whole default configuration to see what has been customized. -Best practice is to create a file `snclient_local.ini`, ex.: like this: +Best practice is to create a `snclient_local.ini` file, for example: ```ini [/modules] @@ -50,19 +50,19 @@ The location for a custom file would be: `/etc/snclient/snclient_local.ini` ## Syntax -The configuration uses the ini file format. For example: +The configuration uses the INI file format. For example: ```ini [/settings/default] allowed hosts = 127.0.0.1, ::1 ``` -The maximum length of a single line in the ini file is limited to 1MB. +The maximum length of a single line in the INI file is limited to 1MB. ### Comments -Lines starting with `#` or `;` are comments and ignored. You can use -both characters as value. +Lines starting with `#` or `;` are treated as comments and ignored. You can use +both characters in values. ```ini [/settings/external scripts] @@ -117,9 +117,9 @@ add a comma. (Starting with v0.38 this will be done automatically) ## Inheritance -The configuration is splitted into multiple sections, but in order to +The configuration is split into multiple sections, but in order to avoid having duplicate password or allowed hosts entries, inheritance can -be used to only specify central things once. +be used to define shared settings only once. ```ini [/settings/sub1/other] @@ -138,8 +138,8 @@ key = value key = value ``` -Each section inherits values from it's default section, -from parent sections and parents defaults section. +Each section inherits values from its default section, +from parent sections and their default sections. This is the order of inheritance for the example above: @@ -152,9 +152,9 @@ The first defined value will be used. ## Includes -It is possible and encouraged to include other ini files to organize your settings. +It is possible and encouraged to include other INI files to organize your settings. -Includes can either be local files or http(s) urls to load remote configuration files. +Includes can either be local files or HTTP(S) URLs to load remote configuration files. ### Local Includes @@ -167,8 +167,8 @@ local = snclient_local*.ini ### HTTPS Includes -Besides that it is possible to use https urls to use central managed configuration -files. It is recommended to use https links and use some sort of authentication. +HTTPS URLs can also be used to load centrally managed configuration +files. It is recommended to use HTTPS links and use some sort of authentication. The simple way: @@ -178,7 +178,7 @@ remote = https://user:password@central.company/snclient/default.ini ``` If you want to configure more details, create a new section for each include and -adjust all default http client options: +adjust all default HTTP client options: ```ini [/includes/company] @@ -191,18 +191,18 @@ url = https://central.company/snclient/default.ini #certificate key = client1.key # private key for client certificate ``` -The http include will be locally cached, so SNClient will still start, even if the -remove server is temporarily not available. The agent will try to update the include +The HTTP include will be locally cached, so SNClient will still start, even if the +remote server is temporarily not available. The agent will try to update the include on reload and daemon startup. The SNClient will not try to update the include -for simple commands, ex.: snclient run ... or snclient hash unless the include +for simple commands, such as `snclient run ...` or `snclient hash`, unless the include has never been downloaded. -In case the include cannot be download and no local cache is present, the agent +In case the include cannot be downloaded and no local cache is present, the agent will refuse to start. ## Macros -Macros can be used in the ini file configuration to access path variables. +Macros can be used in the INI file configuration to access path variables. Supported macro variants: @@ -223,18 +223,18 @@ List of available macros: | `${exe-file}` | snclient or snclient.exe | Basename of executable | | `${exe-full}` | /usr/bin/snclient | Full path to executable | | `${exe-path}` | /usr/bin or c:\Program Files\snclient | Directory of executable | -| `${file-ext}` | .exe or empty | File extension of agents executable file | -| `${goarch}` | x86_64, aarch64, i386, ... | The value of Golangs runtime.GOARCH | -| `${goos}` | linux, windows, darwin, ... | The value of Golangs runtime.GOOS | +| `${file-ext}` | .exe or empty | File extension of agent's executable file | +| `${goarch}` | x86_64, aarch64, i386, ... | The value of Go's runtime.GOARCH | +| `${goos}` | linux, windows, darwin, ... | The value of Go's runtime.GOOS | | `${hostname}` | machine.local | Name of the host running the agent | | `${pkgarch}` | amd64, arm64, 386, ... | Architecture as used in package file names | | `${scripts}` | usually `${shared-path}/scripts` | Directory of script files (set by snclient.ini) | | `${shared-path}` | /etc/snclient or c:\Program Files\snclient | Directory of shared files (set by snclient.ini) | -## On Demand Macros +## On-Demand Macros Besides the path macros, you can access and reference any configuration value -with on demand macros: +with on-demand macros: - `${/settings/section/attribute}` - `%(/settings/section/attribute)` @@ -247,14 +247,14 @@ webserver component: alias_allowed_hosts = check_dummy 0 "weballowed:${/settings/WEB/server/allowed hosts}" ``` -On demand macros are only available during the initial config parsing and will +On-demand macros are only available during the initial config parsing and will not be used for plugin arguments for security reasons. ## Macro Operators -The list of available macro operators is defined [here](../checks/macros/) +The list of available macro operators is defined [here](../checks/macros/). -For example, to define a dummy command which prints the hostname in lower case letters: +For example, to define a dummy command which prints the hostname in lowercase letters: ```ini [/settings/external scripts/alias] diff --git a/docs/install/_index.md b/docs/install/_index.md index 383ab19eb..c3aff5062 100644 --- a/docs/install/_index.md +++ b/docs/install/_index.md @@ -6,13 +6,13 @@ weight: 400 ## Installation -There is a OS specific installation documentation available for: +OS-specific installation instructions are available for: - [Windows](windows) - [RHEL/Rocky/Alma](rhel) - [Debian/Ubuntu](debian) - [Arch Linux](archlinux) -- [Mac OSX](osx) +- [macOS](osx) ## Using Binary Packages @@ -31,23 +31,23 @@ You might need to expand the assets to find the download links. ### Development Snapshots -During development each code commit produces build artifacts if all tests were +During development, each code commit produces build artifacts if all tests were successful. -Usually you should stick to the stable releases unless told otherwise or you want +Usually, you should stick to the stable releases unless told otherwise or you want to test something. -Installing the development snapshot is straight forward: +Installing the development snapshot is straightforward: -1. Open the [SNClient Github Actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml?query=branch%3Amain) page -2. Choose first green build like in +1. Open the [SNClient GitHub Actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml?query=branch%3Amain) page +2. Choose the first successful build, as shown below: ![Actions](actions.png "Choose latest green build") 3. Scroll down and choose the download which matches your architecture: ![Actions](action_download.png "Choose download") 4. Install just like the stable release files. -**Note:** In order to download the snapshot artifacts, you need a github account you must be logged in. +**Note:** In order to download the snapshot artifacts, you need a GitHub account and must be logged in. ## Building SNClient From Source -Building snclient from source is covered in detail here: [Building from source](build) +Building SNClient from source is covered in detail here: [Building from source](build) diff --git a/docs/install/archlinux/_index.md b/docs/install/archlinux/_index.md index dd3394d72..34dabd55b 100644 --- a/docs/install/archlinux/_index.md +++ b/docs/install/archlinux/_index.md @@ -42,6 +42,6 @@ The firewall should be configured to allow these ports: ## Uninstall -Uninstall is available with `pacman`. +Uninstall SNClient using `pacman`. #> pacman -R snclient diff --git a/docs/install/build.md b/docs/install/build.md index 7677e3fa5..d213115d4 100644 --- a/docs/install/build.md +++ b/docs/install/build.md @@ -6,12 +6,12 @@ linkTitle: From Source ## Requirements -- golang -- openssl +- Go +- OpenSSL - make - help2man -## Building Binary +## Building the Binary %> git clone https://github.com/Consol-Monitoring/snclient %> cd snclient @@ -23,11 +23,11 @@ binary file is in the current folder. ### Building RPMs -Building RPM packages is available with the `make rpm` target: +Build RPM packages using the `make rpm` target: %> make rpm -You will need those extra requirements: +You will need these additional dependencies: - rpm-build - help2man @@ -35,52 +35,52 @@ You will need those extra requirements: ### Debian/Ubuntu -Building Debian packages is available with the `make deb` target: +Build Debian packages using the `make deb` target: %> make deb -You will need those extra requirements: +You will need these additional dependencies: - dpkg - help2man - devscripts - (lintian) -### OSX PKG +### macOS PKG -Building OSX packages is available with the `make osx` target: +Build macOS packages using the `make osx` target: %> make osx -You will need those extra requirements: +You will need these additional dependencies: - Xcode -- help2man (for ex. from homebrew) +- help2man (for example, from Homebrew) ### Windows MSI Building a .msi installer package involves a couple of extra steps. -The package content will be prepared on a linux host and the final -msi package will then be build on windows host. +The package contents are prepared on a Linux host, and the final +MSI package is then built on a Windows host. #### Prepare Windist Folder First you need to prepare a `windist` folder. This can be done on any -linux machine by running `make windist`. +Linux machine by running `make windist`. -This are the requirements on your linux host: +These are the requirements on your Linux host: -- golang -- openssl +- Go +- OpenSSL - make -Then build the binary. For example for a 64bit binary run `make build-windows-amd64` -for a i386 32bit binary use `make build-windows-i386` +Then build the binary. For a 64-bit binary, run `make build-windows-amd64`; +for an i386 32-bit binary, use `make build-windows-i386`. -Then move the resulting .exe file into the windist folder and rename to `snclient.exe` +Then move the resulting .exe file into the windist folder and rename it to `snclient.exe`. -You now should have a folder looking like this: +You should now have a folder looking like this: %> ls -la windist/ -rw-r--r-- 1 user group 2041 Jul 18 09:30 cacert.pem @@ -89,7 +89,7 @@ You now should have a folder looking like this: -rwxr-xr-x 1 user group 14193152 Jul 18 09:37 snclient.exe -rw-r--r-- 1 user group 9394 Jul 18 09:30 snclient.ini -Get current version information, it will be required for the next step: +Get the current version information; it will be required for the next step: %> ./buildtools/get_version 0.04.0033 @@ -99,12 +99,12 @@ Get current version information, it will be required for the next step: #### Build MSI -This are the requirements on your windows host: +These are the requirements on your Windows host: -- .net framework 3.5 ([download link](https://download.microsoft.com/download/0/6/1/061F001C-8752-4600-A198-53214C69B51F/dotnetfx35setup.exe)) -- wix toolset (3.x) ([download link](https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314.exe)) +- .NET Framework 3.5 ([download link](https://download.microsoft.com/download/0/6/1/061F001C-8752-4600-A198-53214C69B51F/dotnetfx35setup.exe)) +- WiX Toolset (3.x) ([download link](https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314.exe)) -Then build the msi like this using the version information (without leading zeros) from the previous step: +Then build the MSI package like this using the version information (without leading zeros) from the previous step: & .\packaging\windows\build_msi.ps1 ` -out "snclient.msi" ` @@ -114,7 +114,7 @@ Then build the msi like this using the version information (without leading zero -rev "33" ` -sha "5a30697" -The architecture can either be: +The architecture can be either: -- `386` for 32bit i386 systems -- `amd64` for 64bit x86_64 systems +- `386` for 32-bit i386 systems +- `amd64` for 64-bit x86_64 systems diff --git a/docs/install/debian/_index.md b/docs/install/debian/_index.md index 6eaaa6205..10ec7ded9 100644 --- a/docs/install/debian/_index.md +++ b/docs/install/debian/_index.md @@ -10,13 +10,13 @@ weight: 300 Stable release installation packages can be found here: - [ConSol Software Repository](https://labs.consol.de/repo/stable/) (recommended) -- [Github Releases](https://github.com/ConSol-Monitoring/snclient/releases) +- [GitHub Releases](https://github.com/ConSol-Monitoring/snclient/releases) -Add the repository as described on the link itself. +Add the repository as described on the linked repository page. #> apt install snclient -![apt install snclient](apt.png "apt install snclient") +![apt install SNClient](apt.png "apt install snclient") ### Firewall @@ -28,6 +28,6 @@ The firewall should be configured to allow these ports: ## Uninstall -Uninstall is available possible with `apt`. +Uninstall SNClient using `apt`. #> apt remove snclient diff --git a/docs/install/osx/_index.md b/docs/install/osx/_index.md index 84c16ed2e..a3db24d8a 100644 --- a/docs/install/osx/_index.md +++ b/docs/install/osx/_index.md @@ -1,18 +1,18 @@ --- -linkTitle: OSX +linkTitle: macOS weight: 400 --- -# OSX +# macOS ## Installation Stable release installation packages can be found here: -- [Github Releases](https://github.com/ConSol-Monitoring/snclient/releases) +- [GitHub Releases](https://github.com/ConSol-Monitoring/snclient/releases) -Download the .pkg file from the releases page und start it. You might need to -open the system settings allow opening the package since it is not signed. +Download the .pkg file from the releases page and start it. You might need to +open System Settings and allow opening the package since it is not signed. ![system settings](osx-settings.png "osx system settings") @@ -30,6 +30,6 @@ The firewall should be configured to allow these ports: ## Uninstall -Uninstall is available possible with the uninstall shell script. +Uninstall SNClient using the uninstall shell script. %> sudo /usr/local/bin/snclient_uninstall.sh diff --git a/docs/install/rhel/_index.md b/docs/install/rhel/_index.md index d5d27d1fc..8c4f7c1d1 100644 --- a/docs/install/rhel/_index.md +++ b/docs/install/rhel/_index.md @@ -3,16 +3,16 @@ linkTitle: RHEL weight: 200 --- -# Redhat / Rocky / AlmaLinux +# Red Hat / Rocky / AlmaLinux ## Installation Stable release installation packages can be found here: - [ConSol Software Repository](https://labs.consol.de/repo/stable/) (recommended) -- [Github Releases](https://github.com/ConSol-Monitoring/snclient/releases) +- [GitHub Releases](https://github.com/ConSol-Monitoring/snclient/releases) -Add the repository as described on the link itself. +Add the repository as described on the linked repository page. #> dnf install snclient @@ -26,6 +26,6 @@ The firewall should be configured to allow these ports: ## Uninstall -Uninstall is available possible with `dnf`. +Uninstall SNClient using `dnf`. #> dnf remove snclient diff --git a/docs/install/supported.md b/docs/install/supported.md index 3be022628..3047a3543 100644 --- a/docs/install/supported.md +++ b/docs/install/supported.md @@ -8,10 +8,10 @@ We are trying to build the SNClient to be as compatible as possible. Due to limited hardware, we are not able to test the agent on all operating systems. If you are using SNClient anywhere not listed here, feel free to open an issue -on github to update this page. +on GitHub to update this page. -If there are no installer package for your system available for download, you might still succeed -by [building snclient from source](../build). +If no installer package is available for your system, you might still succeed +by [building SNClient from source](../build). ## CPU Architectures @@ -20,7 +20,7 @@ by [building snclient from source](../build). | **Linux** | X | X | X | | **Windows** | X | X | X | | **FreeBSD** | X | X | X | -| **MacOS** | | X | X | +| **macOS** | | X | X | ## Windows @@ -30,9 +30,9 @@ Successfully tested on: - Windows 11 - Windows Server 2019 - Windows ARM 11 Preview -- It should work on any windows newer than Windows 10 / Windows Server 2016. +- It should work on any Windows newer than Windows 10 / Windows Server 2016. -SNClients required Go (>= 1.23) does not support anything older than Windows 10 or Windows Server 2016. +The Go version required by SNClient (>= 1.23) does not support anything older than Windows 10 or Windows Server 2016. ## Linux @@ -41,7 +41,7 @@ Debian: - Debian >= 8 - Ubuntu >= 16.04 -RedHat: +Red Hat: - RHEL >= 7 @@ -51,9 +51,9 @@ Arch Linux: Others will quite likely work as well, but haven't been tested yet. -## Mac OSX / Darwin +## macOS / Darwin -- OSX >= 13 +- macOS >= 13 Others will quite likely work as well, but haven't been tested yet. @@ -65,5 +65,5 @@ Others will quite likely work as well, but haven't been tested yet. ## Other -Feel free to open an issue on github if you are running the agent somewhere not +Feel free to open an issue on GitHub if you are running the agent somewhere not listed here. diff --git a/docs/install/windows/_index.md b/docs/install/windows/_index.md index abac38590..8f9465b1d 100644 --- a/docs/install/windows/_index.md +++ b/docs/install/windows/_index.md @@ -17,8 +17,8 @@ Then start the .msi installer and follow the instructions. ### Firewall -The windows .msi package will add the firewall exceptions automatically. in -case you need to re-install the firewall exception, you can run this command: +The Windows .msi package will add the firewall exceptions automatically. If +you need to reinstall the firewall exceptions, you can run this command: C:\Program Files\snclient> .\snclient.exe install firewall @@ -32,44 +32,44 @@ Running the .msi installer manually lets you choose some basic options. The idea here is to set the ports, so the following firewall setup will know which ports to open. -All none basic options should go into a local custom ini file which can be +All additional options should go into a local custom INI file which can be provided during installation as well. -Installing the msi from the terminal with `msiexec.exe` provides those options -as public property. +Running the MSI installer from the terminal with `msiexec.exe` exposes these options +as public properties. -ex.: +For example: msiexec.exe /i snclient.msi /l*V snclient_installer.log /qn PASSWORD="test" INCLUDES="https://company.local/snclient_local.ini" -Installs the .msi and logs everything into the snclient_installer.log logfile. It -also sets the initial password and includes a ini file fetched by https. +This installs the MSI package and logs everything to the snclient_installer.log file. It +also sets the initial password and includes an INI file fetched over HTTPS. Here is a table of all available properties: | Property | Default Value | Description | | -------------------- | ------------------------- | ----------- | -| INSTALLDIR | C:\Program Files\snclient | Set custom install location. | +| INSTALLDIR | C:\Program Files\snclient | Set a custom install location. | | INCLUDES | | Adds include files to the /Includes section. | | ALLOWEDHOSTS | 127.0.0.1, ::1 | Sets the 'allowed hosts'. | -| PASSWORD | CHANGEME | Sets the password (will be written to the .ini encrytped). | +| PASSWORD | CHANGEME | Sets the password (will be written to the .ini encrypted). | | WEBSERVER | 1 | Enable/Disable the REST web server. | -| WEBSERVERPORT | 8443 | Set port for web server. | +| WEBSERVERPORT | 8443 | Set the port for web server. | | WEBSERVERSSL | 1 | Enable/Disable TLS/SSL for the web server. | | NRPESERVER | 0 | Enable/Disable the NRPE server. | -| NRPESERVERPORT | 5666 | Set port for NRPE server. | +| NRPESERVERPORT | 5666 | Set the port for NRPE server. | | NRPESERVERSSL | 1 | Enable/Disable TLS/SSL for the NRPE server. | | PROMETHEUSSERVER | 0 | Enable/Disable the Prometheus web server. | -| PROMETHEUSSERVERPORT | 9999 | Set port for prometheus web server. | +| PROMETHEUSSERVERPORT | 9999 | Set the port for the Prometheus web server. | | PROMETHEUSSERVERSSL | 0 | Enable/Disable TLS/SSL for the Prometheus web server. | -To install snclient into a custom folder automated, use the following command: +To install SNClient automatically into a custom folder, use the following command: msiexec.exe /i snclient.msi /qn INSTALLDIR="D:\Apps\snclient" ## Uninstall -Uninstall is available either by starting the `snclient.msi installer` again. If the installer has the same version as the -installed one, it will offer a uninstall` option. +To uninstall SNClient, run the `snclient.msi` installer again. If the installer has the same version as the +installed one, it will offer an uninstall option. -Another way is to use the `windows software center` and uninstall the agent from there. +Another way is to use the Windows software center and uninstall the agent from there. diff --git a/docs/prometheus/_index.md b/docs/prometheus/_index.md index ef2b00f7e..cb034e4a6 100644 --- a/docs/prometheus/_index.md +++ b/docs/prometheus/_index.md @@ -7,7 +7,7 @@ tags: - exporter --- -There are several prometheus integrations in SNClient. +There are several Prometheus integrations in SNClient. ## Overview @@ -19,20 +19,20 @@ There are several prometheus integrations in SNClient. ## Windows Exporter -When running SNClient on windows there is a builtin windows exporter. +When running SNClient on Windows there is a built-in Windows exporter. [Read more about the windows_exporter](windows). ## Node Exporter -When running SNClient on linux or osx there is a builtin node exporter. +When running SNClient on Linux or macOS there is a built-in node exporter. [Read more about the node_exporter](node). ## Managed Exporters Managed exporters are exporters started and managed by SNClient. They will get -a unique assigned url in the main webserver of SNClient. +a uniquely assigned URL in the main webserver of SNClient. [Read more about managed exporters](managed). @@ -45,7 +45,7 @@ The exporter exporter is for exporters not managed by SNClient. ## Metrics -SNClient itself is a prometheus exporter as well and provides some metrics +SNClient itself is a Prometheus exporter as well and provides some metrics about the agent process. It can be enabled in the modules section of the `snclient.ini`. @@ -60,4 +60,4 @@ use ssl = false password = ``` -You can then scrape prometheus metrics from `http://:9999/metrics`. +You can then scrape Prometheus metrics from `http://:9999/metrics`. diff --git a/docs/prometheus/exporter.md b/docs/prometheus/exporter.md index 5c9962dc0..a56270439 100644 --- a/docs/prometheus/exporter.md +++ b/docs/prometheus/exporter.md @@ -7,7 +7,7 @@ tags: - exporter --- -The exporter exporter is a simple reverse proxy for prometheus exporters not +The exporter exporter is a simple reverse proxy for Prometheus exporters not managed by SNClient. It makes multiple exporters accessible via a single proxy url. @@ -32,13 +32,13 @@ url prefix = / modules dir = ${shared-path}/exporter_modules ``` -The exporter uses the standard http settings with an additional `modules dir` to +The exporter uses the standard HTTP settings with an additional `modules dir` to configure the exported modules. -For compatibility reasons, the modules itself are in yaml format as described -on [github](https://github.com/QubitProducts/exporter_exporter#configuration). +For compatibility reasons, the modules themselves are in YAML format as described +on [GitHub](https://github.com/QubitProducts/exporter_exporter#configuration). -A simple http exporter module file could look like: +A simple HTTP exporter module file could look like this: exporter_modules/name.yaml: @@ -59,24 +59,24 @@ Using the default ports, you can test the exporter above with the command: The exporter provides the following endpoints: -- `/proxy`: used to query the exported exporter. Accepts these parameters: +- `/proxy`: used to query the selected exporter. Accepts these parameters: - `module`: use `?module=name` parameter to specify the exporter. - `args`: arguments for exec exporters. - - other arguments are passed through to http exporters. -- `/list`: list available exporter. + - other arguments are passed through to HTTP exporters. +- `/list`: list available exporters. ## Incompatibilities ### No Verification This module basically works the same as the standalone exporter exporter, except -it does not implement verification. Files and requests are passed through as is -and not checked if it contains valid prometheus metrics. +it does not implement verification. Files and requests are passed through unchanged, +without checking whether they contain valid Prometheus metrics. ### Changed Index Path Since this exporter exporter (optionally) shares the web server with the rest of -the SNClient, the `/` url path is in use already. The available exporter +the SNClient, the `/` URL path is in use already. The available exporter modules can therefore be requested with the `/list` path. ### No separate /metrics endpoint diff --git a/docs/prometheus/managed.md b/docs/prometheus/managed.md index ca73212ae..92e8c374e 100644 --- a/docs/prometheus/managed.md +++ b/docs/prometheus/managed.md @@ -8,7 +8,7 @@ tags: --- Managed exporters are exporters started and managed by SNClient. They will get -a unique assigned url in the main webserver of SNClient. +a uniquely assigned URL in the main webserver of SNClient. Enable the managed exporters in the modules section: @@ -27,10 +27,10 @@ agent path = c:\Program Files\prometheus/example_exporter.exe ; agent args - sets additional arguments for the node exporter agent args = --web.listen=127.0.0.1:9990 -; agent port - sets internal listen address (ex.: --web.listen-address=) +; agent address - sets internal listen address (ex.: --web.listen-address=) agent address = 127.0.0.1:9990 -; agent max memory - set a memory limit for the agent (agent will be restarted if the rss is higher, set to 0 to disabled) +; agent max memory - set a memory limit for the agent (agent will be restarted if the rss is higher, set to 0 to disable) ;agent max memory = 256M ; agent user - set user this agent should run as (requires root permissions) @@ -45,13 +45,13 @@ use ssl = ${/settings/WEB/server/use ssl} ; url prefix - set prefix to provided urls (/exportername) url prefix = /example -; url match - set pattern which will forwarded to the exporter (use * to forward all urls below the prefix) +; url match - set pattern that will be forwarded to the exporter (use * to forward all urls below the prefix) url match = /metrics ``` SNClient will then start the exporter automatically and will watch its memory usage. -The metrics can be scaped from `https://:8443/example/metrics`. +The metrics can be scraped from `https://:8443/example/metrics`. -By default only the `/metrics` url will be forwarded to the exporter. -In case the exporter uses a custom path, you have to adjust the url match -attribute or set it to `*` to simply passthrough all urls (under the `url prefix`). +By default only the `/metrics` URL will be forwarded to the exporter. +In case the exporter uses a custom path, you have to adjust the `url match` +attribute or set it to `*` to simply pass through all URLs (under the `url prefix`). diff --git a/docs/prometheus/node.md b/docs/prometheus/node.md index b3480c147..3739690fe 100644 --- a/docs/prometheus/node.md +++ b/docs/prometheus/node.md @@ -1,6 +1,6 @@ --- -title: Linux/OSX -linkTitle: Linux/OSX +title: Linux/macOS +linkTitle: Linux/macOS weight: 340 tags: - prometheus @@ -12,7 +12,7 @@ tags: ## Node Exporter -When running SNClient on linux or osx there is a builtin node exporter which can be +When running SNClient on Linux or macOS there is a built-in node exporter which can be enabled by: ```ini @@ -27,11 +27,11 @@ port = ${/settings/WEB/server/port} require password = false ``` -You can then scrape linux metrics from `http://:8443/node/metrics`. +You can then scrape Linux metrics from `http://:8443/node/metrics`. The node exporter will run as user `nobody` unless you set `agent user` otherwise. -The prometheus scrape config might look like this: +The Prometheus scrape config might look like this: ```yaml - job_name: 'node' @@ -50,5 +50,5 @@ The prometheus scrape config might look like this: - targets: [':8443'] ``` -SNClient will monitor the node exporter memory usage and restart the exporter if -it exceeds the `agent max memory`. The default is 256MB. +SNClient will monitor the node exporter's memory usage and restart the exporter if +it exceeds the `agent max memory` limit. The default is 256MB. diff --git a/docs/prometheus/windows.md b/docs/prometheus/windows.md index 851aeccd4..32447b221 100644 --- a/docs/prometheus/windows.md +++ b/docs/prometheus/windows.md @@ -11,7 +11,7 @@ tags: ## Windows Exporter -When running SNClient on windows there is a builtin windows exporter which can be +When running SNClient on Windows there is a built-in Windows exporter which can be enabled by: ```ini @@ -29,9 +29,9 @@ require password = false ;agent args = --collectors.enabled=[defaults],time,license ``` -You can then scrape windows metrics from `http://:8443/node/metrics`. +You can then scrape Windows metrics from `http://:8443/node/metrics`. -The prometheus scrape config might look like this: +The Prometheus scrape config might look like this: ```yaml - job_name: 'windows' @@ -50,5 +50,5 @@ The prometheus scrape config might look like this: - targets: [':8443'] ``` -SNClient will monitor the windows exporter memory usage and restart the exporter if -it exceeds the `agent max memory`. The default is 256MB. +SNClient will monitor the Windows exporter's memory usage and restart the exporter if +it exceeds the `agent max memory` limit. The default is 256MB. diff --git a/docs/security/_index.md b/docs/security/_index.md index 7630c1b51..c8fb545c3 100644 --- a/docs/security/_index.md +++ b/docs/security/_index.md @@ -6,12 +6,12 @@ weight: 600 ## General -SNClient is written in golang which comes which some benefits regarding security. +SNClient is written in Go, which offers several security benefits. - Native TLS/SSL Support - Since there are no external ssl/tls libraries, SNClient always comes with - latest TLS support even on legacy systems (if you regularly update SNClient). + Since there are no external TLS/SSL libraries, SNClient always comes with + the latest TLS support even on legacy systems (if you regularly update SNClient). - Strong Encryption and Security Standards @@ -26,8 +26,8 @@ SNClient is written in golang which comes which some benefits regarding security ## Code Signing -The windows builds (both snclient.exe and the .msi installer) and can be verified -with the signtool.exe from the windows developer sdk, ex.: +The Windows builds (both snclient.exe and the .msi installer) can be verified +with signtool.exe from the Windows SDK, for example: ```powershell signtool.exe verify /pa snclient.exe @@ -37,13 +37,13 @@ signtool.exe verify /pa snclient.exe ### Update Regularly -Always keep SNClient on the latest release version to benefit from security +Always keep SNClient on the latest release version to benefit from security fixes. See the [updates page](../updates/) for instructions. ### Use SSL -Use ssl/tls whenever possible. +Use TLS/SSL whenever possible. ```ini [/settings/default] @@ -53,15 +53,14 @@ use ssl = true ### HSTS Header SNClient supports sending HTTP Strict Transport Security (HSTS) headers. -This is disabled by default, since this addresses browser und human interaction +This is disabled by default, since this addresses browser and human interaction issues which usually do not apply to the SNClient scenarios. -The HSTS header tells browsers to automatically use HTTPS for all future connections -to the server, which is totally useless in SNClient context because it usually -won't be directly accessed from a browser. But this makes super smart penetration tests -happy. +The HSTS header tells browsers to automatically use HTTPS for future connections +to the server. SNClient is usually accessed by monitoring tools rather than browsers, +so this header generally has limited relevance. -So this can be enabled if it pops up during security auditions. Make sure you +You can enable it if required by a security audit. Make sure you use valid certificates before enabling it. The header is set to: @@ -84,7 +83,7 @@ use hsts header = false ### TLS 1.3 -If possible, set minimum required TLS version to 1.3. Since the number of +If possible, set the minimum required TLS version to 1.3. Since the number of clients is limited there is no need to support old browsers. ```ini @@ -95,11 +94,11 @@ tls min version = "tls1.3" ### Client certificate verification You can enable client certificate verification using `ca` or `client certificates` options -(both options has the same meaning, `ca` option was added for backward compatibility with NSclient). -You can find example how to generate certificates bellow. +(both options have the same meaning; the `ca` option was added for backward compatibility with NSClient++). +You can find an example of how to generate certificates below. -- `certificate` specify server certificate -- `certificate key` specify server key +- `certificate` specifies the server certificate +- `certificate key` specifies the server key - `ca` and/or `client certificates` specify the CA certificate for certificate verification and enable verification itself. ```ini @@ -179,7 +178,7 @@ be necessary in certain scenarios, read more in the [allow arguments](#allow-arg ### Allow Nasty Characters It is recommended to **not** enable `allow nasty characters` or `allow control -characters` as this allows to exploit existing commands. +characters` as this allows exploitation of existing commands. Removing some of the `nasty characters` is also not a good idea. Each of them is there for a reason and removing any of them probably allows command injection @@ -196,7 +195,7 @@ allow control characters = false Normally arguments for external commands are not allowed because they are forwarded to the shell which makes them easy to exploit. -When enabling arguments, make sure using quoted arguments like `$ARGS"$`. Using unquoted +When enabling arguments, make sure to use quoted arguments like `$ARGS"$`. Using unquoted arguments leads to command injection vulnerabilities. A better approach would be to use aliased commands. diff --git a/docs/updates/_index.md b/docs/updates/_index.md index deb26a28b..0ead33b74 100644 --- a/docs/updates/_index.md +++ b/docs/updates/_index.md @@ -17,12 +17,12 @@ Then install the file as described on the [install page](../install/). ### SNClient Automatic Updates -If possible, use the OS own solution to automatically install updates. -If not, SNClient can install periodic update itself. +If possible, use the operating system's own update mechanism to automatically install updates. +If not, SNClient can update itself periodically. Configuration: -Create or edit `/etc/snclient/snclient_local.ini` (on windows: `C:\Program Files\snclient\snclient_local.ini`) +Create or edit `/etc/snclient/snclient_local.ini` (on Windows: `C:\Program Files\snclient\snclient_local.ini`) ```ini [/settings/updates] @@ -32,7 +32,7 @@ automatic restart = enabled This will update SNClient to the latest stable release. -In case you want to use the development builds, ex. on test systems you can +If you want to use development builds, for example on test systems, you can add the dev channel as well. ```ini @@ -46,11 +46,11 @@ channel = stable,dev github token = GITHUB-TOKEN... ``` -In order to use the dev channel, you need to create a github token here: [github.com/settings/tokens](https://github.com/settings/tokens) +In order to use the dev channel, you need to create a GitHub token here: [github.com/settings/tokens](https://github.com/settings/tokens) Unfortunately it is not possible to download the build artifacts without a token. -**Note:** The SNClient self update works on linux, but cannot safely transfer the required capabilities. So it will +**Note:** The SNClient self-update works on Linux, but cannot safely transfer the required capabilities. So it will only fully work if you don't require any capabilities. ### Debian / Ubuntu @@ -81,6 +81,6 @@ And add: 0 * * * * /usr/bin/apt-get -qq update && /bin/bash -lc "/usr/bin/unattended-upgrade" -To install updates every full hour. +To install updates at the start of every hour. Or see the [wiki.debian.org](https://wiki.debian.org/UnattendedUpgrades) for other ways. diff --git a/packaging/RELEASE.md b/packaging/RELEASE.md index cea4eec75..e0eba00dc 100644 --- a/packaging/RELEASE.md +++ b/packaging/RELEASE.md @@ -1,24 +1,24 @@ ## Release -A new release can be build by following these steps: +A new release can be built by following these steps: -- Verify the test status is green on the [github actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml) page. +- Verify the test status is green on the [GitHub Actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml) page. - If not already there, add a `next:` entry to the changelog. - (ex.: as in git show b2e1b020ed462196670068034fdee87ee33814ac) + (For example, see `git show b2e1b020ed462196670068034fdee87ee33814ac`.) Then have a look at `git log` and add missing changes. - Run `make release` and choose a new version. Usually just increment the minor number unless there are breaking changes. -- Check `git log -1` and `git diff HEAD` if things look good. +- Review `git log -1` and `git diff HEAD` to check that everything looks correct. - Ex. the changelog should contain the current version tag now. + For example, the changelog should contain the current version tag now. - Push the release commit with `git push` and `git push --tags` -- Watch the github action build the release packages on the [github actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml) page. +- Monitor the GitHub Actions workflow that builds the release packages on the [GitHub Actions](https://github.com/ConSol-Monitoring/snclient/actions/workflows/builds.yml) page. - The one with the git tag will also create a draft release. So when the action - is ready, go to the [releases page](https://github.com/ConSol-Monitoring/snclient/releases) - and edit the last tag, scroll down and publish the release. + The one with the git tag will also create a draft release. So when the workflow + finishes, go to the [releases page](https://github.com/ConSol-Monitoring/snclient/releases) + and edit the draft for the latest tag, scroll down, and publish the release. From 1a46bf588eb56a71de95db49dd70115505b66ea9 Mon Sep 17 00:00:00 2001 From: lorenzg Date: Fri, 16 Oct 2026 18:58:36 +0200 Subject: [PATCH 2/4] more doc fixes --- docs/_index.md | 5 +- docs/checks/arguments/_index.md | 2 +- docs/checks/filter/_index.md | 2 +- docs/checks/macros/_index.md | 6 +- docs/getting-started/_index.md | 124 ++++++++++++++++++++++++++++++++ docs/prometheus/_index.md | 4 +- 6 files changed, 132 insertions(+), 11 deletions(-) create mode 100644 docs/getting-started/_index.md diff --git a/docs/_index.md b/docs/_index.md index 5f4bb89bf..70fd77250 100644 --- a/docs/_index.md +++ b/docs/_index.md @@ -13,8 +13,8 @@ tags: --- [![CICD Pipeline](https://github.com/Consol-Monitoring/snclient/actions/workflows/builds.yml/badge.svg?branch=main)](https://github.com/Consol-Monitoring/snclient/actions/workflows/builds.yml) -[![Downloads](https://img.shields.io/github/downloads/Consol-Monitoring/snclient/total?color=yellow)](https://github.com/Consol-Monitoring/snclient/releases) [![Latest Release](https://img.shields.io/github/v/release/Consol-Monitoring/snclient?sort=semver)](https://github.com/Consol-Monitoring/snclient/releases) +[![Downloads](https://img.shields.io/github/downloads/Consol-Monitoring/snclient/total?color=yellow)](https://github.com/Consol-Monitoring/snclient/releases) [![License](https://img.shields.io/github/license/Consol-Monitoring/snclient)](https://github.com/Consol-Monitoring/snclient/blob/main/LICENSE) [![IRC](https://img.shields.io/badge/IRC-libera.chat%2F%23snclient-blue)](https://web.libera.chat/?nick=Guest?#snclient) @@ -25,7 +25,8 @@ It was written from scratch in [Go](https://go.dev/) using today's state-of-the- It's available for Linux, Windows and macOS for i386, x86_64 and arm64 ([detailed list of supported operating systems](./install/supported/)). -Have a look at the [installation](./install/) page to get started. +Follow the [Getting Started](./getting-started/) guide to set up basic Windows monitoring with OMD and Naemon, +or see the [installation](./install/) page for all supported platforms. ## Nagios / Naemon and Prometheus diff --git a/docs/checks/arguments/_index.md b/docs/checks/arguments/_index.md index 06431f9a8..b46b5fe76 100644 --- a/docs/checks/arguments/_index.md +++ b/docs/checks/arguments/_index.md @@ -1,5 +1,5 @@ --- -title: Common Check Arguments +title: Common arguments --- | Option | Description | diff --git a/docs/checks/filter/_index.md b/docs/checks/filter/_index.md index 61aa303a3..028b0dfcc 100644 --- a/docs/checks/filter/_index.md +++ b/docs/checks/filter/_index.md @@ -1,5 +1,5 @@ --- -title: Filter +title: Filters --- Filters can be used to select specific objects from a result list. So if a filter diff --git a/docs/checks/macros/_index.md b/docs/checks/macros/_index.md index 2bed3214a..44c738c28 100644 --- a/docs/checks/macros/_index.md +++ b/docs/checks/macros/_index.md @@ -1,11 +1,7 @@ --- -title: Macros +title: Macro Operators --- -Macros can be used to modify raw SNClient values. - -## Macro Operators - Values can be altered by adding a colon-separated suffix. Supported operators are: diff --git a/docs/getting-started/_index.md b/docs/getting-started/_index.md new file mode 100644 index 000000000..fe14fa8d3 --- /dev/null +++ b/docs/getting-started/_index.md @@ -0,0 +1,124 @@ +--- +title: Getting Started +linkTitle: Getting Started +weight: 300 +--- + +This guide sets up basic Windows monitoring with SNClient for CPU usage, physical +memory usage, and drive C: disk usage. + +The recommended way is to use [OMD Labs](https://omd.consol.de/docs/omd/), which already includes +[Naemon](https://omd.consol.de/docs/naemon/), the [Thruk](https://omd.consol.de/docs/thruk/) web interface, and the `check_snclient` plugin. +Naemon uses this plugin to query the SNClient REST API over HTTPS. + +## Install SNClient on Windows + +Follow the [installation instructions](../install/), specifically the +[Windows installation](../install/windows/), to install the MSI package. +During installation: + +- Keep the REST web server enabled with HTTPS on port **8443**. +- Set a password and allow the IP address of your OMD monitoring server. +- Ensure the monitoring server can reach TCP port 8443 on the Windows host. + The MSI installer creates the Windows firewall exception. + +For example, run the following from an elevated command prompt in the directory +containing the downloaded MSI (replace its filename, IP address, and password): + +```bat +msiexec.exe /i snclient.msi ALLOWEDHOSTS="127.0.0.1,::1,192.0.2.10" PASSWORD="your-password" +``` + +Here, `192.0.2.10` is the monitoring server. The built-in CPU and disk checks are +enabled by default; no external scripts are needed for these checks. + +## Prepare OMD + +Install OMD Labs on a Linux monitoring server using the +[OMD installation instructions](https://omd.consol.de/docs/omd/#installation). +If you do not already have a site, create one and start it. + +Run the following Linux commands as the OMD site user. For an existing site, +switch to its user with `omd su ` instead. + +The plugin is located at `~/lib/monitoring-plugins/check_snclient`. Test the +connection, replacing `192.0.2.20` with the Windows host's address and using the +password you set during installation: + +```sh +~/lib/monitoring-plugins/check_snclient -k -p 'your-password' -u 'https://192.0.2.20:8443' +~/lib/monitoring-plugins/check_snclient -k -p 'your-password' -u 'https://192.0.2.20:8443' check_cpu +~/lib/monitoring-plugins/check_snclient -k -p 'your-password' -u 'https://192.0.2.20:8443' check_memory "type=physical" +~/lib/monitoring-plugins/check_snclient -k -p 'your-password' -u 'https://192.0.2.20:8443' check_drivesize "drive=C:\\" +``` + +The first command should report that the REST API is reachable. If it fails, +check the password, allowed hosts, and firewall settings before continuing. + +These examples use `-k` for the certificate shipped with SNClient, which skips +certificate verification. For verified TLS, configure a trusted server +certificate and remove `-k`; use the plugin's `-ca` option for a private CA. +See the [check_snclient options](../checks/plugins/check_snclient/) for details. + +## Configure Naemon + +Create `~/etc/naemon/conf.d/windows.cfg` with the following configuration. +Replace the address and password with the values used above. The example uses +the OMD `generic-host` and `generic-service` templates. In OMD, `$USER1$` points +to `~/lib/monitoring-plugins`. + +```text +define command { + command_name check_windows_snclient + command_line $USER1$/check_snclient -k -p '$_HOSTSNCLIENT_PASSWORD$' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ +} + +define host { + use generic-host + host_name windows-server + alias Windows Server + address 192.0.2.20 + _SNCLIENT_PASSWORD your-password + check_command check_windows_snclient +} + +define service { + use generic-service + host_name windows-server + service_description CPU + check_command check_windows_snclient!check_cpu!'warn=load > 80' 'crit=load > 90' +} + +define service { + use generic-service + host_name windows-server + service_description Memory + check_command check_windows_snclient!check_memory!type=physical 'warn=used > 80%' 'crit=used > 90%' +} + +define service { + use generic-service + host_name windows-server + service_description Drive C + check_command check_windows_snclient!check_drivesize!drive=C: 'warn=used > 80%' 'crit=used > 90%' +} +``` + +The host check tests REST API connectivity. The three services warn above 80% usage and become critical above 90%. + +Validate the configuration and, if validation succeeds, reload Naemon: + +```sh +naemon -v ~/etc/naemon/naemon.cfg +omd reload naemon +``` + +Open the site's Thruk interface at `https:////thruk/`. +After the first checks run, the `windows-server` host and its CPU, Memory, and +Drive C services should show their status and performance data. + +For more options, see [check_cpu](../checks/commands/check_cpu/), +[check_memory](../checks/commands/check_memory/), and +[check_drivesize](../checks/commands/check_drivesize/). + +A full list of available check commands of SNClient can be found [here](../checks/). diff --git a/docs/prometheus/_index.md b/docs/prometheus/_index.md index cb034e4a6..e03023cbd 100644 --- a/docs/prometheus/_index.md +++ b/docs/prometheus/_index.md @@ -11,8 +11,8 @@ There are several Prometheus integrations in SNClient. ## Overview -- [Builtin Windows Exporter](#windows-exporter) -- [Builtin Node Exporter](#node-exporter) +- [Built-in Windows Exporter](#windows-exporter) +- [Built-in Node Exporter](#node-exporter) - [Managed Exporters](#managed-exporters) - [ExporterExporter](#exporter-exporter) - [Prometheus Metrics of SNClient](#metrics) From e1156475be723e06db11b3c2f9d4f7f5e4d69417 Mon Sep 17 00:00:00 2001 From: lorenzg Date: Fri, 16 Oct 2026 19:22:28 +0200 Subject: [PATCH 3/4] change examples to check_snclient instead of nrpe --- docs/checks/commands/check_connections.md | 8 ++++---- docs/checks/commands/check_cpu.md | 8 ++++---- docs/checks/commands/check_cpu_utilization.md | 8 ++++---- docs/checks/commands/check_drive_io.md | 8 ++++---- docs/checks/commands/check_drivesize.md | 8 ++++---- docs/checks/commands/check_dummy.md | 8 ++++---- docs/checks/commands/check_eventlog.md | 8 ++++---- docs/checks/commands/check_files.md | 8 ++++---- docs/checks/commands/check_index.md | 8 ++++---- docs/checks/commands/check_kernel_stats.md | 8 ++++---- docs/checks/commands/check_load.md | 8 ++++---- docs/checks/commands/check_logfile.md | 8 ++++---- docs/checks/commands/check_mailq.md | 8 ++++---- docs/checks/commands/check_memory.md | 8 ++++---- docs/checks/commands/check_mount.md | 8 ++++---- docs/checks/commands/check_multi.md | 8 ++++---- docs/checks/commands/check_network.md | 8 ++++---- docs/checks/commands/check_ntp_offset.md | 8 ++++---- docs/checks/commands/check_omd.md | 8 ++++---- docs/checks/commands/check_os_updates.md | 8 ++++---- docs/checks/commands/check_os_version.md | 8 ++++---- docs/checks/commands/check_pagefile.md | 8 ++++---- docs/checks/commands/check_pdh.md | 8 ++++---- docs/checks/commands/check_ping.md | 8 ++++---- docs/checks/commands/check_process.md | 8 ++++---- docs/checks/commands/check_service_linux.md | 8 ++++---- docs/checks/commands/check_service_windows.md | 8 ++++---- docs/checks/commands/check_snclient_version.md | 8 ++++---- docs/checks/commands/check_swap_io.md | 8 ++++---- docs/checks/commands/check_tasksched.md | 8 ++++---- docs/checks/commands/check_temperature.md | 8 ++++---- docs/checks/commands/check_uptime.md | 8 ++++---- docs/checks/commands/check_wmi.md | 8 ++++---- docs/checks/plugins/check_dns.md | 8 ++++---- docs/checks/plugins/check_http.md | 8 ++++---- docs/checks/plugins/check_snclient.md | 8 ++++---- docs/checks/plugins/check_ssh.md | 8 ++++---- docs/checks/plugins/check_tcp.md | 8 ++++---- docs/getting-started/_index.md | 13 ++++++------- pkg/snclient/checkdata.go | 8 ++++---- 40 files changed, 162 insertions(+), 163 deletions(-) diff --git a/docs/checks/commands/check_connections.md b/docs/checks/commands/check_connections.md index 834ef416a..9c79e7e09 100644 --- a/docs/checks/commands/check_connections.md +++ b/docs/checks/commands/check_connections.md @@ -70,18 +70,18 @@ Check only ipv6 connections: check_connections inet=ipv6 OK - total ipv6 connections 13 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_connections use generic-service - check_command check_nrpe!check_connections!'warn=total > 500' 'crit=total > 1500' + check_command check_snclient!check_connections!'warn=total > 500' 'crit=total > 1500' } diff --git a/docs/checks/commands/check_cpu.md b/docs/checks/commands/check_cpu.md index 971a3d9e2..0c16331b0 100644 --- a/docs/checks/commands/check_cpu.md +++ b/docs/checks/commands/check_cpu.md @@ -63,18 +63,18 @@ Checking **each core** by adding filter=none (disabling the filter): check_cpu filter=none OK - CPU load is ok. |'core1 5m'=13%;80;90 'core1 1m'=12%;80;90 'core1 5s'=9%;80;90... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_cpu use generic-service - check_command check_nrpe!check_cpu!'warn=load > 80' 'crit=load > 95' + check_command check_snclient!check_cpu!'warn=load > 80' 'crit=load > 95' } diff --git a/docs/checks/commands/check_cpu_utilization.md b/docs/checks/commands/check_cpu_utilization.md index 5d251fa99..ef3856d58 100644 --- a/docs/checks/commands/check_cpu_utilization.md +++ b/docs/checks/commands/check_cpu_utilization.md @@ -58,18 +58,18 @@ these can be used in filters and thresholds (along with the default attributes): check_cpu_utilization OK - user: 2% - system: 1% - iowait: 0% - steal: 0% - guest: 0 - idle: 96% |'total'=3.4%;90;95;0; 'user'=2.11%;;;0;... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_cpu_utilization use generic-service - check_command check_nrpe!check_cpu_utilization!'warn=total > 90%' 'crit=total > 95%' + check_command check_snclient!check_cpu_utilization!'warn=total > 90%' 'crit=total > 95%' } diff --git a/docs/checks/commands/check_drive_io.md b/docs/checks/commands/check_drive_io.md index ef7049e3c..390ae6f7b 100644 --- a/docs/checks/commands/check_drive_io.md +++ b/docs/checks/commands/check_drive_io.md @@ -79,18 +79,18 @@ Check a UNIX drive and alert if for the last 30 seconds written bytes/second is check_drive_io lookback=30 warn="write_bytes_rate > 10Mb" OK - dm-0 >1.8 MiB/s/s <815.0 B/s/s 0.0%, sda1 >0 B/s/s <0 B/s/s 0.0% |'dm-0_read_count'=396738362c;;;0; 'dm-0_read_bytes'=33871348975616c;;;0; 'dm-0_read_time'=2990729692ms;;;0; 'dm-0_write_count'=624158141c;;;0; 'dm-0_write_bytes'=36083702012416c;;;0; 'dm-0_write_time'=1412729952ms;;;0; 'dm-0_utilization'=0%;95;;0; 'dm-0_io_time'=738627512ms;;;0; 'dm-0_weighted_io'=108492348;;;0; 'dm-0_iops_in_progress'=0;;;0; 'sda1_read_count'=3178c;;;0; 'sda1_read_bytes'=67430400c;;;0; 'sda1_read_time'=13572ms;;;0; 'sda1_write_count'=3193c;;;0; 'sda1_write_bytes'=282012672c;;;0; 'sda1_write_time'=9446ms;;;0; 'sda1_utilization'=0%;95;;0; 'sda1_io_time'=10832ms;;;0; 'sda1_weighted_io'=23019;;;0; 'sda1_iops_in_progress'=0;;;0; -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_drive_io use generic-service - check_command check_nrpe!check_drive_io! + check_command check_snclient!check_drive_io! } diff --git a/docs/checks/commands/check_drivesize.md b/docs/checks/commands/check_drivesize.md index b42d8c7d1..4718f0546 100644 --- a/docs/checks/commands/check_drivesize.md +++ b/docs/checks/commands/check_drivesize.md @@ -111,18 +111,18 @@ This check supports specifying different usage thresholds for each drive. Use '[ check_drivesize "drive=/" "drive=/tmp" "warn='/ used_pct' gt 70" "crit='/tmp used %' > 1" CRITICAL - / 428.040 GiB/935.929 GiB (45.7%), /tmp 471.496 MiB/31.127 GiB (1.5%) |'/ used'=459604856832B;;;0;1004946423808 '/ used %'=45.7%;70;;0;100 '/tmp used'=494399488B;;;0;33422544896 '/tmp used %'=1.5%;;1;0;100 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_drivesize use generic-service - check_command check_nrpe!check_drivesize!'warn=used_pct > 90' 'crit=used_pct > 95' + check_command check_snclient!check_drivesize!'warn=used_pct > 90' 'crit=used_pct > 95' } diff --git a/docs/checks/commands/check_dummy.md b/docs/checks/commands/check_dummy.md index 2971cab6a..0bba20d17 100644 --- a/docs/checks/commands/check_dummy.md +++ b/docs/checks/commands/check_dummy.md @@ -24,18 +24,18 @@ None check_dummy 0 some example output some example output -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_dummy use generic-service - check_command check_nrpe!check_dummy!0 'some example output' + check_command check_snclient!check_dummy!0 'some example output' } diff --git a/docs/checks/commands/check_eventlog.md b/docs/checks/commands/check_eventlog.md index 62332514c..a8f22a753 100755 --- a/docs/checks/commands/check_eventlog.md +++ b/docs/checks/commands/check_eventlog.md @@ -95,18 +95,18 @@ these can be used in filters and thresholds (along with the default attributes): check_eventlog "detail-syntax=%(id) %(uniqueindex)" "unique-index=0" WARNING - 4 message(s) warning(10010 Application-Microsoft-Windows-RestartManager-10010, 10016 System-Microsoft-Windows-DistributedCOM-10016, 6155 System-LsaSrv-6155, 6147 System-LsaSrv-6147) -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_eventlog use generic-service - check_command check_nrpe!check_eventlog!filter=provider = 'Microsoft-Windows-Security-SPP' and id = 903 and message like 'foo' + check_command check_snclient!check_eventlog!filter=provider = 'Microsoft-Windows-Security-SPP' and id = 903 and message like 'foo' } diff --git a/docs/checks/commands/check_files.md b/docs/checks/commands/check_files.md index 73a24f917..f55ad7f97 100644 --- a/docs/checks/commands/check_files.md +++ b/docs/checks/commands/check_files.md @@ -90,18 +90,18 @@ Check for folder size: check_files 'path=/tmp' 'warn=total_size > 200MiB' 'crit=total_size > 300MiB' OK - All 145 files are ok: (34.72 MiB) |'count'=145;;;0 'size'=36406741B;209715200;314572800;0 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_files use generic-service - check_command check_nrpe!check_files!'path=/tmp' 'filter=age > 3d' 'warn=count > 500' 'crit=count > 600' + check_command check_snclient!check_files!'path=/tmp' 'filter=age > 3d' 'warn=count > 500' 'crit=count > 600' } diff --git a/docs/checks/commands/check_index.md b/docs/checks/commands/check_index.md index dbf85a62a..1ba355f18 100644 --- a/docs/checks/commands/check_index.md +++ b/docs/checks/commands/check_index.md @@ -55,18 +55,18 @@ these can be used in filters and thresholds (along with the default attributes): check_index filter="implemented = 1" check_cpu... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_index use generic-service - check_command check_nrpe!check_index! + check_command check_snclient!check_index! } diff --git a/docs/checks/commands/check_kernel_stats.md b/docs/checks/commands/check_kernel_stats.md index 8f99043da..dc290ca08 100644 --- a/docs/checks/commands/check_kernel_stats.md +++ b/docs/checks/commands/check_kernel_stats.md @@ -54,18 +54,18 @@ these can be used in filters and thresholds (along with the default attributes): check_kernel_stats OK - Context Switches 29.2/s, Process Creations 12.7/s, Threads 2574 |'ctxt'=29.2/s 'processes'=12.7/s 'threads'=2574;8000;10000;0 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_kernel_stats use generic-service - check_command check_nrpe!check_kernel_stats! + check_command check_snclient!check_kernel_stats! } diff --git a/docs/checks/commands/check_load.md b/docs/checks/commands/check_load.md index 4f015bd45..497a68809 100644 --- a/docs/checks/commands/check_load.md +++ b/docs/checks/commands/check_load.md @@ -57,18 +57,18 @@ these can be used in filters and thresholds (along with the default attributes): check_load OK - total load average: 2.36, 1.26, 1.01 |'load1'=2.36;;;0 'load5'=1.26;;;0 'load15'=1.01;;;0 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_load use generic-service - check_command check_nrpe!check_load!'warn=load > 20' 'crit=load > 30' + check_command check_snclient!check_load!'warn=load > 20' 'crit=load > 30' } diff --git a/docs/checks/commands/check_logfile.md b/docs/checks/commands/check_logfile.md index e85463187..2b5ea8e64 100644 --- a/docs/checks/commands/check_logfile.md +++ b/docs/checks/commands/check_logfile.md @@ -77,18 +77,18 @@ Non-OK output example check_logfile files=/var/log/snclient/snclient.log "warn=line like 'Warn'" "crit=line like 'Error'" CRITICAL - 23/548 line(s) found -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_logfile use generic-service - check_command check_nrpe!check_logfile!'files=/var/log/snclient/snclient.log' "warn=line like 'Warn'" "crit=line like 'Error'" + check_command check_snclient!check_logfile!'files=/var/log/snclient/snclient.log' "warn=line like 'Warn'" "crit=line like 'Error'" } diff --git a/docs/checks/commands/check_mailq.md b/docs/checks/commands/check_mailq.md index afb9f2835..67b8fe58a 100644 --- a/docs/checks/commands/check_mailq.md +++ b/docs/checks/commands/check_mailq.md @@ -56,18 +56,18 @@ these can be used in filters and thresholds (along with the default attributes): check_mailq OK - postfix: active 0 / deferred 0 |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_mailq use generic-service - check_command check_nrpe!check_mailq!warn='active > 5 || deferred > 0' crit='active > 10 || deferred > 10' + check_command check_snclient!check_mailq!warn='active > 5 || deferred > 0' crit='active > 10 || deferred > 10' } diff --git a/docs/checks/commands/check_memory.md b/docs/checks/commands/check_memory.md index 06b9572d5..6b8d1e4e4 100644 --- a/docs/checks/commands/check_memory.md +++ b/docs/checks/commands/check_memory.md @@ -77,18 +77,18 @@ Changing the return syntax to get more information: check_memory 'top-syntax=${list}' 'detail-syntax=${type} free: ${free} used: ${used} size: ${size}' physical free: 35.00 B used: 7.01 GiB size: 31.09 GiB, committed free: 27.00 B used: 705.57 MiB size: 977.00 MiB |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_memory use generic-service - check_command check_nrpe!check_memory!'warn=used > 80%' 'crit=used > 90%' + check_command check_snclient!check_memory!'warn=used > 80%' 'crit=used > 90%' } diff --git a/docs/checks/commands/check_mount.md b/docs/checks/commands/check_mount.md index f5538f191..9905f8a9a 100644 --- a/docs/checks/commands/check_mount.md +++ b/docs/checks/commands/check_mount.md @@ -59,18 +59,18 @@ these can be used in filters and thresholds (along with the default attributes): check_mount mount=X: CRITICAL - mount X: not mounted -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_mount use generic-service - check_command check_nrpe!check_mount!'mount=/' 'options=rw,relatime' + check_command check_snclient!check_mount!'mount=/' 'options=rw,relatime' } diff --git a/docs/checks/commands/check_multi.md b/docs/checks/commands/check_multi.md index 0d160f95a..d1f5f1371 100644 --- a/docs/checks/commands/check_multi.md +++ b/docs/checks/commands/check_multi.md @@ -104,18 +104,18 @@ these can be used in filters and thresholds (along with the default attributes): [check_dummy1] OK [check_dummy2] CRITICAL -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_multi use generic-service - check_command check_nrpe!check_multi!"command[check_cpu]=check_cpu" "command[check_memory]=check_memory" + check_command check_snclient!check_multi!"command[check_cpu]=check_cpu" "command[check_memory]=check_memory" } diff --git a/docs/checks/commands/check_network.md b/docs/checks/commands/check_network.md index fa156cf63..4dfacdf70 100644 --- a/docs/checks/commands/check_network.md +++ b/docs/checks/commands/check_network.md @@ -68,18 +68,18 @@ these can be used in filters and thresholds (along with the default attributes): check_network device=eth0 OK - eth0 >12 kB/s <28 kB/s |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_network use generic-service - check_command check_nrpe!check_network! + check_command check_snclient!check_network! } diff --git a/docs/checks/commands/check_ntp_offset.md b/docs/checks/commands/check_ntp_offset.md index 83f90771b..e272ef7e8 100644 --- a/docs/checks/commands/check_ntp_offset.md +++ b/docs/checks/commands/check_ntp_offset.md @@ -57,18 +57,18 @@ these can be used in filters and thresholds (along with the default attributes): check_ntp_offset OK - offset 2.1ms from 1.2.3.4 (debian.pool.ntp.org) |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_ntp_offset use generic-service - check_command check_nrpe!check_ntp_offset!'warn=offset > 50 || offset < -50' 'crit=offset > 100 || offset < -100' + check_command check_snclient!check_ntp_offset!'warn=offset > 50 || offset < -50' 'crit=offset > 100 || offset < -100' } diff --git a/docs/checks/commands/check_omd.md b/docs/checks/commands/check_omd.md index 89b40c81a..07ef4e43e 100644 --- a/docs/checks/commands/check_omd.md +++ b/docs/checks/commands/check_omd.md @@ -62,18 +62,18 @@ Check **specific** site by site filter: check_omd site=demo OK - site demo: running |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_omd use generic-service - check_command check_nrpe!check_omd! + check_command check_snclient!check_omd! } diff --git a/docs/checks/commands/check_os_updates.md b/docs/checks/commands/check_os_updates.md index 0b4efa035..390c54eb3 100644 --- a/docs/checks/commands/check_os_updates.md +++ b/docs/checks/commands/check_os_updates.md @@ -68,18 +68,18 @@ otherwise an incomplete repository set could be reported as having no updates. Use **--max-metadata-age** to make the check return **UNKNOWN** if the repository metadata has not been refreshed within the given duration, e.g. --max-metadata-age=24h -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_os_updates use generic-service - check_command check_nrpe!check_os_updates!warn='count > 0' crit='count_security > 0' + check_command check_snclient!check_os_updates!warn='count > 0' crit='count_security > 0' } diff --git a/docs/checks/commands/check_os_version.md b/docs/checks/commands/check_os_version.md index 5cfe0b42f..2df24eab6 100644 --- a/docs/checks/commands/check_os_version.md +++ b/docs/checks/commands/check_os_version.md @@ -53,18 +53,18 @@ these can be used in filters and thresholds (along with the default attributes): check_os_version OK - Microsoft Windows 10 Pro 10.0.19045.2728 Build 19045.2728 (arch: amd64) -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_os_version use generic-service - check_command check_nrpe!check_os_version! + check_command check_snclient!check_os_version! } diff --git a/docs/checks/commands/check_pagefile.md b/docs/checks/commands/check_pagefile.md index 085a28e57..a87369d0c 100644 --- a/docs/checks/commands/check_pagefile.md +++ b/docs/checks/commands/check_pagefile.md @@ -60,18 +60,18 @@ these can be used in filters and thresholds (along with the default attributes): check_pagefile OK - total 39.10 MiB/671.39 MiB (5.8%) |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_pagefile use generic-service - check_command check_nrpe!check_pagefile!'warn=used > 80%' 'crit=used > 95%' + check_command check_snclient!check_pagefile!'warn=used > 80%' 'crit=used > 95%' } diff --git a/docs/checks/commands/check_pdh.md b/docs/checks/commands/check_pdh.md index f1fb56b14..c5ad88a54 100644 --- a/docs/checks/commands/check_pdh.md +++ b/docs/checks/commands/check_pdh.md @@ -44,18 +44,18 @@ these can be used in filters and thresholds (along with the default attributes): check_pdh "counter=\System\System Up Time" "warn=value < 60" "crit=value < 30" english OK - All 1 counter values are ok |'\System\System Up Time_value'=3600;60:;30:;0 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_pdh use generic-service - check_command check_nrpe!check_pdh!'counter=\System\System Up Time' 'warn=value < 60' 'crit=value < 30' english + check_command check_snclient!check_pdh!'counter=\System\System Up Time' 'warn=value < 60' 'crit=value < 30' english } diff --git a/docs/checks/commands/check_ping.md b/docs/checks/commands/check_ping.md index 71d963bc5..650d87bb3 100644 --- a/docs/checks/commands/check_ping.md +++ b/docs/checks/commands/check_ping.md @@ -60,18 +60,18 @@ these can be used in filters and thresholds (along with the default attributes): check_ping host=localhost OK - Packet loss = 0%, RTA = 0.113ms |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_ping use generic-service - check_command check_nrpe!check_ping!'host=localhost' 'warn=rta > 1000 || pl > 30' 'crit=rta > 5000 || pl > 80' + check_command check_snclient!check_ping!'host=localhost' 'warn=rta > 1000 || pl > 30' 'crit=rta > 5000 || pl > 80' } diff --git a/docs/checks/commands/check_process.md b/docs/checks/commands/check_process.md index 203503133..635b34ffc 100644 --- a/docs/checks/commands/check_process.md +++ b/docs/checks/commands/check_process.md @@ -92,18 +92,18 @@ In case you want to check if a given process is NOT running use something like: check_process process=must_not_run.exe 'crit=count>0' warn=none OK - no processes found with this filter. -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_process use generic-service - check_command check_nrpe!check_process!warn='count <= 0 || count > 10' crit='count <= 0 || count > 20' + check_command check_snclient!check_process!warn='count <= 0 || count > 10' crit='count <= 0 || count > 20' } diff --git a/docs/checks/commands/check_service_linux.md b/docs/checks/commands/check_service_linux.md index 4a08dfcd0..085758070 100644 --- a/docs/checks/commands/check_service_linux.md +++ b/docs/checks/commands/check_service_linux.md @@ -77,18 +77,18 @@ Check memory usage of specific service: check_service service=docker warn='rss > 1GB' crit='rss > 2GB' OK - All 1 service(s) are ok. |'docker'=4 'docker rss'=59691008B;;;0 'docker vms'=3166244864B;;;0 'docker cpu'=0.7%;;;0 'docker tasks'=20;;;0 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_service use generic-service - check_command check_nrpe!check_service!service=docker + check_command check_snclient!check_service!service=docker } diff --git a/docs/checks/commands/check_service_windows.md b/docs/checks/commands/check_service_windows.md index 65b1529b6..26f2a5c07 100755 --- a/docs/checks/commands/check_service_windows.md +++ b/docs/checks/commands/check_service_windows.md @@ -75,18 +75,18 @@ Checking a single service: check_service service=dhcp OK - All 1 service(s) are ok. -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_service use generic-service - check_command check_nrpe!check_service!service=dhcp + check_command check_snclient!check_service!service=dhcp } diff --git a/docs/checks/commands/check_snclient_version.md b/docs/checks/commands/check_snclient_version.md index 418f9b928..e9927e8db 100644 --- a/docs/checks/commands/check_snclient_version.md +++ b/docs/checks/commands/check_snclient_version.md @@ -50,18 +50,18 @@ these can be used in filters and thresholds (along with the default attributes): There is an alias 'check_nscp_version' for this command. -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_snclient_version use generic-service - check_command check_nrpe!check_snclient_version! + check_command check_snclient!check_snclient_version! } diff --git a/docs/checks/commands/check_swap_io.md b/docs/checks/commands/check_swap_io.md index ae28d7b73..a36dc81a0 100644 --- a/docs/checks/commands/check_swap_io.md +++ b/docs/checks/commands/check_swap_io.md @@ -52,18 +52,18 @@ these can be used in filters and thresholds (along with the default attributes): check_swap_io OK - 1 swaps >22.98 KiB/s <18.58 MiB/s |'swap_in'=54024851456c;;;0; 'swap_out'=179375353856c;;;0; -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_swap_io use generic-service - check_command check_nrpe!check_swap_io! + check_command check_snclient!check_swap_io! } diff --git a/docs/checks/commands/check_tasksched.md b/docs/checks/commands/check_tasksched.md index 19408c47b..0c64a7eb0 100644 --- a/docs/checks/commands/check_tasksched.md +++ b/docs/checks/commands/check_tasksched.md @@ -75,18 +75,18 @@ these can be used in filters and thresholds (along with the default attributes): check_tasksched OK - All tasks are ok -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_tasksched use generic-service - check_command check_nrpe!check_tasksched!'crit=exit_code != 0' + check_command check_snclient!check_tasksched!'crit=exit_code != 0' } diff --git a/docs/checks/commands/check_temperature.md b/docs/checks/commands/check_temperature.md index 15dd4c983..dec075ed5 100644 --- a/docs/checks/commands/check_temperature.md +++ b/docs/checks/commands/check_temperature.md @@ -62,18 +62,18 @@ Show all temperature sensors and apply custom thresholds: check_temperature filter=none warn="temperature > 85" crit="temperature > 90" OK - Package id 0: 65.0 °C, Core 0: 62.0 °C, Core 1: 61.0 °C, Core 2: 65.0 °C |... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_temperature use generic-service - check_command check_nrpe!check_temperature! + check_command check_snclient!check_temperature! } diff --git a/docs/checks/commands/check_uptime.md b/docs/checks/commands/check_uptime.md index 61d25e4a7..0edf1034e 100644 --- a/docs/checks/commands/check_uptime.md +++ b/docs/checks/commands/check_uptime.md @@ -50,18 +50,18 @@ these can be used in filters and thresholds (along with the default attributes): check_uptime OK - uptime: 3d 02:30h, boot: 2023-11-17 19:33:46 UTC |'uptime'=268241s;172800:;86400: -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_uptime use generic-service - check_command check_nrpe!check_uptime!'warn=uptime < 180s' 'crit=uptime < 60s' + check_command check_snclient!check_uptime!'warn=uptime < 180s' 'crit=uptime < 60s' } diff --git a/docs/checks/commands/check_wmi.md b/docs/checks/commands/check_wmi.md index 2f48c25c3..750363772 100644 --- a/docs/checks/commands/check_wmi.md +++ b/docs/checks/commands/check_wmi.md @@ -59,18 +59,18 @@ Use perf-config to format the performance data and apply thresholds: check_wmi query="select DeviceID, FreeSpace FROM Win32_LogicalDisk" perf-config="*(unit:B)" warn="FreeSpace > 1000000" C:, 27199328256 |'C: FreeSpace'=27199328256B;1000000 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_wmi use generic-service - check_command check_nrpe!check_wmi! + check_command check_snclient!check_wmi! } diff --git a/docs/checks/plugins/check_dns.md b/docs/checks/plugins/check_dns.md index fce65f10d..85c58db12 100644 --- a/docs/checks/plugins/check_dns.md +++ b/docs/checks/plugins/check_dns.md @@ -63,18 +63,18 @@ Check for specific type from specific server: check_dns -H consol.de -q MX -s 1.1.1.1 OK - consol.de returns mail.consol.de. (MX) -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_dns use generic-service - check_command check_nrpe!check_dns!'-H' 'omd.consol.de' + check_command check_snclient!check_dns!'-H' 'omd.consol.de' } diff --git a/docs/checks/plugins/check_http.md b/docs/checks/plugins/check_http.md index 9b04f10a4..30750355c 100644 --- a/docs/checks/plugins/check_http.md +++ b/docs/checks/plugins/check_http.md @@ -125,18 +125,18 @@ Check for specific string and response code: check_http -H omd.consol.de -S -u "/docs/snclient/" -e 200,304 -s "consol" -vvv HTTP OK - Status line output "HTTP/2.0 200 OK" matched "200,304", Response body matched "consol"... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_http use generic-service - check_command check_nrpe!check_http!'-H' 'omd.consol.de' '--uri=/docs' '-S' + check_command check_snclient!check_http!'-H' 'omd.consol.de' '--uri=/docs' '-S' } diff --git a/docs/checks/plugins/check_snclient.md b/docs/checks/plugins/check_snclient.md index 2f8b85f66..978c677db 100644 --- a/docs/checks/plugins/check_snclient.md +++ b/docs/checks/plugins/check_snclient.md @@ -95,18 +95,18 @@ Check specific plugin: check_snclient -p ... -u https://localhost:8443 -c check_process process=snclient.exe OK - all 1 processes are ok. | ... -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_snclient use generic-service - check_command check_nrpe!check_snclient!'-p' 'PASSWORD' '-u' 'https://localhost:8443' '-c' 'check_process' 'process=snclient.exe' + check_command check_snclient!check_snclient!'-p' 'PASSWORD' '-u' 'https://localhost:8443' '-c' 'check_process' 'process=snclient.exe' } diff --git a/docs/checks/plugins/check_ssh.md b/docs/checks/plugins/check_ssh.md index b684b615c..632721752 100644 --- a/docs/checks/plugins/check_ssh.md +++ b/docs/checks/plugins/check_ssh.md @@ -59,18 +59,18 @@ Help Options: check_ssh --hostname github.com --warning 1 SSH OK - 0.262 seconds response time on github.com port 22 [SSH-2.0-8ad108e] | time=0.262048s;;;1.000000;10.000000 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_ssh use generic-service - check_command check_nrpe!check_ssh!'-H' '192.168.178.100' '-p' '2323' + check_command check_snclient!check_ssh!'-H' '192.168.178.100' '-p' '2323' } diff --git a/docs/checks/plugins/check_tcp.md b/docs/checks/plugins/check_tcp.md index 140e18267..1baa05998 100644 --- a/docs/checks/plugins/check_tcp.md +++ b/docs/checks/plugins/check_tcp.md @@ -63,18 +63,18 @@ Send something and expect specific string: check_tcp -H outlook.com -p 25 -s "HELO" -e "Microsoft ESMTP MAIL Service ready" -q "QUIT" TCP OK - 0.197 seconds response time on outlook.com port 25 -### Example using NRPE and Naemon +### Example using check_snclient and Naemon Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description check_tcp use generic-service - check_command check_nrpe!check_tcp!'-H' 'omd.consol.de' '-p' '80' + check_command check_snclient!check_tcp!'-H' 'omd.consol.de' '-p' '80' } diff --git a/docs/getting-started/_index.md b/docs/getting-started/_index.md index fe14fa8d3..6feb74f37 100644 --- a/docs/getting-started/_index.md +++ b/docs/getting-started/_index.md @@ -69,8 +69,8 @@ to `~/lib/monitoring-plugins`. ```text define command { - command_name check_windows_snclient - command_line $USER1$/check_snclient -k -p '$_HOSTSNCLIENT_PASSWORD$' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define host { @@ -78,29 +78,28 @@ define host { host_name windows-server alias Windows Server address 192.0.2.20 - _SNCLIENT_PASSWORD your-password - check_command check_windows_snclient + check_command check_snclient } define service { use generic-service host_name windows-server service_description CPU - check_command check_windows_snclient!check_cpu!'warn=load > 80' 'crit=load > 90' + check_command check_snclient!check_cpu!'warn=load > 80' 'crit=load > 90' } define service { use generic-service host_name windows-server service_description Memory - check_command check_windows_snclient!check_memory!type=physical 'warn=used > 80%' 'crit=used > 90%' + check_command check_snclient!check_memory!type=physical 'warn=used > 80%' 'crit=used > 90%' } define service { use generic-service host_name windows-server service_description Drive C - check_command check_windows_snclient!check_drivesize!drive=C: 'warn=used > 80%' 'crit=used > 90%' + check_command check_snclient!check_drivesize!drive=C: 'warn=used > 80%' 'crit=used > 90%' } ``` diff --git a/pkg/snclient/checkdata.go b/pkg/snclient/checkdata.go index e4589277b..c3dd80a90 100644 --- a/pkg/snclient/checkdata.go +++ b/pkg/snclient/checkdata.go @@ -1749,19 +1749,19 @@ func (cd *CheckData) helpExamplesMarkdown() string { out += "### Default Check\n\n" out += fmt.Sprintf("%s\n\n", cd.exampleDefault) } - out += "### Example using NRPE and Naemon\n\n" + out += "### Example using check_snclient and Naemon\n\n" out += fmt.Sprintf(`Naemon Config define command{ - command_name check_nrpe - command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -n -c $ARG1$ -a $ARG2$ + command_name check_snclient + command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$ } define service { host_name testhost service_description %s use generic-service - check_command check_nrpe!%s!%s + check_command check_snclient!%s!%s }`, cd.name, cd.name, cd.exampleArgs) out += "\n\n" From 63fbb5326c3cc833dd5c82fbc916dd51276164b6 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Fri, 16 Oct 2026 21:51:41 +0200 Subject: [PATCH 4/4] Update docs/install/supported.md --- docs/install/supported.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/supported.md b/docs/install/supported.md index 3047a3543..b3c306f39 100644 --- a/docs/install/supported.md +++ b/docs/install/supported.md @@ -32,7 +32,7 @@ Successfully tested on: - Windows ARM 11 Preview - It should work on any Windows newer than Windows 10 / Windows Server 2016. -The Go version required by SNClient (>= 1.23) does not support anything older than Windows 10 or Windows Server 2016. +The Go version required by SNClient (>= 1.27) does not support anything older than Windows 10 or Windows Server 2016. ## Linux