A JMX engedélyezése Java parancssorból

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

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

  1. Indítsuk el a JConsole-t: jconsole

  2. Csatlakozzunk a megfelelő JVM-hez.

  3. 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.