Once you get your basic nagios2 configuration together, the setup is a breeze for a large installation. The use of templates makes it much easier. Ony thing that irks me so far is that for http virtual hosts, you need a host entry and a service entry, as you can't use the address setting in the services.cfg file. Right now I'm checking if a host can be checked without a service entry. Seems logical enough. Ah I see, you can use the same services.cfg entry for multiple hosts in the hosts.cfg file, listing them out separated by commas. Perfect.
I just found the nagios page that talks about this exact setup:
Nagios 2: Time-Saving Tricks For Template-Based Object Definitions
Also called: "How To Preserve Your Sanity"!
The beauty of this is that to create new checks for additional websites I put up, all I have to do is update the hosts file with two pieces of info: the name of the host and the address to use. For example;
host_name example.com address www.example.com
Wow, even cooler is the fact that you can use regexp with the wildcard option!
So here's how I have my virtual host www's setup for checking in nagios2. This way, the dns and the webserver will be checked to some extent.
hosts.cfg
define host{ use virtual-host host_name example.com address www.example.com}
hostgroups.cfg
define hostgroup{ hostgroup_name vhost-production-machines alias vhost members .*com}
For my purposes, all I need for semi-automated nagios configuration files is a simple template I can make in PHP. If you are considering one of the many web based nagios management tools, I note that for me, it was easier to get the configuration files in place first, then write up a small script to serve my needs.
Sidenote: Similarities between configuration of fail2ban and nagios2
I like what I'm seeing here. There are some definitely similaries between the structure of the configuration files for fail2ban and nagios2. Cool!