NACE - Nagios Automated Configuration Engine

Copyright 2005 Russell Adams <rladams@adamsinfoserv.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA

----------------------------------------------------------------------

NACE represents a generic query and mapping engine that should be used
in a shell script to generate configurations for entire networks of
hosts and services in an automated fashion by an experienced Nagios
administrator.

Host definitions are created, and then the hosts are polled via SNMP
or other means in order to create services for that host. The host
also has control over how it is configured using custom SNMP fields to
store directions for NACE as to what host groups the host belongs to,
what contact groups to use for its services, and more.

The idea for NACE came about due to my experiences managing a detailed
Netsaint/Nagios installation in a large heterogenous network.

Being the only administrator for the monitoring system, and 15 other
administrators caring for a growing network caused problems in keeping
Nagios up to date with new servers, applications, and a changing
network because it had to be centrally managed.

I was looking at ways to autodetect hosts for our Nagios setup, when I
hit on the idea of storing Nagios configuration data ( initially just
HostGroup(s) and ContactGroup(s) ) in the custom fields of the SNMP
Agent on Windows 2000 (sysContact and sysLocation). I've expanded that
idea to accept several generalized configuration directives via those
custom fields on any system, and to query that data from the host and
create its Nagios configuration automatically.

This way, as equipment and servers are added to the network, the
server administrator can specify how Nagios should treat the device by
putting data in the custom fields on the device, without involving the
Nagios administrator.

See the DisplayHelp function in each script, or run the script with
'-h' to read each scripts' documentation and usage information.

The README.old was written for the prototype script when it was still
monolithic. It still contains useful information and sample queries,
the ideas carry over into the current modular architecture.

Contact me with any questions, problems, and feedback.

Russell Adams <rladams@adamsinfoserv.com>
