Jmxterm jest konsolowym klientem Java Management Extensions (JMX). Pozwala on na dostęp do obiektów zwanych MBean’ami (Managed Bean) za pomocą wiersza poleceń. Inaczej mówiąc jest to tekstowa wersja jConsole. Projekt został stworzony przez CyclopsGroup.org i udostępniany jest jako open source. Aplikacja została napisana w języku Java i do uruchomienia potrzebuje jedynie JDK.

Pracę z jmxterm zaczynamy od pobrania i uruchomienia aplikacji:

[root@akira thecamels]# wget http://downloads.sourceforge.net/cyclops-group/jmxterm-1.0-alpha-4-uber.jar
[root@akira thecamels]# java -jar jmxterm-1.0-alpha-4-uber.jar
Welcome to JMX terminal. Type "help" for available commands.
$>

Aplikacja posiada wbudowaną pomoc, która dostępna jest za pomocą polecenia help:

$>help
#following commands are available to use:
about    - Display about page
bean     - Display or set current selected MBean.
beans    - List available beans under a domain or all domains
bye      - Terminate console and exit
close    - Close current JMX connection
domain   - Display or set current selected domain.
domains  - List all available domain names
exit     - Terminate console and exit
get      - Get value of MBean attribute(s)
help     - Display available commands or usage of a command
info     - Display detail information about an MBean
jvms     - List all running local JVM processes
open     - Open JMX session or display current connection
option   - Set options for command session
quit     - Terminate console and exit
run      - Invoke an MBean operation
set      - Set value of an MBean attribute
$>

Korzystając z poleceń możemy na przykład zobaczyć listę procesów Javy w systemie:

$>jvms
9818     (m) - org.apache.catalina.startup.Bootstrap start
3524     ( ) -
2980     ( ) - jmxterm-1.0-alpha-4-uber.jar
$>

Możemy podłączyć się dzięki temu do lokalnego procesu lub zdalnego, jeżeli umożliwia połączenia zdalne. Aplikacja, do której się łączymy, musi zostać w tym celu odpowiednio skonfigurowana. Do skryptów startowych należy dodać na przykład:

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=6485"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
export JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=akira"

Wtedy możemy wydać polecenie i połączyć się do aplikacji:

$>open 192.168.101.1:6485
#Connection to 192.168.101.1:6485 is opened
$>

Możemy teraz spróbować wylistować domeny jakie posiadamy:

$>domains
#following domains are available
Catalina
JMImplementation
Users
com.mchange.v2.c3p0
com.sun.management
java.lang
java.nio
java.util.logging
org.kjkoster.zapcat
$>

a w ostateczności pobrać wartość:

$>domain Catalina
#domain is set to Catalina
$>bean Catalina:type=Server
#bean is set to Catalina:type=Server
$>get serverInfo
#mbean = Catalina:type=Server:
serverInfo = Apache Tomcat/7.0.35;

$>

Możemy również wykonywać tego typu polecenia z zewnętrznych skryptów np:

[root@akira thecamels]# echo get -s -b Catalina:type=Server serverInfo | java -jar jmxterm-1.0-alpha-4-uber.jar -l 192.168.101.1:6485
Welcome to JMX terminal. Type "help" for available commands.
$>get -s -b Catalina:type=Server serverInfo
#mbean = Catalina:type=Server:
Apache Tomcat/7.0.35

Podobne artykuły

Oracle

przez -
10 3722
java logo

przez -
15 5757