mon News

4-May-1999

CareTracker is back online and ready to accept bug reports and feature suggestions for mon. See the bug tracking system for more details.

30-Apr-1999

Released 0.38.12.
Changes between mon-0.38.11 and mon-0.38.12
---------------------------------------------

-Fixed "list descriptions" bug submitted by Vad Adamluk 

-Added "last_check" and "monitor" output to client list
 opstatus. opstatus.cgi uses this.  Only works for 0.38.* protocol.

-opstatus.cgi now uses Mon::Client, and some bug fixes and enhancements.

-Removed "bind" from ftp.monitor http.monitor http_t.monitor imap.monitor
 nntp.monitor pop3.monitor smtp.monitor. It was unnecessary.

27-Apr-1999

Released 0.38.11, which fixes a bug which would cause some alerts to not be invoked.

26-Apr-1999

I just put 0.38.10 into the "BETA" directory on kernel.org. Thanks for the feedback, and keep testing :)
$Id: CHANGES,v 1.30 1999/04/27 02:45:03 trockij Exp $

Changes between mon-0.38.9 and mon-0.38.10
---------------------------------------------

-Fixed a bug where call_alert didn't set _last_alert correctly,
 thus causing things like alertevery to not work properly.
-Small bug fix in handle_trap_timeout

-Removed some debugging junk for dtlogging

-A few code cleanups here and there

-Fixed @groupargs problem in call_alert

26-Apr-1999

Released mon-0.38.9 and Mon-0.4. This is a feature freeze, and only bugfixes will be included into the 0.38.* branch. New features will be added into the new 0.39.* branch.

Changes between mon-0.38.8 and mon-0.38.9
---------------------------------------------

-Removed %var% substitution in favor of -M, which pre-processes the config
 file with m4. Macro expansion should be handled by software whose sole
 purpose is to perform macro expansion, hence m4.

-Added an "example.m4" in the etc/ directory.

-Added "fail" trap.

-Pass _op_status value to alerts via env variable MON_OPSTATUS.

-Updated file.alert to log MON_OPSTATUS.

-Fixed bug in client buffer handling where a blank line submitted by
 the client would prevent all future commands from being processed.

-The server no longer disconnects the client on an invalid command.

-Added "--disabled" and "--state" commands to monshow. Showing disabled
 hosts is no longer the default. The defaults can be set in ~/.monshowrc.
 This requires the latest Perl module (Mon-0.4). Also added "--old" option.

-Added man page for monshow.

-Updated some docs in mon.1

-Don't complain if userfile does not exist and the authtype is not userfile.

-Patched in Gilles' historicfile stuff, and documented it in mon.1, and fixed
 some bugs.

-Alerts are no longer called with -l parameter. It's never been documented,
 and no alerts use it, so I'm ditching it.

-version command returns a value like "0.38.9" rather than a float.

-Separated alert calling function from the function which determines
 if an alert should be called.

-Alerts are now forked with a separate environment than the parent.

-"test alert|upalert|startupalert" client command added, which will immediately
 call an alert for testing purposes. Updated the docs for moncmd to reflect
 this command.

20-Apr-1999

Released mon-0.38.8 and Mon-0.3.
Changes between mon-0.38pre7 and $Name: mon-0-38-8 $
---------------------------------------------

-mon is now kept under CVS control (exclusively to maintain my own
 personal sanity). The Perl module is distributed as a separate file now,
 so that it can find its home in the CPAN module directory.

-Documented "traptimeout" and "trapduration", and cleaned up
 some docs in mon.1.

-Included upalerts and startupalerts in gen_scriptdir_hash()

-Lots of code cleanups in read_cf.

-alertafter now has two forms, one just like before, and
 one with a single integer argument which alerts after some number of
 consecutive failures.

-I should have done this long ago. %watch now looks like this:
	$watch{$group}->{$service}
 instead of
	$watch{$group}[$service]
 and $service is the text of the service, not an integer.

-Lots of code cleanups regarding global variables which are
 altered by read_cf.

-Fixed "list successes" and "list failures" command.

-Added "clear timers" command which clears the timers
 for things like alertafter and alertevery and such.

-netappfree.monitor has some MIB reading changes which fixes the
 core dumping problem.

-Added set_op_status.

-Removed some debug cruft from check_depend.

-Fix to $fhandles{"$group/$service"}.

-Updated "-h" output to be accurate.

-Test -f to see if an alert or monitor exists before trying to
 exec it.

-gilles reported a problem with the servertime output, which was fixed.

-"interval" initialization was supplying a default interval,
 which isn't cool because it didn't allow you to have a service w/o an
 interval for use as a trap sink. The new default is undef.

-I started work on muxpect, which is sort of a combination of the mux
 capabilities of fping and doing Expect-style chat sequences over TCP
 sockets. It is meant to replace those millions of TCP-based monitors
 in the mon.d directory with a less CPU-intensive version.

