Templating interested me a lot, and I'm wondering if anyone's thought about it before the same way I'm thinking about it now: in NMSs you get the concept of a device being a structure that holds a number of services (SNMP, SMTP, POP3, IMAP, WWW, etc, etc...) that can be monitored for key performance indicators as well as general availability. What I'm looking at doing -- and I'd greatly appreciate any pointers, tips or general comments about the idea -- is extending the template engine so that you can template a service -- let's say, SMTP.
The template for SMTP (or, really, any service) has three parts to it: Capability, Availability and Monitoring.
- Capability is a boolean yea or nay about whether or not this device supports the service. For SMTP this would be as simple as connecting to port 25 (by default, although it would be configurable on a host-by-host basis) and waiting for the SMTP greeting line.
Availability is something like an ongoing check for Capability: every polling interval it checks for the capability again, and raises some kind of alert if it's not there.
Monitoring is the collection of the data that Cacti stores in its RRAs and uses for graphing. For SMTP this could include things like average messages per second/minute/hour/day/year/century/so on, number of bounce-back messages, number of denied messages, number of successful deliveries, and so on
I'm also interested in adding a customisable 'dashboard'-type view. With the current, in-house software we use to monitor the servers we support, we have a page that periodically refreshes itself with new alerts and alarms. I'd like to create something similar for Cacti, with a list of the alerts and so on, and maybe certain key graphs that we want to keep an eye on. This, of course, will be projected onto one of our walls, so screen real-estate isn't really an issue. It's mostly a matter of drawing them out of the different parts of the system. Again, any comments or pointers would be greatly appreciated.