Aller au contenu principal

ActiveMQ JMX

Vue d'ensemble​

Apache ActiveMQ est un serveur de messagerie multi protocole Open Source développé en Java.

Contenu du connecteur de supervision​

Éléments supervisés​

  • Brokers (queue / topic)

Règles de découverte​

Rule nameDescription
App-Activemq-Jmx-Brokers-NameDiscover ActiveMQ Broker

Métriques collectées​

Metric nameDescription
Broker.store.usage.percentageBroker store percentage usage. Unit: %
Broker.temporary.usage.percentageBroker temporary store percentage usage. Unit: %
Broker.memory.usage.percentageBroker memory usage. Unit: %
Broker.queue.average.enqueue.time.millisecondsBroker average enqueue time (queue). Unit: ms
Broker.queue.consumers.connected.countBroker queue connected consumers. Unit: count
Broker.queue.producers.connected.countBroker queue connected producers . Unit: count
Broker.queue.memory.usage.percentageBroker queue memory usage. Unit: %
Broker.queue.size.countBroker queue size. Unit:count
Broker.queue.messages.enqueued.countBroker enqueued messages. Unit: count
Broker.queue.messages.dequeue.countBroker dequeued messages. Unit: count
Broker.queue.messages.expired.countBroker queue expired messages. Unit: count
Broker.queue.messages.inflighted.countBroker queue inflighted messages. Unit: count
Broker.queue.messages.size.average.bytesBroker queue average messages size. Unit: bytes
Broker.topic.average.enqueue.time.millisecondsBroker average queue time per topic. Unit: ms
Broker.topic.consumers.connected.countBroker connected consumers per topic. Unit: count
Broker.topic.producers.connected.countBroker connected producers per topic. Unit: count
Broker.topic.memory.usage.percentageBroker memory percentage usage per topic. Unit: %
Broker.topic.size.countBroker topic size. Unit:count
Broker.topic.messages.enqueued.countBroker enqueued messages per topic. Unit: count
Broker.topic.messages.dequeue.countBroker messages deuque per topic. Unit: count
Broker.topic.messages.expired.countBroker expired messages per topic. Unit: count
Broker.topic.messages.inflighted.countBroker inflighted messages per topic. Unit: count
Broker.topic.messages.size.average.bytesBroker average messages size per topic. Unit: bytes

Prérequis​

Configuration ActiveMQ​

ActiveMQ embarque un agent Jolokia par défaut à l'adresse : http://localhost:8161/api/jolokia Vous trouverez plus d'informations sur la documentation officielle d'ActiveMQ : https://activemq.apache.org/rest

Installation​

  1. Installer le Plugin sur tous les collecteurs Centreon supervisant des ressources ActiveMQ via JMX:
yum install centreon-plugin-Applications-ActiveMQ-Jmx
  1. Dans l'interface Web de Centreon, installer le connecteur de supervision ActiveMQ JMX depuis la page Configuration > Gestionnaire de connecteurs de supervision
  1. Dans l'interface Web de Centreon, installer le connecteur de supervision ActiveMQ JMX depuis la page Configuration > Gestionnaire de connecteurs de supervision

Configuration​

  • Depuis l'interface Web de Centreon, ajoutez un nouvel Hôte depuis la page "Configuration > Hôtes".
  • Appliquez le modèle "App-Activemq-JMX-custom" et configurez toutes les macros nécessaires:
MandatoryNameDescription
XJOLOKIAURLJolokia URL (ex: http://myactivemq.int.centreon.com:8161/api/jolokia)
XJOLOKIAUSERNAMEJolokia user name
XJOLOKIAPASSWORDJolokia password
JOLOKIAEXTRAOPTIONSAny extra option you may want to add to the command (eg. a --verbose flag)

Utilisez le module discovery pour ajouter vos Brokers à votre supervision Allez dans le menu Configuration > Services > Scan pour exécuter une découverte

FAQ​

Comment puis-je tester le Plugin et que signifient les options des commandes ?​

Une fois le Plugin installé, vous pouvez tester celui-ci directement en ligne de commande depuis votre collecteur Centreon avec l'utilisateur centreon-engine :

/usr/lib/centreon/plugins/centreon_activemq_jmx.pl \
--plugin apps::mq::activemq::jmx::plugin \
--mode Brokers \
--url='http://myactivemq.int.centreon.com:8161/api/jolokia' \
--username='admin' \
--password='admin' \

Cette commande supervise les Brokers d'un serveur ActiveMQ via l'url http://myactivemq.int.centreon.com:8161/api/jolokia (--url='http://myactivemq.int.centreon.com:8161/api/jolokia') à l'aide de l'utilisateur admin et de son password (--username='admin' --password='admin').

La commande retourne le message de sortie ci-dessous:

OK: Broker 'localhost' store usage: 0.00 %, temporary usage: 0.00 %, memory usage: 0.00 % - queue 'foo.bar' average time messages remained enqueued: 0.000 ms, consumers connected: 0, producers connected: 0, memory usage: 0.00 %, queue size: 1, messages enqueued: 0, messages dequeued: 0, messages expired: 0, messages in-flighted: 0, average messages size: 1.09 KB - All topics are ok | 'localhost#Broker.store.usage.percentage'=0.00%;;;0;100 'localhost#Broker.temporary.usage.percentage'=0.00%;;;0;100 'localhost#Broker.memory.usage.percentage'=0.00%;;;0;100

Des seuils peuvent être positionnés à l'aide des options --warning-* et --critical-* sur les métriques.

Pour chaque mode, les options disponibles peuvent être consultées en ajoutant l'option --help à la commande :

/usr/lib/centreon/plugins/centreon_activemq_jmx.pl \
--plugin apps::mq::activemq::jmx::plugin \
--mode Brokers \
--help

Vous pouvez afficher tous les modes disponibles à l'aide de la commande suivante :

/usr/lib/centreon/plugins/centreon_activemq_jmx.pl \
--plugin apps::mq::activemq::jmx::plugin \
--list-mode

J'obtiens le message d'erreur suivant:​

UNKNOWN: protocol issue: Error while fetching http://myactivemq.int.centreon.com:8161/url/path​

Ce message d'erreur indique le plugin n'a pas réussi requêter l'API. Vérifiez que les credentials fournis sont les bons.

UNKNOWN: JMX Request: Cant get a single value.​

Ce message d'erreur indique le plugin n'a pas réussi à récupérer des valeurs via l'API. Vérifiez le chemin de l'url (path).

UNKNOWN: protocol issue: java.lang.Exception : Origin null is not allowed to call this agent​

Jolokia par défaut dans ActiveMQ n'autorise pas le Cross-Origin Resource Sharing (CORS). Il faudra désactiver cette vérification en éditant le fichier jolokia-access.xml et retirer la balise <strict-checking/> :

<cors>
<strict-checking/>
</cors>

Puis redémarrer ActiveMQ