Wulfware: A Cluster Monitoring Suite
by Robert G. Brown (rgb)
wulfware Version 1.0.1
Contents
Back to top
Description
wulfware is a suite of applications that provide remote monitoring
information on a beowulf- or GRID-style compute cluster, a server farm,
or LAN. It consists of the following tools:
- xmlsysd, a daemon that runs on the host to be monitored.
xmlsysd can be run under xinetd or as a standalone forking daemon. It
extracts information from /proc, from systems calls, and from selected
tools or files, packs it into a set of XML tags, and returns that
information to the connected monitor host(s). The daemon can be
throttled to return only the information a monitor interface requires to
support a particular display.
- wulfstat, an ncurses based monitor interface. wulfstat
permits one to monitor an entire cluster or LAN. Statistics it provides
include a vmstat-like display, load averages only, network statistics
only, memory information only, system configuration information and duty
cycle only, and running processes with or without the full command
line. A cluster or LAN can easily be defined with a few simple
commands in an XML-based "wulfhosts" file.
- wulflogger, a command line monitor interface that extracts
more or less the same data as wulfstat in similarly named displays and
writes them in formatted lines to stdout. This data format can easily
be parsed by scripting languages such as perl or python, or it can be
piped into a file for an archival record of cluster activity. The data
can thus be used to generate a variety of reports, including web or
graphical reports.
- wulfweb, an perl-cgi script to generate a
web view of cluster statistics using wulflogger. Currently this is
basically a working perl template for data extraction that can be
modified into whatever kind of display one likes.
- libwulf, the common library upon which wulfstat and
wulflogger are based. It encapsulates the routines that parse wulfhosts
and build the requisite data structures, manage the connections to all
hosts, and poll all connected hosts and extract the desired data from
the xmlsysd return.
The libwulf core can be recycled into a real e.g. GTK GUI version of
wulfstat (and beyond) but so far I haven't had time to mess with this.
Eventually I'll tackle this task. If anyone else wants to write
and contribute back a GUI interface, feel free; I will cheerfully add
your contribution to the wulfware collection.
If you use these tools you may want to join the Wulfware
Mailing List. This is a low traffic list that is used primarily for
announcments (such as the release of a new version) and limited
reporting of bugs or discussion of features. Check out the archives to
get a feel for the level of traffic.
Back to top
DEVELOPER'S NOTES
Starting with 0.6.0, libwulf is
compiled with gcc's -std=c99 option. This is required to access e.g.
unsigned long long ints, which are in turn required by the 2.6.x kernel
which contains a number of parameters in /proc that were formerly
unsigned long ints. Libwulf has also been modified to accomodate
xmlsysd changes associated new fields (and hence new tags) and changes
in format in /proc in the 2.6 kernel as well, although this should not
affect compatibility/usability with 2.4 kernels. However, it may
produce problems on systems with older gcc's. Please report any
problems to the wulfware list or directly to rgb.