monit-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[monit] [Announce] Monit 5.0


From: Jan-Henrik Haukeland
Subject: [monit] [Announce] Monit 5.0
Date: Thu, 16 Apr 2009 02:41:07 +0200

Monit 5.0 is here!

With more than 50 new features and bug fixes we are happy to
announce that Monit 5.0 is available and can be downloaded today.

Download from: http://mmonit.com/monit/download/

MD5 checksum:    61e13c0c6f5ad396e12a7692135d8737
SHA256 checksum: 009cab24f006c6ae7cb002b2f2e40b0b6f8563c184613c83e61e449818c3ea14
Change log:      http://mmonit.com/monit/dist/CHANGES.txt


Version 5.0:
------------

NEW FEATURES AND FUNCTIONS:
* M/Monit support added. If you run Monit on more than one
 server, you can use M/Monit to manage and control all your
 Monit enabled servers from one simple Web Interface. See
 http://mmonit.com/ for details.

* Support use of symbolic links in filesystem check. Thanks to
 Aleksander Kamenik for suggestion. Example:
   check filesystem rootfs path
        /dev/disk/by-uuid/4ef973f7-67d1-4bb0-8223-cb1c692b72e4
     if space usage > 95% then alert
     if inode usage > 95% then alert

* If no 'set mailserver' was defined in monitrc, Monit tried to
 fallback to localhost:25 SMTP server. This fallback was removed
 since it may be confusing. If you want to deliver mail alerts
 from Monit, the 'set mailserver' option is necessary. In case
 it is missing, Monit will log appropriate error and hint to add
 it.

* The generic send/expect protocol test limited the expect input
 to 256 bytes. It's possible to set the input buffer for expect
 globally - for example: set expectbuffer 20 kb Thanks to Asil
 Carlin for suggestion.

* The following event types were added CONTENT, FSFLAGS, PID and
 PPID and the following generic event types CHANGED and MATCH were
 removed and replaced by the above types and with the existing SIZE,
 CHECKSUM, TIMESTAMP events so the information is more specific
 The event types are internal to Monit and unless you have used
 either CHANGED or MATCH event in your alert filters, no change
 is necessary (alerts are delivered as usual, the tests just use
 different types internally).

* Monit now generates a unique id on first start and store the id
 in a permanent file. This id is used in protocol communication
 between Monit and M/Monit to pair a Monit instance with it's
 host entry in M/Monit. By default the id file is placed in
 $HOME/.monit.id. The location can be changed by using the set
 idfile statement, for example:
   set idfile /var/monit.id

* Monit now keep its service monitoring state even on Monit
 restart. Previously Monit dropped the state when it was stopped
 correctly. Services in manual monitoring mode will remember the
 monitoring state across Monit restarts. If Monit is used in a
 cluster, it is recommended to place the state file in a
 temporary filesystem incase the primary machine will crash and
 the the spare machine takeover, the state will be dropped on
 reboot for the crashed machine and the services in manual
 monitoring mode won't be started on reboot. For example the
 "set statefile /tmp/monit.state" can be used to place the state
 file in the /tmp/ filesystem.

* Added a protocol test for testing the LMTP protocol. Thanks
 to Fco. Javier Felix for patch.

* Added the start delay option for daemon statement which allows
 to pause Monit on its startup for a while. If monitored
 services are started by init scripts in parallel on system
 boot, Monit may be too fast and detect that the service is not
 running (yet) and restart the service. Note that it's still
 recommended Monit is setup to be responsible for service
 startup (that is, don't use init to start Monit controlled
 services, instead use Monit). This will ensure correct startup
 without need for a start delay since Monit will have full
 control of service startup. Many users start services from init
 on boot anyway, so in such cases this option will solve their
 problems. Default start delay is 0 which corresponds to the
 current behavior. Example syntax which will make Monit wait one
 minute before starting its first monitoring cycle:
 --8<--
   set daemon 5 with start delay 60
 --8<--
 Thanks to Fco. Javier Felix for patch.

