When defining and testing new services in nagios I have been restarting nagios, then clicking the service, and rescheduling a check for as soon as possible, then waiting until the check happens.
Is there a more efficient way to do this? I'd like to use the command line to run that particular check and get the output.
Sometimes I find it tricky figuring out exactly what a plugin is doing. To figure this out I set nagios into debug mode with the configuration like this.
debug_level=2048
With nagios in debug mode I simply tail thedebug_log
filedebug_file=/var/log/nagios3/nagios.debug
. Force a check and you will see exactly how the command is being run. I wouldn't leave this setting on normally though, it is very verbose and fills your log file at a rapid rate.It's pretty simple. Just cd (or not) into the plugins directory (this directory location varies, depending on how you've installed it, but check /usr/local/nagios, or /usr/lib/nagios).
Find the plugin you want to run (if you're not sure, compare what you see in your plugins directory on your Linux box with the plugins located here: http://exchange.nagios.org/directory/Plugins, or try running "./plugin-name -h" to get the help info about the plugin).
The method for using any of these "plugins" from the command line is the same as any other Linux script: Just run "./plugin-name" with the appropriate flags you want to check, and voila!
I take a slightly more brute-force direction than @Zoredache, I login to the nagios server and do "while true; do ps awwlx | grep NAGIOS_CHECK_NAME; done", while I force a re-check of the service, where NAGIOS_CHECK_NAME is either part of the check name or the IP of the server I am looking for. Usually within a few seconds the full check command pops up and I then kill the while loop and run the check command.
Yeah, it's totally brute-force, but <shrug> it works for me.
You might also want to give the 'capture' plugin a try. It essentially does the same thing as a debug level of 2048, but can be used on a per-plugin basis. This yields less output to dig through.
http://www.waggy.at/nagios/capture_plugin.htm
Go to your plugin directory - in my example it is
Type you plugin name - in my example it is
now run the full command - (plugin name) -H (hostname) -p (port number)
output
However in this example port number is optional
another example -
in your config file which is look something like below (myserver.cfg) and you want to run check_cpu from command line
to check instantly (without GUI green or red)
Try this - (plugin full path) - H (servername) -c (checkname)
output -
Thats it