Verifying configuration
In this recipe, we'll learn about the most basic step in debugging a Nagios Core configuration, which is to verify it. This is a very useful step to take before restarting the Nagios Core server to load an altered configuration, because it will warn us about possible problems. This is a good recipe to follow if you're not able to start the Nagios Core server at any point because of configuration problems, and instead get output similar to the following:
# /etc/init.d/nagios restart Running configuration check... CONFIG ERROR! Restart aborted. Check your Nagios configuration.
Getting ready
You should have a working Nagios Core 3.0 or better server running.
How to do it...
We can verify the Nagios Core configuration as follows:
Run the following command, substituting the path to the Nagios binary file and our primary
nagios.cfg
configuration file, if necessary:# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
If the output is very long, then it might be a good idea to pipe it through a pager program, such as
less
:# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg | less
Inspect the output and look for warnings and problems. Here's an example of part of the output we can expect, if our configuration is correct:
If there's a problem of some sort, then we might see an output similar to the following, which is just an example of a possible error; my configuration is wrong because I tried to add a service for a host called
athens.naginet
, when I hadn't actually configured that host yet. So Nagios Core is quite right to yell at me:
How it works...
The configuration is parsed as though Nagios Core were about to start up, to check that the configuration all makes sense. It will run basic checks such as looking for syntax errors, and will also check things like having at least one host and service to monitor. Some of the things it reports are warnings, meaning that they're not necessarily problems; examples include hosts not having any services monitored, or not having any contacts defined.
This is the quickest way to get an idea of whether the Nagios Core configuration is sane and will work correctly. Whenever there's trouble restarting the Nagios Core server, it's a good idea to check the output of this command first. In fact, it's a good habit to check the configuration before restarting, particularly if we're unsure about the configuration changes, or if the monitoring server is checking something very important! This means if it turns out that our configuration is broken, then the Nagios Core daemon will keep running with the configuration from the point before we changed it, and we can fix things before we restart.
There's more...
The program at /usr/local/nagios/bin/nagios
is actually the same program that runs the Nagios Core server, but the -v
part of the command is a switch for the program that verifies the configuration instead, and shows any problems with it. The second path is to the configuration file with which Nagios Core starts, which in turn imports the configuration files for objects, such as contact, host, and service definitions.
See also
The Writing debugging information to Nagios Core log file recipe in Chapter 10, Security and Performance