i am currently looking for an open-source monitoring solution like zabbix and icinga. While these both seem to be very powerful for monitoring generic states of hard- and software, I am missing information -- for me -- important functionality, or i could not figure out how it could work by just reading their documentation.
I would like to integrate some job-queue in such a monitoring tool. On the one hand, I need to know summary information of the queue like generic availability etc., which would be no problem to integrate with one of these tools. On the other hand i would like to have additional detailed information about whats going on in the queues.
I would like develop a plugin, which could return an arbitrary amount of detailed data -- like information about each job stored in the queue -- which i could fill in a custom view / template, which i could nicely integreate in one of these monitoring tools.
Is this possible with zabbix, icinga or any other open-source monitoring solution?
Have you considered Nagios? It allows one to write plugins (in any language) and generally easily integrate them into the monitoring framework. In fact, it might be possible that with all the users running Nagios out there, a plugin might be out there that does what you want.
To store more specific information about a job or specific contents in a queue, you might consider construction of some simple Web CGI scripting using the Nagios collection agent to obtain the required data from the server.
As Nagios runs under Apache, this could be a possible approach.
Since you've added the
nagios
tag, I give you an example with it and NRPE.Firstly, write your own plugin in favourite language. Remember the return codes:
Here's shell script snippet to monitor the length of a list in Redis:
Secondly, define a command in
/etc/nagios/nrpe.cfg
, something like this:And thirdly, on the Nagios server, this plugin can be called with: