nscc: The NetSaint Configuration Compiler

nscc declared obsolete! The newer template-base configuration files used by Nagios remove most of the utility of nscc. With the addition of a few small scripts, the template-based system is as flexible and as readable as an nscc-based configuration. (Yes, nscc has been replaced by a small shell script.)

This package, however, is being kept around, although not supported, because it is a useful example of Objective Caml, and the ridiculous ease of writing a compiler in OCaml.

NetSaint (which is now Nagios) is a powerful, flexible, and efficient monitoring system, capable of tracking a large number hosts and services while using minimal resources and providing a convenient notification system. Unfortunately, it has an unpleasant, verbose configuration file syntax.

Other contributed configuration tools have effective interfaces for controlling the monitoring of individual systems. However, they use web interfaces and are not as convenient for controlling NetSaint in an environment with a large number of identically configured machines.

nscc attempts to rectify this situation by providing a convenient way of configuring NetSaint based on text templates and external commands which provide the necessary information about hosts. However, as it stands now, nscc does not permit the full flexibility of NetSaint.

Since NetSaint's operation is service-oriented, the format of the nscc file is also service oriented. A service declaration provides the information NetSaint needs to check the service, as well as the host or hosts running the service (and the class to which those hosts belong). The hostclass then provides the information necessary to monitor the hosts.

Information which may change frequently, such as the hosts in a hostclass and the parents of hosts (describing network topology) is read from external commands.

The downside (sort of)? nscc is written in Objective Caml. I realize that this is a relatively uncommon language, but hopefully that will not be too much of a barrier. (I was looking for a project to try O'Caml and this was the first that came along. I think the experiment was successful.) Further O'Caml information available from the CRSR OCaml page.


  • 7 Jul 2003: I am declaring nscc to be obsolete. After installing and configuring Nagios I believe the new configuration file, extended by some relatively simple scripts, makes nscc obsolete.
  • 2 Oct 2002 nscc-1.1: Replaces backslash-newlines with spaces in strings.
  • 16 Sep 2002 nscc-1.0: Inital public release.

Source code



GNU General Public License, Version 2

gloria i ad inferni
faciamus opus

Return to Top | About this site...
Last edited Sat Aug 8 03:29:10 2009.
Copyright © 2005-2016 Tommy M. McGuire