Suggestions about how to change/improve Monit and/or M/Monit
At some point we are going to have to talk about the "T" word...
With mmonit summarizing status and events from many machines, I (and everyone) will need better ways to group services and create notification groups.
Tags seem to be the best option - I have 12 postfix servers 4 are critical infrastructure, I want to tag the "check" configuration with tags of "postfix" and "critical_infra" and "qa" and "colo3" so that I can have escalations in mmonit for "colo3" or ("colo3" and "colo5") and the mail admins want to get notifications for all services tagged "smtp" or "imap" or postfix.
I want a screen on mmonit where I can filter events by tag and view host/service status by tag. Everyone will after they see it...
check process postfix with pidfile /var/spool/postfix/pid/master.pid start program = "/sbin/service postfix start" stop program = "/sbin/service postfix stop" if failed port 25 then restart if 2 restarts within 3 cycles then timeout if cpu > 90% for 2 cycles then alert if totalmem > 2048 MB for 2 cycles then alert group blah mode passive depends on varfs depends on postfix_rc tags postfix, critical_infra, colo5, smtp, us_users, canada_users, 20min_sla, OS_F9, ibm_bc07, project_porcupine, project_mars, VLAN_115
I think in general the idea is good. It seems to me however, that the same could be implemented cleanly by extending existing groups in Monit. Currently In Monit the service may be member of one group only - we can add support for multiple groups membership. This can provide the same service tagging as proposed tags, but will allow as well to perform actions on service groups using existing infrastructure. In M/Monit you will work with service groups which can span multiple Monit instances/hosts.
Other HTTP verbs and statuses
I could use a "DELETE /certain/url" HTTP request, and expect other statuses than 200. Can do with SEND/EXPECT.