|  | CHANGES version 5.4 | 
|  |  | 
|  | This file summarizes changes made since 5.0 | 
|  |  | 
|  | Bug fixes may refer to an auto-generated id in our | 
|  | bug-tracking system, which can be found here | 
|  | https://savannah.nongnu.org/bugs/?group=monit | 
|  |  | 
|  |  | 
|  | Version 5.4 | 
|  |  | 
|  | IMPROVEMENTS: | 
|  |  | 
|  | * New process uptime test added. Allows to do some action in | 
|  | the case that the process uptime matches the given limit. | 
|  | For example to restart the process once per 3 days: | 
|  | if uptime > 3 days then restart | 
|  |  | 
|  | * Linux uCLibc support: use internal getloadavg implementation | 
|  | in the case that the system libc doesn't implement it. | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * The monit hostname will fallback to plain machine's hostname if the | 
|  | lookup for FQDN hostname didn't found matching entry. The problem | 
|  | was, that based on the order in the /etc/hosts the FQDN lookup | 
|  | returned sometimes 'localhost' instead of the FQDN hostname. | 
|  |  | 
|  | * The CPU usage for multi-threaded processes on multi-core machine was | 
|  | reported incorrectly in the case that the process used more CPU | 
|  | resources then equivalent to one core. Thanks to Tom Pepper for patch. | 
|  |  | 
|  | * The content match test now sends one event per cycle and pattern. | 
|  | Even if there are multiple lines matching the same pattern, only | 
|  | one event will be generated. Also the event rate is fixed now, so | 
|  | it is possible to require match for X cycles before generating the | 
|  | event. | 
|  |  | 
|  | * The /proc/ files content match test was skipped, as the file size on | 
|  | the procfs is 0, so monit supposed that there is no content to read. | 
|  |  | 
|  | * FreeBSD: If the monitored process had children with multiple threads, | 
|  | the total memory usage was reported incorrectly. Thanks to Phil Kulin | 
|  | for reporting the problem. | 
|  |  | 
|  | * Allow reading status and perform Monit actions when using client SSL | 
|  | certificate. Previously, if Monit http server was setup to use ssl | 
|  | and a client cert, status and action failed. Thanks to Markus Linnala | 
|  | for initial patch. | 
|  |  | 
|  | * When the process is starting/stopping, do the process state check more | 
|  | effectively to not stress the low power devices with aggresive polling. | 
|  | Thanks to Thomas Petazzoni for initial patch. | 
|  |  | 
|  | * Make the process start/stop wait resistant to large time changes. | 
|  |  | 
|  | * Compilation: If PAM is enabled but the PAM headers or library are not | 
|  | found by the configure script, it will report error. | 
|  |  | 
|  | * Cross-compilation: the configure checks the setjmp and vsnprintf with | 
|  | test program which usually cannot be executed when cross-compiling | 
|  | for other architecture. The configure script now takes the following | 
|  | arguments which allow to specify whether the setjmp works on this | 
|  | platform and whether the vsnprintf is C99 compliant. Thanks to | 
|  | Thomas Petazzoni for patch. | 
|  | ./configure \ | 
|  | libmonit_cv_setjmp_available=[yes|no] \ | 
|  | libmonit_cv_vsnprintf_c99_conformant=[yes|no] | 
|  |  | 
|  | * Manual page language fixes. Thanks to Jonathan Boulle for patch. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.3.2 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Fix bug #34801: The file content match test did reset of the | 
|  | read position in the case that the unmonitor or stop action | 
|  | was done. When the file monitoring was enabled again, the | 
|  | content match test was applied to the content which was | 
|  | tested already. | 
|  |  | 
|  | * Log error details in the case that the name resolving failed. | 
|  |  | 
|  | * Fix the system cpu usage statistics when pattern based process | 
|  | check is used and the service is restarted. Thanks to Wayne | 
|  | Lawrence for report. | 
|  |  | 
|  | * AIX 6.1 compile fix. Thanks to Benedikt Wegmann for patch. | 
|  |  | 
|  | * Debian Bug#652715: "include files not found" warning. Do not | 
|  | display the warning if the include directory is empty. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.3.1 | 
|  |  | 
|  | IMPROVEMENTS: | 
|  |  | 
|  | * Log the particular connection attempt failure in debug mode | 
|  | when the retry is enabled. | 
|  |  | 
|  | * Monit can deliver events and status to independent M/Monit | 
|  | instances if multiple mmonit URLs are set: | 
|  | set mmonit https://user1:pass1@mmonit1/collector | 
|  | https://user2:pass2@mmonit2/collector | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * The ICMP echo (ping) test may report false positive error | 
|  | if the machine where Monit is running has heavy ICMP | 
|  | traffic generated by other applications. | 
|  |  | 
|  | * The file content match test will be performed even on the | 
|  | existing content when Monit starts. The last position is | 
|  | saved to the statefile, so monit won't generate alert | 
|  | after restart. Note that when you start the monit 5.3.1 | 
|  | the first time, it can do actions for content match which | 
|  | was handled by previous monit version already as the | 
|  | previous monit versions didn't saved the position. | 
|  |  | 
|  | * Make the monitoring state persistent for manual mode services. | 
|  |  | 
|  | * Display the memory usage total % in the status overview. | 
|  | The memory usage in kB displayed the total already, so the | 
|  | percentage didn't match. | 
|  |  | 
|  | * Fix the HTML overview page alignment in the Internet Explorer. | 
|  | Thanks to Darhl Thomason for patch. | 
|  |  | 
|  | * Extend the SSL library search path for Debian Sid. | 
|  |  | 
|  | * Fix Solaris 10 compilation and Sun Studio support. | 
|  |  | 
|  | * Fix sporadic SSL routines:func(169):reason(161) errors | 
|  |  | 
|  | * If MySQL protocol test failed, report the correct MySQL | 
|  | error code. Thanks to Vitaly Lipatov for patch. | 
|  |  | 
|  |  | 
|  | Version 5.3 | 
|  |  | 
|  | * New 'check program' statement added. Allows to check the exit | 
|  | status of an external program or script from Monit. | 
|  |  | 
|  | * Added crontab style support for individual services. You can | 
|  | now specify when an individual service should run its checks | 
|  | (or not run). You can now, for instance, specify that apache | 
|  | should be checked continuously, except between 1AM-5AM on | 
|  | Sunday. | 
|  |  | 
|  | * Connection retry option added. Allows to retry a network | 
|  | connection in the same testing cycle before reporting an error. | 
|  |  | 
|  | * Detailed protocol connection errors are now included in alerts. | 
|  |  | 
|  | * The HTML overview page displays the CPU and memory total now | 
|  | (including children), so real service related usage is displayed | 
|  | also for services which spawn worker processes, such as Apache | 
|  | or Spamassassin. | 
|  |  | 
|  | * HTML view improvements | 
|  |  | 
|  | * Fix MySQL protocol test: MySQL 5.5.12 returns new error code in | 
|  | the case of authentication failure. | 
|  |  | 
|  | * Fix Debian bug #621047: monit fails to build after SSLv2 removal | 
|  |  | 
|  | * Fix crash on Solaris which may occur if the system load is zero. | 
|  | Thanks to Paul Sun for report. | 
|  |  | 
|  | * The stacktrace logging on error is disabled in -v (verbose) mode | 
|  | as it was too verbose for common service debugging tasks, it can | 
|  | be enabled using -vv option. | 
|  |  | 
|  | * Improve how fast Monit check if a program was started or stopped. | 
|  | Thanks to Michael Renner for patch. | 
|  |  | 
|  | * Fix the monitoring state presentation during service restart which | 
|  | temporarily displayed "Not monitored", whereas the monitoring was | 
|  | enabled. | 
|  |  | 
|  | * The "data collected" is updated only if the check was not skipped. | 
|  |  | 
|  |  | 
|  | Version 5.2.5 | 
|  |  | 
|  | * Fix process match check - when the monitored process failed and | 
|  | was restarted by Monit, Monit didn't recognized  it is  running | 
|  | after the restart and reported  start failure (similar on stop). | 
|  | Thanks to  Kenichi Futatsumori for report and  helping to root | 
|  | cause the problem. | 
|  |  | 
|  | * Fix Debian #617259: symbolic links in the filesystem check doesn't | 
|  | work.  Thanks to Sergey B Kirpichev for report. | 
|  |  | 
|  | * Fix Debian bug #614984: smtp protocol test issues both EHLO and | 
|  | HELO.  Thanks to Sergey B Kirpichev for report. | 
|  |  | 
|  | * Fix bug #32583: Multiple SIP OPTIONS messages use the same header | 
|  | data.  Thanks to Hugh Waite for patch. | 
|  |  | 
|  | * Try harder to get FQDN hostname for the host where monit is running. | 
|  | The hostname in the $HOST variable which is used in the mail sender | 
|  | may thus change. Thanks to Sergey B Kirpichev for patch. | 
|  |  | 
|  | * AIX: Fix the time display which was off by GMT difference. Thanks | 
|  | to Helen Chen for report. | 
|  |  | 
|  | * AIX: Fix the M/Monit heartbeat. Thanks to Helen Chen for report. | 
|  |  | 
|  | * Support symbolic link to monit configuration file. | 
|  |  | 
|  | * Fix crash when monit daemon start delay option was used and monit | 
|  | was signalized to stop before the start delay passed. Thanks to | 
|  | John Schult for report. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.2.4 | 
|  |  | 
|  | NEW FEATURES AND FUNCTIONS: | 
|  |  | 
|  | * Added the "procmatch" CLI command which allows for easy testing | 
|  | of pattern for process match check. The command takes regular | 
|  | expression as an argument and displays all running processes | 
|  | matching the pattern. Example usage: | 
|  | $ monit procmatch "iChatAgent" | 
|  |  | 
|  | * Set the default log file mask to 0640 (originally it was 0664). | 
|  | Thanks to Sergey B Kirpichev. | 
|  |  | 
|  | * Reduced monit memory footprint by ca. 10%. | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * FreeBSD, NetBSD, OpenBSD, MacOSX, Solaris filesystem check fix: | 
|  | If block/character device was used in the filesystem path instead | 
|  | of mountpoint, monit reported usage of wrong filesystem. | 
|  |  | 
|  | * NetBSD filesystem check: Fix space usage report. | 
|  |  | 
|  | * Fix memory usage monitoring in OpenVZ VPS 2.6.32 virtual hosts. | 
|  | Thanks to Kelly for report. | 
|  |  | 
|  | * If the protocol test failed, show the request in the event. Thanks | 
|  | to Marco for report. | 
|  |  | 
|  | * Randomize the mail message id to prevent duplicates in the case, that | 
|  | the same hostname is used on multiple hosts running monit and messages | 
|  | are generated in the same second in parallel. Thanks to Sergey B | 
|  | Kirpichev. | 
|  |  | 
|  | * Spelling fixes. Thanks to Sergey B Kirpichev. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.2.3 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Mysql protocol test supports mysql 5.5.x and newer now. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.2.2 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Fix crash on MacOSX | 
|  |  | 
|  | * ICMP echo test (ping): | 
|  | - bug #31128: do not log error if different response type is received | 
|  | - bug #31129: do not require root to use ping test. Privilege to create | 
|  | raw socket is still required, but on some platforms such as Solaris it | 
|  | can be granted to non-root users too. If the user has no permission to | 
|  | perform ping, monit will skip the icmp test and log message (in debug | 
|  | mode only). | 
|  |  | 
|  | * rsync protocol test: | 
|  | - wait for full server response and verify exit was received | 
|  | - bug #31249: send full version to rsync server. Thanks to John Hall | 
|  | for report | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.2.1 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * HTTP and URL protocol tests: Fixed a problem where HTTP protocol | 
|  | tests using a specific request always failed. This bug may also | 
|  | affect URL tests. The problem was caused by faulty URL encoding. In | 
|  | the process of fixing this bug the new feature that allowed slash in | 
|  | service names has been reverted and instead will be added in a later | 
|  | release. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.2 | 
|  |  | 
|  | NEW FEATURES AND FUNCTIONS: | 
|  |  | 
|  | * Added support for monitoring processes without pidfile using pattern | 
|  | matching. You can use POSIX regular expressions or string matching | 
|  | process name with arguments as provided by the 'ps' utility. If the | 
|  | pattern matches multiple processes, the first match is used. | 
|  | Example: | 
|  | check process debian | 
|  | matching "/usr/lib/vmware/bin/vmware-vmx .*deb.vmx" | 
|  |  | 
|  | * Added support for swap monitoring. Example: | 
|  | check system myserver | 
|  | if swap usage > 25% then alert | 
|  |  | 
|  | * Allow to override the default action when service doesn't exist. The | 
|  | default action is restart, it can be customized with following | 
|  | statement: | 
|  | if [does] not exist [[<x> times within] <y> cycles] then <action1> | 
|  |  | 
|  | * Monit automatically registers credentials with M/Monit now, so it's | 
|  | not necessary to set it manually in M/Monit anymore. To disable | 
|  | credentials registration: | 
|  | set mmonit https://monit:monit@10.0.0.1:8443/collector | 
|  | and register without credentials | 
|  |  | 
|  | * Added memcache protocol test. Thanks to Sébastien Debrard for the | 
|  | patch. | 
|  |  | 
|  | * Added openssl FIPS to Monit httpd. Thanks to Lior Okman for the | 
|  | patch. | 
|  |  | 
|  | * The 'check system' can now use start/stop program statements too. | 
|  |  | 
|  | * Added the option to set the "Reply-To" mail header in mail-format. | 
|  |  | 
|  | * Display backtrace on error if debug mode is enabled (requires | 
|  | backtrace support in libc) | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Show real process uptime - formerly the presented uptime was based | 
|  | on create and modify timestamp of process' pidfile which provides | 
|  | invalid uptime if the pidfile is replaced and process keeps running | 
|  | with original PID. Thanks to Nima Chavooshi for report. | 
|  |  | 
|  | * When user triggered action for some service (such as stop) and | 
|  | before that action completed user triggered another action for the | 
|  | same service (such as start), the second action has been ignored. | 
|  | Monit will not accept new action and return temporary error until | 
|  | the previous action completed. | 
|  |  | 
|  | * If process resource usage gathering failed, retry next cycle as the | 
|  | error can be temporary. | 
|  |  | 
|  | * Fixed sporadic failures when SSL was used. | 
|  |  | 
|  | * ICMP echo test (ping): | 
|  | - fixed sporadic false positive/negative | 
|  | - removed limit of 20 pings per cycle | 
|  |  | 
|  | * DNS test: | 
|  | - accept NS root request refusal as correct response because | 
|  | server reacts on request | 
|  | - accept authority answer as alternative to record. Thanks to | 
|  | Nick Osborn for patch | 
|  |  | 
|  | * RADIUS test fix. Thanks to Alan DeKok for patch. | 
|  |  | 
|  | * M/Monit heartbeat is fully independent of testing cycle now to | 
|  | prevent false positive when service test blocks. | 
|  |  | 
|  | * Fixed SMTP STARTTLS protocol, required for servers that adhere | 
|  | strictly to RFC 3207 4.2. Thanks to Lorenzo A. Sedano Cadinanos for | 
|  | patch. | 
|  |  | 
|  | * Service name: | 
|  | - allow the service name to start with "/" | 
|  | - fixed handling of the service names which contain "/" in the | 
|  | name in Monit web interface. Thanks to Artyom Khafizov for | 
|  | patch. | 
|  |  | 
|  | * When 'check system' is not defined, monit adds it automatically | 
|  | using hostname for service name. If existing service was defined | 
|  | with the same service name (matching hostname), monit didn't added | 
|  | the entry and reported confusing error message pointing to the end | 
|  | of configuration file. Thanks to Thorsten Kampe for report and help. | 
|  |  | 
|  | * Remove extra NL characters from message when resource succeeded | 
|  | event is sent. The extra NL character may break the mail headers. | 
|  | Thanks to Hanno Boeck for patch. | 
|  |  | 
|  | * Fixed display of cpu user/system/wait usage which temporarily | 
|  | displayed -1.0% between two monitoring cycles while cpu monitoring | 
|  | was initializing. Thanks to Marcus Muelbuesch for report. | 
|  |  | 
|  | * Fixed display of port response time as -1 if 'monit status' was | 
|  | called in the middle of service test. | 
|  |  | 
|  | * Fixed display of service initializing state after monit start or | 
|  | reload. | 
|  |  | 
|  | * Fixed MONIT_DESCRIPTION environment variable. Thanks to Marco | 
|  | Roeland for patch | 
|  |  | 
|  | * AIX: | 
|  | - fixed compilation | 
|  | - fixed system load average monitoring | 
|  | - fixed ICMP echo test | 
|  |  | 
|  | * Mac OS X: | 
|  | - allow monitoring of system-wide load average, cpu and memory | 
|  | usage even if | 
|  | Monit is running as non-root user | 
|  |  | 
|  | * NetBSD: | 
|  | - fixed ICMP echo test | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.1.1 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Fix FTP protocol test. Thanks to Axel Reinhold for report. | 
|  |  | 
|  | * Fix the HTTP protocol test's hostheader option which was added in 5.1. | 
|  | Thanks to Naoya Nakazawa for report. | 
|  |  | 
|  | * Removed warning about missing system service check. Missing system service | 
|  | check is not error and it shouldn't be reported as such. | 
|  |  | 
|  | * Fix manual page formating. Thanks to Stefan Alfredsson for report. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.1 | 
|  |  | 
|  | NEW FEATURES AND FUNCTIONS: | 
|  |  | 
|  | * It is now possible to define any action for the restart timeout rule. | 
|  | Multiple restart timeout rules can also be defined. Example: | 
|  | if 3 restarts within 5 cycles then exec "/foo/bar" | 
|  | if 8 restarts within 10 cycles then unmonitor | 
|  |  | 
|  | * Service can be added to multiple groups. Thanks to Brad Gessler | 
|  | for suggestion. Syntax: | 
|  | check filesystem wwwdata with path /www | 
|  | group www | 
|  | group filesystem | 
|  |  | 
|  | * Added GPS protocol test. Thanks to Sebastien Debrard for patch. | 
|  |  | 
|  | * Added RADIUS protocol test. Thanks to Alan DeKok for patch. Example syntax: | 
|  | check process radiusd with pidfile /var/run/radiusd.pid | 
|  | start program = "/etc/init.d/freeradius start" | 
|  | stop program = "/etc/init.d/freeradius stop" | 
|  | if failed | 
|  | host 127.0.0.1 port 2000 type udp protocol radius secret testing1234 | 
|  | then alert | 
|  | if 5 restarts within 5 cycles then timeout | 
|  |  | 
|  | * The HTTP protocol test now supports a hostheader option which allows to | 
|  | override Host header in HTTP request. It can be used for example | 
|  | to test a farm of HTTP servers by IP addresses and to set specific | 
|  | Host header. Thanks to Brady Catherman for patch. Example: | 
|  | if failed host 192.168.1.100 protocol http hostheader "example.com" then alert | 
|  |  | 
|  | * If an error occur during Monit command-line execution, report the error | 
|  | and exit with 1, so it is possible to react if Monit is used from a script. | 
|  | On success, 0 is returned as usual. Previously, Monit always exited with | 
|  | 0 even if an error occurred. | 
|  |  | 
|  | * Do not require SSL version type when specifying SSL communication with M/Monit | 
|  | (SSL version is set to auto). | 
|  |  | 
|  | * If the Monit http interface failed to start, provide more details about | 
|  | the reason. | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Support resource monitoring (cpu usage, etc.) when Monit is running | 
|  | inside virtual environment. Tested on: | 
|  | - FreeBSD jail | 
|  | - Solaris zone | 
|  | - Linux Vserver | 
|  |  | 
|  | * Fix #26752: inside Solaris Zone, Monit failed to detect children | 
|  | and computed host memory wrong | 
|  |  | 
|  | * On Solaris, FreeBSD, NetBSD and OpenBSD, Monit no longer needs to run as root user | 
|  | in order to be able to watch process resource usage (cpu and memory). | 
|  |  | 
|  | * Send heartbeat to M/Monit even if Monit is busy in a long testing cycle to prevent | 
|  | false alerts about non-responsive Monit agent. | 
|  |  | 
|  | * Fixed SMTP protocol test which may sometimes incorrectly | 
|  | report ESMTP protocol failure. Thanks to Axel Reinhold for | 
|  | report. | 
|  |  | 
|  | * Fixed content match check which reported only first | 
|  | match during the same cycle. Thanks to Pavel Shevaev for | 
|  | report. | 
|  |  | 
|  | * Allow for the use of complete SSL certificate chains. | 
|  | Thanks to Lawrence Tan for patch. | 
|  |  | 
|  | * Added support for multiline greetings to FTP protocol test. | 
|  | Thanks to Giovanni D'Cristina for report. | 
|  |  | 
|  | * Fix Debian Bug #541139: uses gethostbyname() and thus does | 
|  | not work with "options inet6" in /etc/resolv.conf. Thanks to | 
|  | Michael Stapelberg for patch. | 
|  |  | 
|  | * If Monit configuration allowed http interface access for a read-only | 
|  | user and it was specified as the first allow entry, Monit command line | 
|  | commands failed because it used the read-only account so commands | 
|  | like start, stop, etc. were rejected. Monit will now use full access | 
|  | regardless of allow option order. Thanks to Thorsten Kampe for report. | 
|  |  | 
|  | * Passive monitoring mode fixed. Thanks to Nelson Vale for report. | 
|  |  | 
|  | * Fixed #27784: wait_start/wait_stop can advance too quickly. | 
|  | Thanks to Randy Puro for report. | 
|  |  | 
|  | * Solaris resource usage fixed when Monit was compiled with optimizations enabled. | 
|  |  | 
|  | * Fixed #28369: escape XML properly | 
|  |  | 
|  | * Check service name uniqueness when 'check system' is missing in monitrc and virtual | 
|  | system service with name set to local hostname is added. Thanks to Marcus Muelbuesch | 
|  | for report. | 
|  |  | 
|  | * Fix crash when queued event delivery was retried for service which was no longer | 
|  | configured in Monit. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.0.3 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Fixed #26664: crash on service timeout or unmonitor action | 
|  | (introduced in 5.0.2). Thanks to Bretislav Kubesa and | 
|  | Michael Shigorin for report. | 
|  |  | 
|  | * Removed the configure --without-resource option. If the user | 
|  | who is running Monit doesn't have permissions to check the | 
|  | processes state, the related checks are disabled dynamically. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.0.2 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * 35 improvements based on code scan with Klocwork | 
|  | (http://www.klocwork.com/) which we were evaluating. | 
|  | Huge thanks to Klocwork for their great product. | 
|  |  | 
|  | * Fixed #26382: if start or stop script for some service didn't | 
|  | exist, monit logged error during configuration file parsing and | 
|  | refused to start. Monit now just logs warning and continues. | 
|  |  | 
|  |  | 
|  |  | 
|  | Version 5.0.1 | 
|  |  | 
|  | BUGFIXES: | 
|  |  | 
|  | * Fixed a bug where Monit did not stop logging succeeded events. | 
|  | This bug occurred if PID, PPID, timestamp or size change tests | 
|  | were used and failed and then succeeded again. | 
|  |  | 
|  |  | 
|  |  | 
|  | 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. | 
|  |  |