-Some alert decision code moved from proc_cleanup to do_alert where
 it belongs.

-Changed some trap code.

21-Mar-1999

Released 0.38pre7.

Changes between mon-0.38pre6 and mon-0.38pre7
---------------------------------------------

-Added "basedir=" and -b, and "cfbasedir=" and -B

-use usleep.

-Added startupalerts which are called upon startup.

-alerts called with env variable MON_ALERTTYPE

-logdir, added downtime logging via dtlogging/dtlogfile

-Periods can now be specified using a LABEL: tag (similar to
 labeling blocks and loops in Perl). This allows multiple periods with
 the same period value. This feature is useful because the "alertafter"
 and "alertevery" counters are kept on a per-period basis.

-Fixed process.monitor to use the new values for the process table
 in the UCD MIB.

-Fixed a problem with reload and path/file expansion.

-Alerts are now called with MON_RETVAL set to the exit value of the
 monitor.

-Added trap.alert. Not quite documented.

-Added version command to Mon::Client, thanks to nagel@intelenet.net.

1-Mar-1999

Release mon-0.38pre6. Please test. Includes dialin.monitor and some bug fixes. See CHANGES for details.

27-Feb-1999

Added a couple of more things to the FAQ.

17-Feb-1999

Added a couple of things to the FAQ.

24-Jan-1999

Released mon-0.38pre5.

Changes between mon-0.38pre4 and mon-0.38pre5
---------------------------------------------

-Fixed bug #3, problem with %alias

-Fixed bug #4, problem with unpacking a socket which wasn't
 really a socket yet (out of order assignments)

-Renamed Client to Mon-0.01 to follow the Perl module naming
 convention better, and to make room for things like logging
 modules and such.

-Implemented more protocol commands to Mon::Client. Only 4 left...

-Adjusted nntp.monitor to allow for some protocol / implementation
 inconsistencies. The commands now strictly follow RFC977.

-Fixed problem with 0.38 protocol and Mon::Client.

-Added multiple authentication types, including getpwnam, shadow,
 and userfile. Read the man page for details.

-Added "version" client command to identify the protocol version.

-Added host + user authentication to traps. Configuration is done
 in auth.cf. No documentation yet.

-Added simple downtime logging, and documented it in mon.1.

-Tiny change to reboot.monitor.

-Added Mon::SNMP module to decode SNMP traps.

-Added pod to Mon::Client. I think it took as long to
 code it as it did to document it.

9-Jan-1999

Some web page updates. 0.38pre5 is coming along, and should be released this weekend. I think I've nailed the "upalerts with dependencies" problem.

28-Dec-1998

New bug tracking for mon, from the guys at LinuxCare. I figured I'd take advantage of someone else doing work for us :)

21-Dec-1998

Released mon-0.38pre4.


Changes between mon-0.38pre3 and mon-0.38pre4
---------------------------------------------

-Added fixes from Chris Adams  that correct some $ALERTDIR
 and monitor argument problems.

-Fixes to monstatus from brian moore.

-Another fix to get the "exit=n" stuff working with alerts again, broken
 because of ALERTHASH code.

-Wrote "monshow" in the clients directory, which is a per-user configurable
 command-line client.

-Mon::Client perl module included to help simplify writing clients. It
 doesn't implement a number of commands yet. Look at the end of Client.pm
 to see which commands have been implemented and which have not been.

 "monshow" is in the clients directory, and it is an example of how to
 use the Mon::Client module.

 Mon::Client also needs POD documentation.

14-Dec-1998

Back from the USENIX LISA conference Boston, and I did a little work on mon while on the plane and in the room, so here is 0.38pre3.
Changes between mon-0.38pre2 and mon-0.38pre3
---------------------------------------------

-Added "ack" client command, which will acknowledge a service failure and
 surppress all further alerts for that service while it continues to fail.
 See the moncmd man page for details. You can "ack" with a string of
 text.

-alertdir and scriptdir can now contain multiple colon-separated
 paths. This feature is useful for keeping site-specific monitors
 and alerts in their own directory which is separate from the monitors
 which are distributed with mon itself. Updated the docs for this.

 A hash is generated after each time the configuration is read
 which holds the location of where each monitor and alert script can
 be found. Errors are reported via syslog, so pay attention to them.

-Some "alias" code tweaks. Gilles, does it work??? If no, send
 the patch.

-Poked a little with the trap code. The trap  now contains
 a "spc" tag which specifies the specific type of trap, like maybe
 SNMPv1 or SNMPv2 or "mon 0.38". 

-An update to rpc.monitor to let it build under Solaris. It can now
 also check to see if an arbitrary RPC program number is registered.
 Documentation updates.

