Fox's Pages
UW home Fox's home Updated: May 18, 2001  

Argus dings

How Argus dings the servers


Argus takes a strictly active approach to daemon monitoring. It sends a UDP datagram asking, in essence, "How are you?" It expects to get back a UDP datagram indicating, on a scale of zero to nine, how well the daemon is functioning. Zero indicates very well; nine very poorly; and other numbers somewhere in between. There are actually a couple of other states: no response, and out of service. The reply datagram also contains an ascii message in human readable that provides more detail.

Argus uses this 'feel good' value to color the background of the corresponding window. In cases where the status represents an error, the status window is authmatically popped up.

Here is a sample client that shows how a server can respond to Argus queries.

How Argus really queries the servers


It would not be very efficient or wise for many Argus (Argi?) to independently send datagrams to each server. That's a lot of redundency on everyone's part.

What actually happens is that each Argus connects, via TCP socket, to an Argus daemon. Each tells the deamon which hosts and servers it is interested in. The daemon then watches the servers and relays status information to each interested client.

How Argus watches vendor products


The UDP datagram implementation was chosen for its simplicity and ease of use. It is about the simplest of network interfaces and fits easily into the operation of most servers.

However, there is a class of services that don't readily adapt to this scheme - those that you buy from a vendor and don't have source code. Or maybe you do have source but don't want to hack it up. A separate tool (argmon) works with Argus to monitor those services. Argmon contains the necessary code to respond to Argus's queries but it gets all its information from server dependent scripts or programs, running as child processes. Our web server watcher is an illustrative example.

Argus asks argmon via the datagram interface. Argmon finds out server status via several custom interfaces.


Jim Fox
UW Technology
Identity and Access Management
University of Washington
fox@washington.edu

© 1983-2012, University of Washington