Могуће је открити све JMX MBeans или MBean атрибути или да наведете образац за откривање ових објеката.
Обавезно је разумети разлику између MBean-а и MBean-а атрибути за конфигурацију правила откривања. MBean је објекат који може представљати уређај, апликацију или било који ресурс који треба да буде управљао.
На пример, постоји MBean који представља веб сервер. Његово атрибути су број конекција, број нити, временско ограничење захтева, http кеш датотека, употреба меморије, итд. Изражавање ове мисли на људском свеобухватним језиком можемо дефинисати апарат за кафу као MBean који има следеће атрибуте које треба пратити: количину воде по шољи, просечна потрошња воде за одређени временски период, број зрна кафе потребна по шољици, зрна кафе и време допуњавања воде итд.
У правило откривања конфигурацију, изаберите ** JMX агент** у пољу Тип.
Два кључа ставки су подржана за откривање JMX објеката - jmx.discovery[] и jmx.get[]:
Item key | |||
---|---|---|---|
Return value | Parameters | Comment | |
jmx.discovery[<discovery mode>,<object name>,<unique short description>] | |||
Ова ставка враћа JSON низ са LLD макроима који описују MBean објекте или њихове атрибуте. | режим откривања - једно од следећег: атрибути (преузми JMX MBean атрибуте, подразумевано) или beans (преузми JMX MBean) име објекта - образац назива објекта (погледајте документација) која идентификује MBean имена која ће се преузети (подразумевано је празно, преузимају се сви регистровани бинови) јединствени кратки опис - јединствени опис који дозвољава више JMX ставки са истим начином откривања и именом објекта на домаћину (опционо) |
Примери: → jmx.discovery- преузми све JMX MBean атрибуте → jmx.discovery[beans] - преузми све JMX MBean → jmx.discovery[attributes,"*:type=GarbageCollector,name=*"] - преузима све сакупљаче смећа атрибути → jmx.discovery[beans,"*:type=GarbageCollector,name=*"] - преузми све сакупљаче смећа Постоје нека ограничења за шта MBean својства ова ставка може да врати на основу ограничених знакова који су подржани у генерисању имена макроа (подржани карактери се могу описати следећим регуларним изразом: А-З0-9_\. ). Тако, на пример, да бисте открили својства MBean-а са речју са цртицом или знаковима који нису ASCII, морате да користите jmx. get[] . |
|
jmx.get[<discovery mode>,<object name>,<unique short description>] | |||
Ова ставка враћа JSON низ са MBean објектима или њиховим атрибутима. У поређењу са jmx.discovery[] , не дефинише LLD макрое. |
режим откривања - једно од следећег : атрибути (преузми JMX MBean атрибуте, подразумевано) или beans (преузми JMX MBean) име објекта - образац назива објекта (погледајте документацију) који идентификује MBean имена која се преузимају (подразумевано празно, преузимање сви регистровани бинови) јединствени кратки опис - јединствени опис који дозвољава више JMX ставки са истим начином откривања и именом објекта на хосту (опционо) |
Када користите ову ставку, потребно је дефинисати прилагођене макрое за откривање ниског нивоа, указујући на вредности екстраховане из враћеног JSON-а користећи JSONPath. |
Ако ниједан параметар није прослеђен, сви MBean атрибути од JMX се траже. Без навођења параметара за JMX откривање или покушава да прими све атрибуте за широк опсег као што је *: type =*, name =*
може довести до потенцијалних проблема са перформансама.
Ова ставка враћа JSON објекат са макроима за откривање ниског нивоа описивање MBean објеката или атрибута. На пример, у открићу МБеан атрибути (преформатирани ради јасноће):
[
{
"{#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}":"јава.ланг.Боолеан",
"{#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.Boolean",
"{#JMXOBJ}":"ava.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"
}
]
У открићу MBeans-а (преформатирано ради јасноће):
[
{
"{#JMXDOMAIN}":"java.lang",
"{#JMXTYPE}":"GarbageCollector",
"{#JMXOBJ}":"java.lang:type=GarbageCollector,name=PS Scavenge",
"{#JMXNAME}":"PS Scavenge"
}
]
Следећи макрои су подржани за коришћење у правилу откривања филтер и прототипови ставки, покретача и графикона:
Macro | Description |
---|---|
Откриће MBean атрибута | |
{#JMXVALUE} | Вредност атрибута. |
{#JMXTYPE} | Тип атрибута. |
{#JMXOBJ} | Име објекта. |
{#JMXDESC} | Име објекта укључујући име атрибута. |
{#JMXATTR} | Име атрибута. |
Откриће MBeans-а | |
{#JMXDOMAIN} | MBean домен. (Zabbix резервисано име) |
{#JMXOBJ} | Име објекта. (Zabbix резервисано име) |
{#JMX<key property>} | MBean својства (као {#JMXTYPE}, {#JMXNAME}) (погледајте Ограничења испод). |
Постоје нека ограничења повезана са алгоритмом креирања LLD-а имена макроа из MBean имена својства:
А-З0-9_\.
Узмите у обзир овај пример jmx.discovery (са режимом "пасуљ"). MBean има дефинисана следећа својства (од којих ће нека бити занемарена; погледајте доле):
Као резултат JMX открића, следећи LLD макрои ће бити генерисано:
Занемарена својства су:
Погледајмо још два практична примера креирања LLD правила са коришћење MBean-а. Да бисте разумели разлику између прикупљања LLD правила MBeans и LLD правило које боље прикупља MBean атрибуте, узмите а погледајте следећу табелу:
MBean1 | MBean2 | MBean3 |
MBean1Attribute1 | MBean2Attribute1 | MBean3Attribute1 |
MBean1Attribute2 | MBean2Attribute2 | MBean3Attribute2 |
MBean1Attribute3 | MBean2Attribute3 | MBean3Attribute3 |
Ово правило ће вратити 3 објекта: горњи ред колоне: MBean1, MBean2, MBean3.
За више информација о објектима погледајте подржани макрои табела, Откривање MBeans одељка.
Конфигурација правила откривања која прикупља MBeans (без атрибута) изгледа овако:
Кључ који се овде користи:
Биће откривени сви сакупљачи смећа без атрибута. Ас Сакупљачи смећа имају исти скуп атрибута, можемо користити жељени атрибуте у прототиповима ставке на следећи начин:
Кључеви који се овде користе:
LLD правило откривања ће резултирати нечим сличним овом (ставке су откривено за два сакупљача смећа):
Ово правило ће вратити 9 објеката са следећим пољима: MBean1Attribute1, MBean2Attribute1, MBean3Attribute1,MBean1Attribute2,MBean2Attribute2, MBean3Attribute2, MBean1Attribute3, MBean2Attribute3, MBean3Attribute3.
За више информација о објектима погледајте подржано макрои табела, Откривање MBean атрибута одељак.
Конфигурација правила откривања која прикупља MBean атрибуте изгледа као следеће:
Кључ који се овде користи:
Сви сакупљачи смећа са једним атрибутом ставке ће бити откривено.
У овом конкретном случају, ставка ће бити креирана од прототипа за сваки MBean атрибут. Главни недостатак ове конфигурације је тај окидач стварање од прототипова окидача је немогуће јер постоји само једна ставка прототип за све атрибуте. Дакле, ово подешавање се може користити за податке прикупљање, али се не препоручује за аутоматско праћење.
jmx.get[]
је сличан ставци jmx.discovery[]
, али није претворити својства Јава објеката у имена макроа за откривање ниског нивоа и стога може вратити вредности без ограничења које су повезано са генерисањем имена LLD макроа као што су цртице или non-ASCII ликова.
Када користите jmx.get[]
за откривање, макрои за откривање ниског нивоа могу бити дефинисано посебно у обичају LLD макро картица на конфигурацију правила открића, користећи JSONPath да укаже на потребно вредности.
Ставка открића: jmx.get[beans,"com.example:type=*,*"]
Одговор:
[
{
"object": "com.example:type=Hello,data-src=data-base,ключ=значение",
"domain": "com.example",
"properties": {
"data-src": "data-base",
"ключ": "значение",
"type": "Hello"
}
},
{
"object": "com.example:type=Atomic",
"domain": "com.example",
"properties": {
"type": "Atomic"
}
}
]
Ставка открића: jmx.get[attributes,"com.example:type=*,*"]
Одговор:
[
{
"object": "com.example:type=*",
"domain": "com.example",
"properties": {
"type": "Simple"
}
},
{
"object": "com.zabbix:type=yes,domain=zabbix.com,data-source=/dev/rand,ключ=значение,obj=true",
"domain": "com.zabbix",
"properties": {
"type": "Hello",
"domain": "com.example",
"data-source": "/dev/rand",
"ключ": "значение",
"obj": true
}
}
]