$Id: README,v 1.6 1998/07/13 04:21:00 trockij Exp $ INTRODUCTION ------------ "mon" is a tool for monitoring the availability of services. Services may be network-related, environmental conditions, or nearly anything that can be tested with software. It is extremely useful for system administrators, but not limited to use by them. It was designed to be a general-purpose problem alerting system, separating the tasks of testing services for availability and sending alerts when things fail. To achieve this, "mon" is implemented as a scheduler which runs the programs which do the testing, and triggering alert programs when these scripts detect failure. None of the actual service testing or reporting is actually handled by "mon". These functions are handled by auxillary programs. This model was chosen because it is very extensible, and does not require changing the code of the scheduler to add new tests or alert types. For example, an alphanumeric paging alert can be added simply by writing a new alert script, and referencing the alert script in the configuration file. Monitoring the temperature in a room can be done by adding a script that gathers data from a thermistor via a serial port. Often these monitoring scripts can just be wrappers for pre-existing software, such as "ping" or "ftp". The "mon" scheduler also can serve network clients, allowing manipulation of run-time parameters, disabling and enabling of alerts and tests, listing failure and alert history, and reporting of current states of all monitors. There are several clients which come with the distribution, found in cgi-bin/ and clients/ : -moncmd, which is a command-line client. moncmd supports the full functionality of the client/server interface. -monstatus, which is essentially a command-line equivalent of opstatus.cgi. It displays nicely-formatted columnar output of the current operational status, groups, and the failure log. -skymon, which is a SkyTel 2-Way paging interface, allowing you to query the server's state and to manipulate it in the same manner as moncmd, right from your pager. Access is controlled via a simple password and an access control file. -opstatus.cgi, which is simple operational status web page which hilights failures and shows things which are disabled. It is meant to be quick to use and to display the most critical information at the top. -mon.cgi, which is an interactive web interface, allowing you to not only view status information, but to change parameters in the server while it is running. AVAILABILITY ------------ The latest version of mon is available from: ftp://ftp.kernel.org/pub/software/admin/mon and the WWW page is at http://www.kernel.org/software/mon/ REQUIREMENTS ------------ The "mon" daemon uses Perl 5.n, where n >= 004_04. You really want at least 5.004_04, which fixes a few memory leaks, and has a Sys::Syslog which works with Linux. You'll need the Time::Period module, available from your local CPAN archive (http://www.perl.com/perl). All of the monitor and alert scripts that are packaged with mon are optional. However, if you want to use all of them, this is what you'll need: The disk space monitor requires the "File::Df" Perl module from CPAN. "fping.monitor", requires the "fping" code, probably available from the same place that you go this package. To use "telnet.monitor" and "tcp.monitor", you need the "tcp_scan" utility from Wietse Venema and Dan Farmer's Satan package. If you're building under Linux, you'll need to patch the satan-1.1.1 distribution. Patches are available from ftp://sunsite.unc.edu/pub/Linux/system/network/admin. "reboot.monitor", "netappfree.monitor", "process.monitor", and "hpnp.monitor" use the UCD SNMP 3.3.1 package, along with G.S. Marzot's Perl module. "ldap.monitor" requires the Net::LDAPapi Perl module, available from CPAN. ---------- Jim Trocki Computer System and Network Engineer Transmeta Corporation Santa Clara, CA trockij@transmeta.com