|
|
Argus
|
|
|
NAME
Argus - UCS server and daemon monitor for X
PURPOSE
Argus monitors services, servers, and other daemons on UCS systems. It
provides status information and problem-solving help. It is intended for
use by UCS staff.
SYNTAX
/usr/local/etc/Argus [ OPTIONS ] [ toolkitoption ...]
OPTIONS
-rc file Specifies an initialization file. Default is ~/.Argusrc
-RC file Specifies a defaults initialization file. Default is
/usr/local/lib/Argus/rc
Argus accepts all of the standard X Toolkit command line options (see
X(1)). The order of the command line options is not important.
STANDARD DISPLAY
Argus provides a window containing windows for each service being moni-
tored. Each service window contains:
Name window
The service name. Click on this name window to initiate a direct
dialog with the service---provided the service specifies a direct
connect program. See the `DIRECT CONNECT INTERFACE' section.
Server windows
Indicate the status of each server on each host that provides the
service. The attributes of a server window are determined by the
status byte (the second one) of its datagram message. A widget
instance name is formed by prefacing this status with 'L' ('L1',
for instance). That name is then used to determine the resources
for the server window. See the `RESOURCES' section.
Click on any of these windows to see the complete text of the
current status of the server.
Every 15 seconds (default time) the monitor sends a query packet
to each server. Reply packets indicate the status of the server.
If a server fails to respond within 60 seconds a warning is
issued.
If an Argusd daemon is running then Argus will use it instead of
sending datagrams itself.
Argus also provides two small utility windows.
? Click this window to get general help with Argus.
EXTERNAL DISPLAY
Some services have so many servers that they cannot fit easily into a stan-
dard display when uncompressed. When a service is uncompressed the `exter-
nal' service display puts all the individual server labels into an external
popup, rather than in a straight line in the normal window.
Set a service for external display with the external keyword in your but-
ton_3 in the service label. Clicking button_3 in the service label of an
external service removes the popup.
DIRECT CONNECT INTERFACE
Clicking on the service name window brings up a direct connect window and
executes a direct connect program. This program is normally the same pro-
gram you use to communicate with the service from the command line. For
example, tms is the direct connect program for the TMS service.
Enter commands and view the display much as you would if you had run the
program from a command line.
Click "quit" when done.
OBTAINING SERVER STATUS
Clicking on a server window brings up a window showing the last status mes-
sage from the server, along with the time that message was received.
Click on the "help" button to better understand the message. Help will
also show what action should be taken to correct error conditions. Some
help displays will also create new buttons that can provide specific infor-
mation relating to the help text.
Click on the "check" button to send a status datagram to the server. This
usually gives you up-to-date status information. You don't have to wait
for the normal cycle.
Some services define extra buttons on this window. See the "ding" setup
file parameter.
Some servers also allow you to click on a line of the status message to
obtain more detail. See the server dependant information. Clicking on a
line of that does not provide more information will bring up the help win-
dow.
The server status window will popup automatically if an alert condition is
noticed for the server. The number of automatically popped status displays
is set by the aplimit initialization file parameter.
popped and all non-alert states are un-popped. Click Button 2 on a server
to reset it. Click Button 2 on a service to reset all its servers.
Finally, you can click Button 2 on the "!" button to reset all servers.
INITIALIZATION FILE
Argus determines which services to monitor by reading an initialization
file. The default file is "~/.Argusrc", but this may be changed with the
-rc option.
Each line in this file describes a service to monitor. Data have a
`keyword=value' syntax. Lines may be continued by ending with a backslash.
Multi-word values should be enclosed in parentheses. Anything after a
pound (#), EXCEPT the backslash, is considered a comment.
Default values are contained in the defaults file
"/usr/local/lib/Argus/rc", which may be overriden with the -RC option.
Keywords are:
alert = alert level
This is the level at which the server's status message will be
automatically popped. Range is 0-9. Default is 5.
aplimit = number
This is the maximum number of server status windows that will be
automatically popped per service. Default is 4.
compress This starts the service with a compressed display.
diagnose = keyword program_name arg1 arg2 ...
The keyword should match a field in a line of the server's status
message. The program with args will be exec'd when the line con-
taining the keyword is 'clicked'. The word following 'keyword'
in the status message will be appended to the argument list. All
text written by the program to stdout or stderr will be displayed
after the program exits.
dings = label:message ...
The dings create buttons on the server message window. Activa-
tion of a button sends a datagram with message to the server.
This datagram will be sent directly to the server, bypassing the
Argus daemon.
exec = program_name arg1 arg2 ...
This a program which will be exec'd to implement the direct con-
nect interface. It must read input from stdin and write to
stdout. The program should exit on pipe closure.
help = filename
This is the path of a help filename which explains status mes-
This list of hosts will be added to the hosts list.
neglect Argus will remember the configuration information for this ser-
vice, but will neither display the service nor send it datagrams.
The service may be `watched' by selecting it via the options
menu.
noservice This identifies a help-only service window. Argus will maintain
a window and helptext for this `service', but there is no real
server being monitored. In this case no port should be speci-
fied.
port = port #
This is the port number to which Argus will send datagrams.
service = service_name
This is the name of the service to be monitored. If this service
is listed in "/etc/services" then the port number need not be
specified.
HELP FILES
Each service must provide a help file to explain the messages returned by
the query datagrams.
Lines beginning with a # are ignored by Argus.
Lines beginning with a ! are topic keys. All text between the ! and the
end of line constitutes the topic key. Each message returned by the server
to a datagram query should have a matching topic key.
Lines beginning with a $ are program exec specifications which will create
extra buttons when the associated help topic is selected. The format is:
$ label : program_name arg1 arg2 ...
Other lines are help text and are copied verbatim to the help window.
SERVER DATAGRAM PROTOCOL
Here is the UDP protocol used by Argus.
Each server listens for UDP datagrams on its normal service port as defined
in /etc/services or on the port defined in the `rc' file.
A query datagram from Argus to the server will contain 1 byte, an `s'. The
reply datagram from the server to Argus will contain a proxy byte (ignored
if not from a proxy host), a status byte ('0'--'9'), plus 0-n message
The daemon is easily started (by root) by typing /usr/local/etc/Argusd. It
is normally started when the system boots.
PROXY HOSTS
A monitored service need not really exist on the port and host indicated in
its display windows. It may instead have a proxy host report its status.
To utilize a proxy for one of its hosts (in the display) a service would
specify the proxy host, port, and character in the host list, as in this
example:
host = ( host1
( host2 host=hostp port=n proxy=a )
host3 )
This example specifies 2 real hosts (host1 and host3) and one that requires
a proxy (host2). Query datagrams for host2 will be sent to port (n) on
host (hostp). Reply datagrams from (hostp) that contain the proxy charac-
ter (a) will be applied to the status of host2.
RESOURCES
Argus is composed of Athena widgets, for which the standard resources
apply.
Sample resource descriptions may be found in
/usr/local/lib/Argus/resources-*.
In order to specify resources, it is useful to know the hierarchy of the
widgets used by Argus. In the notation below, indentation indicates
hierarchical structure. The widget instance name is given first, followed
by the widget class name.
In the event that this table is either unreadable or incorrect please refer
to the sample resource files for the correct widget hierarchy.
Argus (Argus)
services (Box)
ho (Box) for help/options selections
help (Command)
HelpSet
option (Command)
service (Paned)
name (Command)
HelpSet
servers (Paned)
`L0-L9' (Label) [Dummy widget]
`LNR' (Label) [Dummy widget]
service... (One widget per service)
error (Shell) popup for error message reporting
popbox (Box)
message (Label)
quit (Command)
The HelpSet consists of the following widgets
help (Shell)
popbox (Paned)
label (Label)
displaybox (Paned)
display (Text)
topics (List)
quitbox (Paned)
quit (Command)
subtopic (Command) [Defined by help text]
ExecSet
The ExecSet consists of the following widgets
exec (Shell)
popbox (Paned)
label (Label)
display (Text)
quit (Command)
ENVIRONMENT
DISPLAY to get the default host and display number.
XENVIRONMENT
to get the name of a resource file that overrides the global
resources stored in the RESOURCE_MANAGER property.
FILES
SEE ALSO
Argusd, X(1), xrdb(1), Athena Widget Set
RESTRICTIONS
COPYRIGHT
Copyright 1991, 1992, 1993, University of Washington.
AUTHOR
Jim Fox, C&C, University of Washington.
|
|
Jim Fox fox@washington.edu Modified: January 6, 1999 |