Áú»¢¶Ä²©

This is the documentation page for an unsupported version of Áú»¢¶Ä²©.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

4 D¨¦couverte d'objets JMX

Aper?u

Il est possible de »å¨¦³¦´Ç³Ü±¹°ù¾±°ù tous les attributs MBeans ou MBean JMX ou de sp¨¦cifier un mod¨¨le pour la d¨¦couverte de ces objets.

Il est indispensable de comprendre la diff¨¦rence entre Mbean et les attributs Mbean pour la configuration des r¨¨gles de d¨¦couverte. Un MBean est un objet pouvant repr¨¦senter un p¨¦riph¨¦rique, une application ou toute ressource devant ¨ºtre g¨¦r¨¦e. Par exemple, il existe un Mbean qui repr¨¦sente un serveur Web. Ses attributs sont : nombre de connexions, nombre de threads, d¨¦lai de requ¨ºte, cache de fichier http, utilisation de la m¨¦moire, etc. En exprimant cette pens¨¦e en langage humain compr¨¦hensif, nous pouvons d¨¦finir une machine ¨¤ caf¨¦ comme un Mbean dont les attributs ¨¤ surveiller sont les suivants : quantit¨¦ d'eau par tasse, consommation moyenne d'eau pendant une certaine p¨¦riode, nombre de grains de caf¨¦ requis par tasse, grains de caf¨¦ et temps de remplissage en eau, etc.

Cl¨¦ d'¨¦l¨¦ment

Dans la configuration de la r¨¨gle de d¨¦couverte, s¨¦lectionnez agent JMX dans le champ Type.

La cl¨¦ d¡¯¨¦l¨¦ment ¨¤ utiliser est

jmx.discovery[<discovery mode>,<object name>]

´Ç¨´

  • discovery mode - l'un des ¨¦l¨¦ments suivants : attributs (r¨¦cup¨¦rer les attributs JMX MBean, valeur par d¨¦faut) ou beans (r¨¦cup¨¦rer le MBean JMX)
  • object name - mod¨¨le de nom d'objet identifiant les noms de MBean ¨¤ r¨¦cup¨¦rer (vide par d¨¦faut, r¨¦cup¨¦rant tous les beans enregistr¨¦s).

Vous pouvez consulter la ObjectName pour conna?tre les options permettant de sp¨¦cifier un mod¨¨le de nom d'objet.

Si aucun param¨¨tre n'est transmis, tous les attributs MBean de JMX sont demand¨¦s.

Ne pas sp¨¦cifier de param¨¨tres pour la d¨¦couverte JMX ou essayer de recevoir tous les attributs pour une large plage comme *:type=*,name=* peut entra?ner des probl¨¨mes de performances.

Cette cl¨¦ est support¨¦e depuis la passerelle Java Áú»¢¶Ä²© 3.4.

Exemples de cl¨¦s d'¨¦l¨¦ment :

jmx.discovery  #Retrieve all JMX MBean attributes
       jmx.discovery[beans]  #Retrieve all JMX MBeans
       jmx.discovery[attributes,"*:type=GarbageCollector,name=*"]  #Retrieve all garbage collector attributes
       jmx.discovery[beans,"*:type=GarbageCollector,name=*"]  #Retrieve all garbage collectors

Cet ¨¦l¨¦ment renvoie un objet JSON. Par exemple, lors de la d¨¦couverte d'attributs MBean (reformat¨¦ pour plus de clart¨¦) :

