
A Java Management Extensions (JMX) egy Java API, amely lehetővé teszi a JVM (Java Virtual Machine) és az alkalmazások futásidejű kezelését, monitorozását. Ennek engedélyezése különösen hasznos lehet teljesítménydiagnosztika és távoli menedzsment céljából.
Alapvető JMX engedélyezés parancssorból
A JMX támogatást a következő JVM argumentumokkal lehet engedélyezni Java alkalmazás indításakor:
java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1050 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar alkalmazas.jar
Magyarázat az paraméterekről:
- -Dcom.sun.management.jmxremote: Engedélyezi a JMX-et.
- -Dcom.sun.management.jmxremote.port=1050: Beállítja a JMX szerver portját (itt: 1050).
- -Dcom.sun.management.jmxremote.authenticate=false: Kikapcsolja az autentikációt (nem ajánlott éles környezetben!).
- -Dcom.sun.management.jmxremote.ssl=false: Kikapcsolja az SSL titkosítást (csak belső hálózaton javasolt).
A JMX engedélyezése parancssorból, biztonsági beállításokkal
Éles környezetben autentikációval és SSL titkosítással kell védeni a JMX kapcsolatot:
java -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1050\ -Dcom.sun.management.jmxremote.authenticate=true \ -Dcom.sun.management.jmxremote.ssl=true \ -Dcom.sun.management.jmxremote.access.file=/path/to/jmxremote.access \ -Dcom.sun.management.jmxremote.password.file=/path/to/jmxremote.password \ -jar alkalmazas.jar
- jmxremote.access fájl: Meghatározza, hogy mely felhasználók milyen jogosultságokkal rendelkeznek.
- jmxremote.password fájl: A felhasználók jelszavait tartalmazza.
Ellenőrzés és kapcsolódás JConsole-lal
A JConsole nevű eszköz segítségével csatlakozhatunk a JMX szerverhez:
jconsole hostname:1050
Ha a JMX távolról nem elérhető, ellenőrizzük a tűzfalbeállításokat és a hálózati elérhetőséget!
Ellenőrzés és kapcsolódás JConsole-lal
A JConsole nevű eszköz segítségével csatlakozhatunk a JMX szerverhez:
jconsole hostname:9090
Ha a JMX távolról nem elérhető, ellenőrizzük a tűzfalbeállításokat és a hálózati elérhetőséget!
Gyakorlati példa: Metrikák lekérdezése JConsole-lal
-
Indítsuk el a JConsole-t: jconsole
-
Csatlakozzunk a megfelelő JVM-hez.
-
A MBeans fülön keresztül elérhetők a JVM statisztikák, például:
-
java.lang:type=Memory – Heap és non-heap memóriahasználat
-
java.lang:type=GarbageCollector,name=G1 Young Generation – GC statisztikák
-
Ha parancssorból szeretnénk lekérdezni ezeket az értékeket, használhatjuk a jmxterm vagy Jolokia eszközöket.