The check plugin check_linux_newkernel monitors whether a new Linux kernel has been installed since boot.
To check whether a host should be rebooted, use this plugin together with check_systemd_needrestart.
$ docker run -itp 8080:80 grandmaster/check_linux_newkernel
- Open http://localhost:8080 and navigate to the (only) service
The plug-and-play Linux binaries don't take any CLI arguments or environment variables.
To print the legal info, execute the plugin in a terminal:
In this case the program will always terminate with exit status 3 ("unknown") without actually checking anything.
If you want to actually execute a check inside a terminal, you have to connect the standard output of the plugin to anything other than a terminal – e.g. the standard input of another process:
$ ./check_linux_newkernel |cat
In this case the exit code is likely to be the cat's one. This can be worked around like this:
bash $ set -o pipefail bash $ ./check_linux_newkernel |cat
Just integrate the plugin into the monitoring tool of your choice like any other check plugin. (Consult that tool's manual on how to do that.) It should work with any monitoring tool supporting the Nagio$ check plugin API.
The only limitation: check_linux_newkernel must be run on the host to be checked for any new kernel – either with an agent of your monitoring tool or by SSH. Otherwise it will check the host your monitoring tool runs on for any new kernel.
This repository ships the check command definition as well as a service template and host example for Icinga 2.
The service definition will work in both correctly set up Icinga 2 clusters and Icinga 2 instances not being part of any cluster as long as the hosts are named after the endpoints.