nefu.conf - dependency map for nefu network monitor
nefu.conf contains dependency and service information used
by the nefu network monitor.
A configuration entry is composed of at least two lines.
The first line is a colon separated line with three fields:
one or more target machines, the target's network dependency
(if any), and a list of mail addresses that are alerted in
the event of a target's state change. The second and subse-
quent lines define the services to be tested on the target
machines. Syntax is as follows:
machine [ machine ...] : [ dependency ] : [ group ...]
<tab> test[:port] [arg ...]
[<tab> test[:port] [arg ...] ...]
A '\' character at the end of a line is interpreted as a
line continuation character.
Lines beginning with a '#' character are comments, and
Machines must be domain names or IP addresses. If nefu is
unable to resolve a domain name, or if a domain name
resolves to multiple IP addresses, it will be ignored by the
monitor and listed as down on the status page. Nefu may
re-query DNS for these machines. See nefu(1).
A dependency is a machine that acts as a gateway for any
other machine. Machines and routers that are local (on the
same subnet as a nefu machine) will have no dependency. All
dependencies must also be defined as machines, with their
own dependencies. Dependancies may not be circular. All
machines must have a path back to the root of the tree.
groups are mail addresses where nefu mails state change
Tests are services that a machine offers. Tests use the
default port for their protocol, where applicable. The
optional port argument is used to monitor protocols on non-
usage: ping [ up ]
Ping uses a raw socket, and does not take a port argument.
The optional "up" argument will not test ping, but always
return success. Ping can only be explicitly defined once
per machine. If ping is not explicitly defined for a
machine, ping will inherit every group of every service mon-
itored on that machine.
usage: '!' scriptname [arg ...]
The shell test does not take a port argument. All optional
arguments are passed to the script. Scripts are located
under $HOME/shelltests, and must be executable by nefu.
nefu sets two environment variables that scripts may make
use of, NEFU_MACHINE which is the machine's name, and
NEFU_ADDR, the machine's IP address, as well as including
all of the environment variables that nefu was invoked with.
Shelltests return 0 for UP, 1 for DOWN, and 2 for
MAYBE_DOWN. The first line of output from a shelltest is
preserved as a status message.
tcp "port" test
If this test successfully connects to a given port it closes
the connection and returns up. No banners are read, no pro-
tocol information is exchanged.
If this test connects, receives a "2??" banner, replies
"QUIT", receives a "2??" banner, and successfully closes the
connection, the service is considered up.
This test expects a "2??" or "3??" banner.
This test asks for a list of the master nameservers.
This test expects a "+OK" banner.
This test expects a reply to be within 30 seconds of the
monitor machine's local time.
This test expects a "* OK" and "* BYE" banner.
The following are example entries in a nefu.conf file:
Example where nefu monitors dns and telnet on a local
server. No dependency is listed for local routers and
server : : unix_group
Example where nefu monitors web service on the same server,
with a different responsibility group.
server : : web_group
Example where nefu monitors two web servers and a dns server
behind a local router. Each web server is running http on
ports 80 and 8080, as well as https and ftp.
dns_server : router : unix_group
webserver1 webserver2 : router : web_group
router : : network_group
Example where nefu monitors a server with a shell test.
Both the web group and unix group are alerted.
unix_server : router : unix_group web_group
Man(1) output converted with