* Added PAM support for Monit http interface authentication. Note
 that PAM is not supported on all platforms - currently works on
 Linux, Mac OS X, FreeBSD, NetBSD. Monit uses the PAM service "monit".
 Here is a Monit PAM service example for Mac OS X which is able
 to authenticate system users for Monit access -
 /etc/pam.d/monit:
 --8<--
   # monit: auth account password session
   auth       sufficient     pam_securityserver.so
   auth       sufficient     pam_unix.so
   auth       required       pam_deny.so
   account    required       pam_permit.so
 --8<--
 And configuration for monitrc which allows only group admins
 to access the http interface:
 --8<--
   set httpd port 2812 allow @admin
 --8<--
 See the PAM manual page for details on how to configure the PAM
 service on your system and the available PAM plugins. Thanks to
 Wilhelm Meier for patch.

* Added more detailed reports for Monit resource tests on service
 recovery. Thanks to Lars Kotthoff for patch.

* Set locale to C.

* Added a protocol test for testing the SIP protocol which is
 used by popular communication servers such as Asterisk and
 FreeSWITCH. We received two patches for this protocol and have
 taken code from both and merged them. Many thanks to Bret
 McDanel and to Pierrick Grasland for supplying the patches.

* Added MONIT_DESCRIPTION to the list of environment variables
 available to programs started by monit. Thanks to Morten
 Bressendorff Schmidt for patch.

* If a service group is specified for Monit CLI action,
 Monit no longer requires the "all" verb, so the following
 command is possible:
   monit -g web stop
 If group is not specified (i.e. the -g option is omitted), the
 service name or "all" is still required as a safeguard.

* Added an option to the 'set mailserver' statement so it is
 possible to override the hostname used in SMTP EHLO/HELO and in
 the Message-ID header when sending mail. Monit defaults to use
 the localhost name. I.e. what you get when executing this
 command 'uname -n'. Overriding the host name can be useful if
 the host does not have a DNS entry and if the receiving
 mailserver uses DNS verification as spam protection. The new
 override option is:
 set mailserver foo.bar.baz using hostname "my.monit.host"

* A new EVENT_ACTION type was added which reports actions
 performed on Monit's administrator request (either via web
 interface or CLI). If you don't want to received these events,
 you can set the mail-filter for "action" event type.

* NOTA BENE: Monit start action is synchronous now. This improves
 the startup sequence for dependent services, since Monit will
 wait for parent service to start before trying to start the
 child.

* It is now possible to define execution timeout for start and
 stop commands. That is, how long Monit will wait after
 executing a command before it assume execution failed. If the
 timeout option is omitted, Monit defaults to 30 seconds. You
 can override the timeout for example for services which are
 starting slower.
 Example syntax:
   start program = "/bin/foo start" with timeout 60 seconds

* The event passed state is renamed to succeeded as this name
 more reflects the state of things.

* The device service test is renamed to filesystem.

BUGFIXES:

* Some linux virtualization platforms report CPU count as 0.
 Monit then dynamically disabled CPU usage monitoring. In such
 case we now override the CPU count from 0 to 1 so resource
 usage monitoring can continue. Thanks to Jenny Hopkins for
 report.

* Increased the server socket backlog queue which will make Monit
 able to handle more services. Thanks to Jochen Kramer.

* Fixed #24866: Email messages such as: cpu wait usage check
 succeeded [current cpu wait usage=17.4%] were displayed as
 "...usage<SOMEGARBAGE>.4%". The problem was incorrect transfer
 encoding header in the email (the body itself was OK). Thanks
 to Dave Cheney for report.

* When a Monit shutdown requested was issued while Monit were
 working and testing services, Monit did not shutdown until all
 work were done, i.e. until all services were tested. Monit will
 now shutdown faster - as soon as it finish testing the current
 service.

* Monit blocked/unblocked SIGTERM, SIGINT SIGHUP and SIGUSR1
 signals during operation to protect certain code sections. When
 a signal was sent during such a time, for example to stop
 Monit, it was dropped and had to be retried in order to stop
 Monit. This limitation is now removed and signals will be
 processed at any time. Thanks to Nicola Tiling for report.

* If the Monit httpd allow option did not include a
 user:password, Monit CLI logged the following error (even if
 the action was performed anyway):
    Cleartext credentials needed for basic authorization!
 This error was false - even access restriction based on
 host/net is sufficient - user and password is just one of
 possible options (not requirement). Thanks to Gilad Benjamini
 for report.

