Features I would like to see in Monit
New version of M/Monit
Aheum ... Features in the roadmap don't seem to heavy to develop ... More than one year after 2.4 release, no beta, no preview, no 2.6, nothing. Just wait. Do you know Agile development release cycle ? Where did you go with this 3.0 version ? Come back ! We want new features ! (and no more Flash)
Thanks a lot for asking and for caring. Rest assured that we are busy working on the new 3.0 release and expect to release it in Nov/Des this year. It is true that 3.0 has taken more time than planned, but in the meantime the current M/Monit 2.4 version works very well. We also update Monit frequently. The main reason that we do not use an agile release cycle with M/Monit is that this type of program is usually not something one will want to continuously upgrade, install and test - once installed and configured one usually just want it to work.
The Roadmap is still good, though we might scope out Agent-Less monitoring in the 3.0 version and instead put it into a later 3.1 version. We're working on Agent-Less monitoring right now and we'll see. We have also added many small and a few large changes which we think you will like. - The M/Monit team
Selective reload of config files [from include directive] 2012-05-07
When using the include directive in the control file, to load many config files that my application has, sometimes I wish there was a way to reload just the new config file, instead of reloading the whole stack with `monit reload`. There's no real harm in monit reload, except for that uptime reset. Any way around this?
I have a case where it would be nice if the "else if succeeded.." support would unconditionally do the requested action (in my case, to do an "exec" of a script). Currently, Monit will only execute the "else if" clause if there was a transition from a failure to success. I took a look at event.c and added two instructions and modified two others and got that support. The adding of two instructions were only necessary because I wanted to limit the new processing to ICMP pings.
Maybe you could make this configurable, so as to retain the default behavior?
We have over 875 active servers and growing in our m/monit database, but most of these are VMs running on hypervisors. Well, when we clone a VM, it keeps the original monit.id file from the local disk, and so we end up with multiple hosts checking in with different hostnames and the same monitid. It would be awesome if m/monit would do some kind of a sanity check, where if the same monitid checks in with both hostname and IP are different from what's known about the server, tell that client to generate a new id.
A "restart program" service option would be nice, that would be used every time monit restarts a running service. Then services that support a restart command don't need a full stop/start cycle.
LH: +1 (Especially for "pooled" resources, where a "restart" HUPs `workers`, but keeps a manager running)
Hauk: We'll include this in the new version we are working on
This is for M/Monit
The new downtime reports for hosts and services are nice (needs polishing). It would be interesting to define/filter downtime by time. For instance, the downtime for a service during working ours (ignoring nightly events).
It would be helpful if the site published RSS feed of releases. Its easier this way to stay on top new software releases in your favorite RSS reader.
monit should reload its config files when they've changed, or it should at least have that option. This could be implemented by keeping track of timestamps of monit's config files, but there's a caveat. Since you can't include a directory in monit, you'd have to expand any glob strings any time you're checking timestamps.
It would be nice if non-admin users could see which services are running on a particular host. It seems that currently regular users can only see that 6/9 services are running, but not which ones.
What? You mean monit doesn't support IPv6 yet? Yikes!!!
Also I'm really surprised that no one has implemented a protocol test and monit configuration for DHCPd. It would be really easy to implement and document. Currently all you can do is test the udp port. But that does not confirm an address can be issued. Of all the services that run this is probably THE most critical in many cases. We are using dibbler for DHCPv6d and it died today. Fortunately we noticed it fast and resolved the problem before other machines lost IPv6 connectivity. DHCP is usually very stable and problems with it are really rare. But when it dies it takes the entire network down.
New feature : Add a possibility to start/stop a service / servicegroup on all the machines of a hostgroup would simplify greatly services control on a cluster.
What about this earlier proposal? I think it would be useful (and it hasn't been answered by a monit developer!): "What I would like to do is: whenever I type "alert", send an e-mail AND run a certain script. Is it possible with the current version of monit? From what I can understand from the documentation, it is not. And for instance, there are some "default" events that monit sets up automatically such as "If Pid changed 1 times within 1 cycle(s) then alert", which I should override in order for them to run the script. Overriding those default actions every single time I edit the config file in order to open a new service is a tedious job, they should work automagically!"
I also second the "Allow to test against date and time" proposal below. I have the EXACT same problem.
-- D. Ronchi 2010/04/14
When you use an include rule in the monit config file, you cannot include soft symlinks. For example, I have a rule, 'include /etc/monit/monit.d/*', and everything in that directory is symlinked to other locations. This does not work. You instead have to make hard links.
Jonathan Steel 2010/03/30
Have an option for sending periodic reminders that services are not being monitored. The use case is this: A process times out due to too many restarts. The user then fixes the problem and restarts the process, but forgets to re-enable the service in monit. Some configurable amount of time later, monit should notice that it has a service that is not being monitored and send out an alert.
Jonathan Steel 2010/03/16
When you say `monit start foo`, it should complain if there is no foo in the configuration.
I would have patched this in myself, but I see nowhere on your site where you accept patches from people.
Jonathan Steel 2010/02/18
I'd like the mail format variables available throughout the config so that you can use them when calling external programs. This would provide an easy twitter method among other possibilities.
-- Ben 09/02/2010
Allow users to add certain custom functions to the http panel, I would love having a restart/shutdown button there as well (as in whole system shutdown, not a particular service)
-Ignacio Quintero 2010-01-05
The ability to incorporate custom status messages into the monit web interface. For example, if we could add lines that said "/dev/md0 - rebuilding: 22% complete" or "website traffic - 12 hits/sec", that page would become a much more general-purpose tool. I guess this could be part of the ability to run arbitrary programs that is mentioned below? -Paul 2009-11-25
Allow to test against date and time. My backup task take a lot of ressources between 6am and 7am and I don't want Monit to alert me in that timelaps. syntax could be:
if cpu usage (wait) > 20% and time < 05:00 GMT and time > 07:00 +0100 then alert
if cpu usage (wait) > 20% and before 05:00 GMT and after 07:00 +0100 then alert
+1 +1 +1 +1
Allow custom headers in mail-format block. Our particular use case would be to add Priority headers for special treatment in Outlook and on blackberries.
The ability to use Nagios plug-ins. This would cover a few of the suggestions below and since the plugins are merely shell-scripts/programs that return a return code and a single line of human-readable text they shouldn't be that hard to use.
Add the ability to set a default action other than sending e-mail for alerts. For instance, I'd love to be able to launch a script that sends a push notification to an iPhone through a service like Prowl. I know that instead of using then alert you can use then exec "scriptname", but typing just alert is tidier and you don't have to override the default alerts.
Change the configuration language to a subset of python. Advantages:
- Makes if-else logic simple to write and read
- Users who know python don't need to learn another language
- Maybe easier to parse
- You can abandon your old parser and start fresh, which is fun
Send an abbreviated alert via Twitter's web api (using curl?) to a special account that I am following so I get a SMS on my cell phone --Dave Brown (edit: thanks for the clue below)
Add the possibility to add the last n (say n=10) lines of a specific log-file (e.g. error.log of Apache) to the alert mail, when a specific program crashes (i.e. syslog when syslogd crashes, error.log when Apache crashes etc.).
If this is already possible, please give an Example in the Config. Examples
Reporting - Is there the ability to report / graph the data that Monit is monitoring?
Allow logging possibility. In some cases the log is not enough. It is impossible to tell for what reason the failure happened. I think there should be a possiblity to write log messages. Also it would be usefull to allow more then one operation upon failure. If it is necessary to restart the application and execute some script - this is not possible.