{
          "data":[
             {
                "{#JMXVALUE}":"0",
                "{#JMXTYPE}":"java.lang.Long",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXDESC}":"java.lang:type=GarbageCollector,name=PS Scavenge,CollectionCount",
                "{#JMXATTR}":"CollectionCount"
             },
             {
                "{#JMXVALUE}":"0",
                "{#JMXTYPE}":"java.lang.Long",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXDESC}":"java.lang:type=GarbageCollector,name=PS Scavenge,CollectionTime",
                "{#JMXATTR}":"CollectionTime"
             },
             {
                "{#JMXVALUE}":"true",
                "{#JMXTYPE}":"java.lang.Boolean",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXDESC}":"java.lang:type=GarbageCollector,name=PS Scavenge,Valid",
                "{#JMXATTR}":"Valid"
             },
             {
                "{#JMXVALUE}":"PS Scavenge",
                "{#JMXTYPE}":"java.lang.String",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXDESC}":"java.lang:type=GarbageCollector,name=PS Scavenge,Name",
                "{#JMXATTR}":"Name"
             },
             {
                "{#JMXVALUE}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXTYPE}":"javax.management.ObjectName",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXDESC}":"java.lang:type=GarbageCollector,name=PS Scavenge,ObjectName",
                "{#JMXATTR}":"ObjectName"
             }
          ]
       }

Dans la d¨¦couverte des MBeans (reformat¨¦s pour plus de clart¨¦) :

{
          "data":[
             {  
                "{#JMXDOMAIN}":"java.lang",
                "{#JMXTYPE}":"GarbageCollector",
                "{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
                "{#JMXNAME}":"PS Scavenge"
             }
          ]
       }

Macros support¨¦es

Les macros suivantes sont support¨¦es pour le filtre de r¨¨gles de d¨¦couverte et les prototypes d'¨¦l¨¦ments, de d¨¦clencheurs et de graphiques :