* Allow localhost as a value for the host header in the http
 protocol test instead of setting an empty host header and let
 the http server decide

* The 'if changed checksum ...' test can now be used even if a
 monitored file doesn't exist at Monit startup. Thanks to Joe
 Shang for report.

* If both event handlers (M/Monit and mail alerts) temporarily
 failed at once and event queue was enabled, events will be
 stored in the queue and delivered in the next cycle. However, a
 bug caused delivery to be retried for every cycle for both
 handlers if just one of them was recovered. Monit could then
 deliver the same message multiple times until both handlers
 recovered. The problem is now fixed and only one copy of the
 event is sent even if only one handler did recover.

* Make unit in size test optional and default to byte unless
 specified. So it is possible to write, if size > 1000 then ..

* Fixed handling of invalid input files in event queue handler.
 Thanks to Fco.Javier Felix for patch.

* Set the content type to text/html for Monit web interface POST
 responses. Thanks to Rich Drummond for patch.

* Fixed #23530: configure script will return error if bison,
 byacc or yacc are not found at Monit compile time.

* Fix CPU and memory monitoring on Solaris (it was disabled on
 Monit start)

* AIX fixes and extensions, Monit should run on AIX without
 problems, including cpu, memory and filesystem monitoring
 (tested with AIX 5.3). Thanks to Brian Downey for support
 and help.

* HP-UX fixes and extensions, Monit should run on HP-UX without
 problems, including cpu, memory and filesystem monitoring.
 Thanks to Brian Downey for support and help.

* Fixed #23467: Don't exit, only issue a warning if the "include"
 statement did not find any files to include.

* Fixed #23530: Event queue did not work with the default
 unlimited slots.

* Fixed #23617: The process cpu usage is initializing in the
 first cycle so the value is set to 0% - if the 'cpu usage <
 xyz%' test was used to check that the process usage is higher
 then given level, it was always true. Monit now skips the
 process cpu usage check in the first cycle.

* Make sure Monit alerts has a unique message id. Thanks to Steve
 Purcell for report

* Fixed possible crash when Monit is watching VPS environment on
 Linux which reports number of CPUs as 0. Thanks to Marius
 Schmidt for report.

* Cleanup event states during a service stop/unmonitor so old
 events are not sent when the service is started/monitored again.

* Fixed #21989: Monit could start two instances of the process
 when service restart is performed and the process is starting
 slowly. Thanks to Nick Upson, Aaron Scamehorn and David Greaves
 for report.

* Fixed #21550: Fix crash when Monit event queue contained an
 empty file. Thanks to Douglas J Hunley for report.

* Fixed possible crash when the 'if changed checksum' test was
 used along with restart action. Thanks to Brian Candler for
 report.

* Fixed #22075: Allow using a mail address as username when using
 SMTP authentication.

* Fixed #22191 and #19823: If the file content test does not match
 anymore, reset the service error state. (Previous versions did
 not clear the error state and kept showing a match in the status
 listing and in the http interface).

* The 'if changed size ...' test can now be used even if the
 monitored file does not exist on monit's start.

* If a htpasswd file is used to control Monit http interface
 access and the hash type is set to MD5 but the file contains
 wrong format (non-MD5), report the error and keep running.
 Formerly Monit exited with an assert exception. Thanks to
 Adrian Bridgett for report.

BACKWARD INCOMPATIBLE CHANGES:
* The current CPU usage test which checked the cpu usage of the
 process itself plus the cpu usage of child processes was
 renamed to TOTALCPU (otherwise it works the same). The new CPU
 usage test checks the CPU usage of the process itself only.
 This change was introduced to align the syntax with MEMORY and
 TOTALMEMORY tests and to allow to test the CPU usage of
 processes which fork child processes but the user don't want to
 include children (such as Mythtv). Users who are using the CPU
 check for services like Apache webserver to watch total cpu
 utilization (including children) should rename the CPU
 statement in their configuration to TOTALCPU.


Thanks a lot to all who have helped with this release and
submitted bug reports, patches and suggested new features. We
do not plan to stop now and hope you all will continue to find
Monit useful and continue to help out.

The best to all users of Monit, the Monit team




reply via email to

[Prev in Thread] Current Thread [Next in Thread]