SNClient

SNClient+ - Cross platform monitoring agent

SNClient+

CICD Pipeline Go Report Card Latest Release License IRC snclient.svg

SNClient+ (Secure Naemon Client) is a general purpose monitoring agent designed as replacement for NRPE and NSClient++.

Contact

Documentation

All documentation is under docs/

Supported Operating Systems

i386 x64 arm64
Linux X X X
Windows X X (use x64)
FreeBSD X X X
MacOSX X X

A more detailed list of supported operating systems.

Supported Protocols

  • Prometheus HTTP(s)
  • NRPE (v2/v4)
  • 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 release page.

Further details are covered in the documentation.

Check Plugin Status

Windows Linux OSX BSD
check_alias X X X X
check_connections X X X X
check_cpu_utilization X X X X
check_cpu X X X X
check_dns X X X X
check_drivesize X X X X
check_dummy X X X X
check_eventlog X
check_files X X X X
check_http X X X X
check_index X X X X
check_kernel_stats X
check_load X X X X
check_mailq X X X
check_memory X X X X
check_mount X
check_network X X X X
check_nsc_web X X X X
check_ntp_offset X X X X
check_omd X
check_os_updates X X X
check_os_version X X X X
check_pagefile X
check_ping X X X X
check_process X X X X
check_service X X
check_snclient_version X X X X
check_tasksched X
check_tcp X X X X
check_temperature X
check_uptime X X X X
check_wmi X
check_wrap / external scripts X X X X

Roadmap

Find a brief overview of what is planned and what is done already:

Stage 1

  • [X] support NRPE clients
  • [X] support NSCP rest api clients
  • [X] support basic Prometheus metrics
  • [X] implement reading nsclient.ini files
  • [X] implement ssl/tls support
  • [X] implement authenticaton / authorization
    • [X] basic auth
    • [X] client certificates
    • [X] allowed hosts
    • [X] allow arguments
    • [X] allow nasty characters
  • [X] add build pipeline
    • [X] build windows msi packages
    • [X] build debian/ubuntu .deb packages
    • [X] build rhel/sles .rpm packages
    • [X] build osx .pkg packages
  • [X] implement log rotation for file logger
  • [X] self update (from configurable url)
  • [X] implement perf-config
  • [X] implement help with examples and filters
  • [X] review check plugin status

Stage 2

  • [X] add basic prometheus exporters
    • [X] exporter_exporter
    • [X] windows_exporter
    • [X] node_exporter
    • [ ] add time support in threshold, ex.: warn=time > 18:00 && load > 10
  • [X] add config include folder
  • [X] add check_ping plugin
  • [X] add ntp check
  • [X] check usr signal handler
  • [X] manage certificate via rest api
  • [X] add https config includes

Stage 3

  • [X] self update from github
  • [ ] open telemetry
  • [ ] improve configuration
    • [ ] add config validator
    • [ ] use strong typed config items
  • [X] osx
    • [X] check pkg uninstall
  • [X] rename packages to avoid confusion: amd64 -> x86-64, 386 -> i386, amd64 -> aarch64

Not gonna happen

The following things will most likely not be part of snclient any time:

  • CheckMK support
  • Embedded LUA support
  • Embedded Python support
  • Graphite support
  • NRDP support
  • NSCA support
  • SMTP support
  • Website/Rest API (except doing checks)
  • check_nt support