Macro Description
D¨¦couverte des attributs MBean
{#JMXVALUE} Valeur d'attribut.
{#JMXTYPE} Type d'attribut.
{#JMXOBJ} Nom de l'objet.
{#JMXDESC} Nom de l'objet, y compris le nom de l'attribut.
{#JMXATTR} Nom d'attribut.
D¨¦couverte des MBeans
{#JMXDOMAIN} Domaine MBean. (Nom r¨¦serv¨¦ Áú»¢¶Ä²©)
{#JMXOBJ} Nom de l'objet. (Nom r¨¦serv¨¦ Áú»¢¶Ä²©)
{#JMX<key property>} Propri¨¦t¨¦s du MBean (comme {#JMXTYPE}, {#JMXNAME}). Remarques importantes ¨¤ prendre en compte lors de la d¨¦finition du nom d'attribut MBean cr¨¦¨¦ ¨¤ partir du nom de la propri¨¦t¨¦ MBean ¨¤ l'aide de l'algorithme suivant :

* la casse du nom d'attribut est chang¨¦e en majuscule ;
* la casse du nom d'attribut est ignor¨¦e (aucune macro LLD n'est g¨¦n¨¦r¨¦e) s'il s'agit de caract¨¨res non support¨¦s. Les caract¨¨res pris en charge peuvent ¨ºtre d¨¦crits par l'expression r¨¦guli¨¨re suivante: "A-Z0-9_\." ;
* Si un nom d'attribut est appel¨¦ "obj" ou "domain", il sera remplac¨¦ par les valeurs des propri¨¦t¨¦s Áú»¢¶Ä²© {#JMXOBJ} et {#JMXDOMAIN} (support¨¦es depuis Áú»¢¶Ä²© 3.4.3.).

Veuillez consid¨¦rer cet exemple avec jmx.discovery (avec le mode "beans"). MBean a les propri¨¦t¨¦s suivantes d¨¦finies :

name=test
       §ä§Ú§á=Type
       attributes []=1,2,3
       Name=NameOfTheTest
       domAin=some

? la suite de la d¨¦couverte JMX, les macros LLD suivantes seront g¨¦n¨¦r¨¦es :

  • {#JMXDOMAIN} - interne Áú»¢¶Ä²©, d¨¦crivant le domaine du MBean
  • {#JMXOBJ} - interne Áú»¢¶Ä²©, d¨¦crivant l'objet MBean
  • {#JMXNAME} - cr¨¦¨¦ ¨¤ partir de la propri¨¦t¨¦ "name"

Les propri¨¦t¨¦s ignor¨¦es sont :

  • §ä§Ú§á : son nom contient des caract¨¨res non support¨¦s (non ASCII)
  • attributes[] : son nom contient des caract¨¨res non support¨¦s (les crochets ne sont pas support¨¦s)
  • Name : c'est d¨¦j¨¤ d¨¦fini (name=test)
  • domAin : c'est un nom r¨¦serv¨¦ Áú»¢¶Ä²©

Passons en revue deux autres exemples pratiques de cr¨¦ation d'une r¨¨gle LLD avec l'utilisation de Mbean. Pour mieux comprendre la diff¨¦rence entre une r¨¨gle LLD collectant des Mbeans et une r¨¨gle LLD collectant des attributs Mbean, consultez le tableau suivant :

MBean1 MBean2 MBean3
MBean1Attribute1 MBean2Attribute1 MBean3Attribute1
MBean1Attribute2 MBean2Attribute2 MBean3Attribute2
MBean1Attribute3 MBean2Attribute3 MBean3Attribute3

La r¨¨gle LLD collecte les Mbeans

Cette r¨¨gle renvoie 3 objets : la ligne du haut de la colonne : MBean1, MBean2, MBean3.

Pour plus d'informations sur les objets, veuillez vous reporter au tableau des macros support¨¦es, section D¨¦couverte des MBeans.

La configuration de la r¨¨gle de d¨¦couverte collectant des Mbeans (sans les attributs) se pr¨¦sente comme suit :

Cl¨¦ utilis¨¦e :

jmx.discovery[beans,"*:type=GarbageCollector,name=*"]

Tous les garbage collectors sans attributs seront d¨¦couverts. Comme les garbage collectors ont le m¨ºme ensemble d'attributs, nous pouvons utiliser les attributs souhait¨¦s dans les prototypes d'¨¦l¨¦ment de la mani¨¨re suivante :

discovery_rule_mbean_2.png

Cl¨¦ utilis¨¦e :

jmx[{#JMXOBJ},CollectionCount] 
       jmx[{#JMXOBJ},CollectionTime] 
       jmx[{#JMXOBJ},Valid] 

La r¨¨gle de d¨¦couverte LLD aura comme r¨¦sultat quelque chose de proche (les objets sont d¨¦couverts pour deux garbage collectors) :

discovery_rule_mbean_3.png

R¨¨gle LLD collectant les attributs Mbean

Cette r¨¨gle renvoie 9 objets avec les champs suivants : MBean1Attribute1, MBean2Attribute1, Mbean3Attribute1, MBean1Attribute2, MBean2Attribute2, Mbean3Attribute2, MBean1Attribute2, MBean2Attribute3, MBean2Attribute3, MBean2Attribute3, MBean2Attribute3.

Pour plus d'informations sur les objets, veuillez vous reporter au tableau des macros support¨¦es, section D¨¦couverte des MBeans.

La configuration des r¨¨gles de d¨¦couverte collectant les attributs Mbean se pr¨¦sente comme suit :

discovery_rule_mbean_attributes_1.png

Cl¨¦ utilis¨¦e :

jmx.discovery[attributes,"*:type=GarbageCollector,name=*"]

Tous les garbage collectors avec un seul attribut d'¨¦l¨¦ment seront d¨¦couverts.

discovery_rule_mbean_attributes_2.png

Dans ce cas particulier, un ¨¦l¨¦ment sera cr¨¦¨¦ ¨¤ partir du prototype pour chaque attribut MBean. L'inconv¨¦nient majeur de cette configuration est que la cr¨¦ation de d¨¦clencheurs ¨¤ partir de prototypes de d¨¦clencheurs est impossible car il n'existe qu'un seul prototype d'¨¦l¨¦ment pour tous les attributs. Cette configuration peut donc ¨ºtre utilis¨¦e pour la collecte de donn¨¦es, mais n'est pas recommand¨¦e pour la surveillance automatique.