Argus - The All Seeing, System and Network Monitoring Software

Home
Features
Testimonials
Screen Shots
Demo
Download
Docs
History
Future
Links
Contributing
Mailing List
Contacting

Configuring

You have the choice of creating a single config file, or a directory of separate config files, which are effectively concatenated together.

The latter is useful so that different parts can be generated by different people or different scripts.

For example, the author has one file for each of: unix servers, NT servers, routers, terminal servers, BGP sessions, T1 connections, DSL connections, etc. Certain files are built by scripts from various databases, and others are maintained by people.

The application will automatically notice if a config file changes and will reload.

By default, argus will look in the configured data directory for a file or subdirectory named config. This can be overridden with the -c command line option.

Config File Structure

The config file defines what and how things are monitored as well as the layout and relationships of the various items.

It contains various types of things

  1. key-value pairs, aka. data
    frequency: 300
  2. specifications of things to monitor, aka. Services
    Service TCP/SMTP
  3. groups of services, aka. Groups
    	Group "Foo" {
    		hostname: foo.example.com
    		Service TCP/SMTP
    		Service TCP/HTTP
    	}
  4. alternate names for things, aka. Aliases
    Alias "Foo" "Top:Servers:Foo"
    Aliases are described further in the advanced documentation
  5. definitions of notification methods
    notification methods are described in notification documentation
  6. definitions of special features, such as DARP, the asynchronous resolver

In the config file, the parameter-value data must come first, followed by notification methods and special features, followed by groups and services.

There are an extremely large number of parameters (data) that can be (or need to be) defined. In general, everything tries to default to reasonable and "Do What I Mean" values.

There is an auto-generated list of all of the parameters, etc, here

Probably good to show an example:

     syslog: local1
     notify: mail:staff@example.com
     
     Group "Servers" {
             Group "mail" {
                     # Here, we specify data (hostname) for the group
                     # Note: hostname data is not used by Groups
                     # but the enclosed Services will inherit
                     # the value and use it
                     hostname: mail.example.com
                     Service TCP/SMTP
                     Service TCP/IMAP
                     Service UDP/DNS
                     Service Ping
                     # Notice, Services can either be standalone, or have
                     # data attached
                     # in the next case, we give the Ping a different
                     # address to check
                     Service Ping {
                             hostname: 10.4.3.2
                     }
             }
             Group "www" {
                     # Note, unlike C or Perl, you cannot
                     # place the opening { on a different line
                     hostname: www.example.com
                     Service TCP/HTTP
                     Service TCP/HTTPS
                     Service Ping
                     Service TCP {
                             port: 12345
                             info: YoyoDyne Application Server
                     }
                     # Also, the closing } must be on
                     # a line by itself (with optional whitespace)
             }
     }

Since it is quite common to create a group representing a single host, and enclosing a number of services to test on that host, a shorthand notation is provided for this:

	Host "www.example.com" {
		Service TCP/HTTP
		Service TCP/HTTPS
		Service Ping
		Service TCP {
			port: 12345
			info: YoyoDyne Application Server
		}
	}

This does the same thing as the "www" group in the other example.

Hmmm, OK, perhaps it isn't much shorter. How about "A more self-documenting-hand", instead?

Other sections of the documentation will explain some of the more common parameters and show additional examples.

Config File - Other Notes

Case Sensitivity

In general, the everything is case-sensitive. Often, argus can figure out what you mean if you mis-case something, but not always, so you should you use the same casing as shown.

Include Files

You can include another file in a config file by saying:

	Include "file"

Include files may in turn include other files to any level of nesting (well, up to what ever resource limits your Operating System may have)

Include support was added in version 3.2

Time Units

Many parameters specify amounts of time. Times can be specified using units of secs, mins, hours, days, weeks, and years, all may be abbreviated to one letter. For example: 36y, or 12min.

Time unit support was added in version 3.5