MQ Exporter for Collectd monitoring
This README should be read in conjunction with the repository-wide
README
that covers features common to all of the collectors in this repository.
This directory contains the code for a monitoring solution
that sends queue manager data to the collectd system.
It also contains configuration files to run the monitor program
The monitor collects metrics published by an MQ queue manager.
The monitor program prints
these metrics to stdout, in a format that is recognised by
collectd. Once processed by collectd, they may be forwarded to
storage systems, where
they can then be queried directly or used by other packages
such as Grafana.
You can see data such as disk or CPU usage, queue depths, and MQI call
counts.
Configuring MQ
No MQ configuration is required, as (unlike the other monitors in this
repository) the program does not run as an MQ Service.
Configuring collectd
There are several steps needed to configure collectd. It will use the
'Exec' interface to manage the MQ collection.
- Edit the mq.conf file to point at the shell script that starts the real
program. The name of the queue manager to be monitored is also given here.
- Edit the shell script mq_coll.sh to set additional parameters for the
program, and ensure the program is being invoked from the correct directory.
- Put mq.conf in the /etc/collectd.d directory. That is read during
startup, telling collectd how to use MQ. It also contains a reference
to the list of metrics generated by the program, which is added to the
global TypesDB configuration.
- Restart collectd to pick up new configuration. For example
systemctl restart collectd
Metrics
Once the monitor program has been started,
you will see metrics being available. The metric names sent to collectd
start with "qmgr" followed by the queue manager name. The next element
is the actual metric (queue_depth, system_cpu etc) followed by the
queue name if appropriate. You can check that the mq_coll program is running
with the ps command. That shows correct configuration of the collectd plugin
and the mq_coll.sh script.
There is some minor rewriting of object names, replacing "." with "" to
conform with the collectd Exec interface; the metric names may get rewritten
again by the conversion to the backend storage (re-replacing "" with "."
perhaps).
The example Grafana dashboard shows how queries can be constructed to extract data
about specific queues or the queue manager.
More information on the metrics collected through the publish/subscribe
interface can be found in the MQ KnowledgeCenter
with further description in an MQDev blog entry
The metrics stored in the database are named after the
descriptions that you can see when running the amqsrua sample program, but with some
minor modifications to match a more useful style.