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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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 |
Expand All @@ -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 |
Expand Down Expand Up @@ -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
20 changes: 10 additions & 10 deletions docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,33 +13,33 @@ 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)
[![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)
<a href="logo/"><img src="logo/snclient.svg" style="float:right; margin: 3px; height: auto; width: 200px; float: right;"></a>

**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.
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

- 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

The latest release can always be found [here](https://github.com/ConSol-Monitoring/snclient/releases).

## Talks

### 2023 - OSMC Nuremberg
### 2023 at OSMC Nuremberg

- english - 33 minutes
- Talk: <https://www.youtube.com/watch?v=cXXZlnmn2NA>
- [YouTube](<https://www.youtube.com/watch?v=cXXZlnmn2NA>) (EN - 33 min)
- [Slides](https://labs.consol.de/_slides/snclient-2023-11-09.pdf)
46 changes: 23 additions & 23 deletions docs/api/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -17,7 +17,7 @@ Redirects to `/index.html`

### /index.html

Returns simple OK message:
Returns a simple OK message:

Example:

Expand All @@ -34,7 +34,7 @@ Returns:
snclient working...
```

## Checks Endpoints
## Check Endpoints

These endpoints are available if the `WEBServer` is enabled in the modules section.

Expand Down Expand Up @@ -66,7 +66,7 @@ curl \

### /api/v1/inventory

Returns the check inventory as json
Returns the check inventory as JSON.

Example:

Expand Down Expand Up @@ -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:
Expand All @@ -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

Expand All @@ -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

Expand All @@ -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

Expand Down Expand Up @@ -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:

Expand Down Expand Up @@ -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:
Expand All @@ -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:

Expand All @@ -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:
Expand Down
Loading
Loading