-Dependencies are still broken, because I haven't spent any time at
 all looking at them.

30-Nov-1998

Release of *ALPHA* 0.38pre2 (notice the numbering change).

Changes between mon-0.38pre1 and mon-0.38pre2
---------------------------------------------

-Some fixed from brian moore to correct client hangups

-netappfree.monitor changes, including --list option to
 list the filesystems on the filers for help in building a config file.

-Trap handling changes, including packet . More provisions
 for direct SNMP handling. I might add direct provisions for mon to take
 SNMP traps directly. UCD SNMP trap handling callback mechanism doesn't
 fit into mon very well.

-"list opstatus" output is now different

-Time::HiRes is now required. The trick is that handle_io() wants
 to spend $SLEEPINT handling I/O from clients. Some OSs allow select(2)
 to return the time remaining, which we want because if select returned
 in say, 0.2 seconds then we want to call select with a timeout of 0.8
 seconds so that we get the full second of waiting for I/O. Some OSs
 do *not* return the time remaining from a select call, and time(2)
 doesn't return sub-second resolution, so we need gettimeofday(2) to
 figure out how long select spent waiting. I guess the whole point here
 is to try to handle traps as soon as they come in.

-Fixed @last_failures discrepancy with traps.

-Added Gilles' alias record stuff to config file

-Included Jon Meek's up_rtt.monitor which checks the availability of
 hosts and logs some statistics, like min/mean/max round trip times.
 Requires Time::HiRes and Statistics::Descriptive.

2-Nov-1998

Release of *ALPHA* 0.pre38a. This release is primarily meant for people who can help fix bugs, so I wouldn't try running expect this to release to work well for everyone.

4-Oct-1998

Added link to Tim Potter's archive of the mailing list. Much better than the half-assed archive that I threw together :)

mon-0.38 should be released within a week or so. It includes Jing Tan's dependency code, asynchronous event handling (mon is now distributed), a few new client commands, some bug fixes, some new monitors, new disabling behavior (you can disable a group/service/host for a particular duration, and mon will re-enable it when the time comes).

2-Aug-1998

Updated the FAQ to point to CPAN and some other places, and added a question and answer submitted by Rikhardur Egilsson .

13-Jul-1998

Released 0.37l. Lots of changes.

$Id: CHANGES,v 1.7 1998/07/13 04:23:53 trockij Exp $

Changes between mon-0.37k and mon-0.37l
---------------------------------------
-Config parser change from Michael Griffith  that
 complains when "alertafter" will never trigger an alert.

-Added "savestate" and "loadstate". Currently these only save
 and load the state of things disabled.

-The server now can authenticate clients using a simple
 configuration file which can restrict certain users to
 using only some (or all) commands. "moncmd" was updated
 to support this feature.

-Addition of "upalerts" which may be called when a service
 changes state from failure to success. "upalerts" can be
 controlled by the "upalertafter" parameter.

-"alertevery" now ignores detailed output when it decides
 whether or not to send an alert. Patch submitted by
 brian moore .

-"hostgroup and hyphen" patch. This simple patch will allow
 hyphens and periods in hostgroup tags.

-Multiline output fixes in smtp.monitor 

-Now monitors are not called when no host arguments are supplied. This
 can be overridden with the per-service "allow_empty_group" option.

-A fix to ftp.monitor by Tiago Severina  which allows
 for multiple 220 lines in the greeting from the FTP server.

-Added snpp.alert, contributed by Mike Dorman .
 This requires the SNPP Perl module.

-Added ldap.monitor, contributed by David Eckelkamp .
 This requires the Net::LDAPapi module.

-Added dns.monitor, contributed by David Eckelkamp .
 This requires the Net::DNS module.

-Monitor definitions can now include shell-like quoted words, as defined by
 the Text::ParseWords module (included with perl5). e.g.:
        monitor something.monitor -f "this is an argument" -a arg

-"allow_empty_group" is a new per-service option. If set, monitors will
 still be run even if all hosts in the applicable hostgroup have been
 disabled. The default is that allow_empty_group is not set.

-Monitors are now forked with stdin connected to /dev/null.

-Added "stop" and "start" commands which let make the server cease from
 scheduling any monitors. While stopped, clients can still be handled. The
 server may be started[sic] in "stopped" mode with -S. There is now a
 "reset stopped", which is an atomic version of "reset" and "stop". This
 is useful if you want to re-disable things immediately after a reset,
 so there will be no race conditions after the reset and before you
 disable things.

 opstatus.cgi now also reports the state of the scheduler.

-Updated documentation for monitors, the main "mon" manual,
 and the "moncmd" manual.

-Fixed a few problems in handle_client that had to do with shutting
 the server down.

15-May-1998

29-Apr-1998

14-Apr-1998

5-Apr-1998