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.
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
´Ç¨´
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"
}
]
}
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 :
? la suite de la d¨¦couverte JMX, les macros LLD suivantes seront g¨¦n¨¦r¨¦es :
Les propri¨¦t¨¦s ignor¨¦es sont :
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 |
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 :
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 :
Cl¨¦ utilis¨¦e :
La r¨¨gle de d¨¦couverte LLD aura comme r¨¦sultat quelque chose de proche (les objets sont d¨¦couverts pour deux garbage collectors) :
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 :
Cl¨¦ utilis¨¦e :
Tous les garbage collectors avec un seul attribut d'¨¦l¨¦ment seront d¨¦couverts.
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.