You're looking at the sample configuration files in /usr/local/nagios/etc and studying the documentation, and you realize that you're going to be managing a whole lot of interdependent files. How are you going to keep track of everything?
A simple hack to keep your sanity is to use a single directory
to store all configuration files—with three exceptions, which we'll
get to in a moment—and then use the cfg_dir
option in
nagios.cfg instead of the cfg_file
option to include them. cfg_dir
means "use all the files in this
directory," so you can easily control which files Nagios uses by
simply adding or removing them. This is easier than keeping track of a
herd of individual cfg_file
options.
This is what the default /usr/local/nagios/etc directory looks like after following the previous recipes:
$ cd /usr/local/nagios/
$ tree etc
etc
|-- cgi.cfg-sample
|-- commands.cfg-sample
|-- htpasswd.users
|-- localhost.cfg-sample
|-- nagios.cfg-sample
`-- resource.cfg-sample
|-- bigger.cfg-sample
|-- cgi.cfg-sample
|-- commands.cfg-sample
|-- minimal.cfg-sample
|-- misccommands.cfg-sample
|-- nagios.cfg-sample
`-- resource.cfg-sample
I like to organize them like this:
$ tree --dirsfirst etc
etc
|-- lan_objects
| |-- commands.cfg
| |-- contacts.cfg
| |-- hosts.cfg
| |-- commands.cfg
| |-- services.cfg
| `-- timeperiods.cfg
|-- sample
|-- |cgi.cfg-sample
| |-- commands.cfg-sample
| |-- localhost.cfg-sample
| |-- nagios.cfg-sample
| `-- resource.cfg-sample
|-- cgi.cfg
|-- htpasswd.users
|-- nagios.cfg
`-- resource.cfg
How do all those files get there? First, move all the sample files into the sample/ directory. Then, enter the sample/ directory and copy these files into etc/ and lan_objects/:
$ cd etc
# mkdir lan_objects
# mkdir sample
# mv *sample sample
# cd sample
# cp cgi.cfg-sample ../cgi.cfg
# cp resource.cfg-sample ../resource.cfg
# cp commands.cfg-sample ../lan_objects/commands.cfg
The rest will be created as we need them in the next few recipes.
See the next recipe to learn how to configure Nagios to use your nice new directory organization, and to get started monitoring the local system.
All Nagios configuration files must end in .cfg.
You are perfectly welcome to use a graphical file manager to shuffle everything around. It's easier and faster.
cgi.cfg, nagios.cfg, and resource.cfg are the primary Nagios configuration files, so they don't go with the others. htpasswd.users must be in the same directory as nagios.cfg.
The files in the lan_object/ directory are called object files. A Nagios object is a single unit, such as a host, a command, a service, a contact, and the groups they belong to. These objects are inheritable and reusable, which simplifies administration.