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