Monitoring plugins written in Go
Find a file
Emmanuel BENOîT dcd732cc34
All checks were successful
Run tests and linters / test (pull_request) Successful in 42s
Run tests and linters / build (pull_request) Successful in 43s
Run tests and linters / lint (pull_request) Successful in 1m19s
Run tests and linters / test (push) Successful in 41s
Run tests and linters / build (push) Successful in 42s
Run tests and linters / lint (push) Successful in 1m23s
chore: fix test runner
2024-07-20 09:05:17 +02:00
.forgejo/workflows chore: fix test runner 2024-07-20 09:05:17 +02:00
cmd refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
pkg refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
tools refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
.gitignore refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
.golangci.yml refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
go.mod refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
go.sum refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
LICENSE refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
main.go refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
Makefile refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00
README.md refactor: reorganize project in order to include automation (#1) 2024-07-19 22:01:34 +02:00

gomonop - Various monitoring plugins in golang

This project is a collection of various monitoring plugins (such as Nagios, Centreon, or Icinga) written in golang. All plugins are available through a single executable, gomonop. The actual plugin can be selected either by creating a symlink to the main executable with the appropriate name or by calling the executable directly with the first argument being the name of the plugin.

This project is distributed under the terms of the GPLv3 license. Its source code is available on the Nocternity forge.

Plugins

SSL certificate expiry

The check_ssl_certificate plugin can be used to check that the certificate from a TLS service has not expired and is not going to expire shortly. It supports the following command-line flags:

  • -H name/--hostname name: the host name to connect to.
  • -P port/--port port: the TCP port to connect to.
  • -W days/--warning days: a threshold, in days, below which a warning will be emitted for this service.
  • -C days/--critical days: a threshold, in days, below which the plugin will indicate that the service is in a critical state.
  • --ignore-cn-only: do not cause errors if a certificate does not have SANs and relies on the CN field.
  • -a names/--additional-names names: a comma-separated list of DNS names that the certificate should also have.
  • -s protocol/--start-tls protocol: protocol to use before requesting a switch to TLS. Supported protocols: smtp, sieve.

DNS zone serials

The check_zone_serial plugin can be used to check that the version of a zone served by a DNS is up-to-date compared to the same zone served by another, "reference" DNS. It supports the following command-line flags:

  • -H name/--hostname name: the host name or address of the server to check.
  • -P port/--port port: the port to use on the server to check (defaults to 53).
  • -z zone: the zone to check.
  • -r name/--rs-hostname name: the host name or address of the reference server.
  • -p port/--rs-port port: the port to use on the reference server (defaults to 53).

Building from source

The plugin can be built for the current host OS and architecture using make build. The actual executable will be created under the bin directory, in a subdirectory named after the host OS and architecture (e.g. bin/linux-amd64). The executable will be named gomonop, and a symlink to the executable for the host OS and architecture will be created under the bin directory.

It is possible to build for other architectures using make build-cross.