Features I would like to see in Monit
Add a 3rd user type
that allows start/stop/monitor without access to 'admin' panel
Add Args support to 'check program'
so we don't have to write hundreds of wrappers or create symlinks to wrappers with $0 checks
check program disk_temp_sda with path /usr/local/etc/monit/scripts/disk_temp.sh sda
check program disk_temp_sdb with path /usr/local/etc/monit/scripts/disk_temp.sh sdb
For monitoring IPv6 services, IPv6 support will be really appreciated.
Inhibit testing based on dependencies 2013-07-18
When service A depends on service B, and service B is offline with no restart command - or its restart failed, then service A should not be tested nor stopped nor restarted at all (well, possibly stopped actually, in accordance with dependencies current documentation).
There should be some option for this, so that services would not restart during maintenance (manually stopped), and only get restarted when crashed or not responding (supposedly started).
Currently one must manually call monit to stop and unmonitor services during maintenance. But people don't think about monit they just manage the service directly using (e.g. on RH/sysvinit) "service xxx stop|start". Since on RH these manage flag files in /var/lock/subsys, I would like to add "check file" blocks on these and depend on it in actual service blocks; Then the service would only be tested and restarted when it was actually started, and not while manually stopped.
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
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 custom headers in mail-format block. Our particular use case would be to add Priority headers for special treatment in Outlook and on blackberries.
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
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
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.