Using VisualVM with WildFly: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
=External=
* http://blog.akquinet.de/2012/11/01/connecting-visualvm-with-a-remote-jboss-as-7-eap6-jvm-process/
=Internal=
=Internal=


Line 4: Line 8:
* [[VisualVM]]
* [[VisualVM]]
* [[JSR 160 Java Management Extensions (JMX) Remote API|JSR-160 Java Management Extensions (JMX) Remote API]]
* [[JSR 160 Java Management Extensions (JMX) Remote API|JSR-160 Java Management Extensions (JMX) Remote API]]
=Overview=
A JBoss instance can be configured to allow a ''direct'' VisualVM remote JMX connection into it. This article explains how to configure JBoss and VisualVM in order to achieve this.
=JBoss Configuration=
JBoss 7 exposes a  [[JSR 160 Java Management Extensions (JMX) Remote API|JSR-160 Java Management Extensions (JMX) Remote API]] compliant [[JMXConnector]], which can be used by VisualVM to connect remotely and access the JBoss' JMX bus. The native management access is configured in the standard JBoss configuration files ([[standalone.xml]] or [[domain.xml]]).
The users that are authorized to connect must be part of the “ManagementRealm” JBoss security realm.
For more details on how to configure the native management interface see:
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;">
:[[JBoss 7 Management Configuration#TheNativeManagementInterface]]
</blockquote>
The users that are allowed to use the native management interface must be added to the "ManagementRealm". For more details on how to configure security, see:
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;">
:[[[JBoss 7 Security Realm#ManagementRealm]]
</blockquote>
Use [[add-user.sh]] to actually add the users to the ManagementRealm.
=Visual VM Configuration=
==Startup Script==
In order to be able to access the JBoss 7 native management interface directly, Visual VM needs specific JBoss 7 libraries in its classpath. It's best if a specialized script is created and used to start it. The examples presented below use only the specific JARs needed by the remote JMX access. This also works:
<pre>
$JBOSS_HOME/bin/client/jboss-client.jar
</pre>
===Linux & Mac===
===Windows===
<pre>
@echo off
set JBOSS_HOME=C:\ovidiu\jboss-as-7.1.1.Final
set JBOSS_MODULES=%JBOSS_HOME%\modules
set JAVA_HOME="C:\Program Files\Java\jdk1.7.0_79"
"%JAVA_HOME%\bin\jvisualvm.exe" -cp:a %JBOSS_MODULES%\org\jboss\remoting3\remoting-jmx\main\remoting-jmx-1.0.2.Final.jar;%JBOSS_MODULES%\org\jboss\remoting3\main\jboss-remoting-3.2.3.GA.jar;%JBOSS_MODULES%\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar;%JBOSS_MODULES%\org\jboss\xnio\main\xnio-api-3.0.3.GA.jar;%JBOSS_MODULES%\org\jboss\xnio\nio\main\xnio-nio-3.0.3.GA.jar;%JBOSS_MODULES%\org\jboss\sasl\main\jboss-sasl-1.0.0.Final.jar;%JBOSS_MODULES%\org\jboss\marshalling\main\jboss-marshalling-1.3.11.GA.jar;%JBOSS_MODULES%\org\jboss\marshalling\river\main\jboss-marshalling-river-1.3.11.GA.jar
</pre>
==Configuring Access to the JBoss Instance==
Start VisualVM with the script describe above.
Then go to "Application" left tab, right click on "Remote" and "Add Remote Host...".
Use the remote host IP address (or host name).
Right click on the newly added "remote host" and "Add JMX Connection..."
As "Connection" use:
<pre>
service:jmx:remoting-jmx://<your-server-ip-address>:9999
</pre>
replacing <your-server-ip-address> with the actual address.
Select "Use Security Credentials"
Use an user name and a password that was previously added to the "ManagementRealm" of the application server.
Optionally "Save security credentials"
and then check "Do not require SSL connection".
==JMX MBean Access==
In order to access JMX interfaces of MBeans, you will need to install the "VisualVM-MBeans" VisualVM plugin.
A plugin can be installed as follows:
Tools -> Plugins -> Available Plugins -> Check the plugin to be installed -> Install.

Revision as of 18:09, 26 July 2016

External

Internal

Overview

A JBoss instance can be configured to allow a direct VisualVM remote JMX connection into it. This article explains how to configure JBoss and VisualVM in order to achieve this.

JBoss Configuration

JBoss 7 exposes a JSR-160 Java Management Extensions (JMX) Remote API compliant JMXConnector, which can be used by VisualVM to connect remotely and access the JBoss' JMX bus. The native management access is configured in the standard JBoss configuration files (standalone.xml or domain.xml). The users that are authorized to connect must be part of the “ManagementRealm” JBoss security realm.

For more details on how to configure the native management interface see:

JBoss 7 Management Configuration#TheNativeManagementInterface

The users that are allowed to use the native management interface must be added to the "ManagementRealm". For more details on how to configure security, see:

[[[JBoss 7 Security Realm#ManagementRealm]]

Use add-user.sh to actually add the users to the ManagementRealm.

Visual VM Configuration

Startup Script

In order to be able to access the JBoss 7 native management interface directly, Visual VM needs specific JBoss 7 libraries in its classpath. It's best if a specialized script is created and used to start it. The examples presented below use only the specific JARs needed by the remote JMX access. This also works:

$JBOSS_HOME/bin/client/jboss-client.jar

Linux & Mac

Windows

@echo off

set JBOSS_HOME=C:\ovidiu\jboss-as-7.1.1.Final
set JBOSS_MODULES=%JBOSS_HOME%\modules
set JAVA_HOME="C:\Program Files\Java\jdk1.7.0_79"

"%JAVA_HOME%\bin\jvisualvm.exe" -cp:a %JBOSS_MODULES%\org\jboss\remoting3\remoting-jmx\main\remoting-jmx-1.0.2.Final.jar;%JBOSS_MODULES%\org\jboss\remoting3\main\jboss-remoting-3.2.3.GA.jar;%JBOSS_MODULES%\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar;%JBOSS_MODULES%\org\jboss\xnio\main\xnio-api-3.0.3.GA.jar;%JBOSS_MODULES%\org\jboss\xnio\nio\main\xnio-nio-3.0.3.GA.jar;%JBOSS_MODULES%\org\jboss\sasl\main\jboss-sasl-1.0.0.Final.jar;%JBOSS_MODULES%\org\jboss\marshalling\main\jboss-marshalling-1.3.11.GA.jar;%JBOSS_MODULES%\org\jboss\marshalling\river\main\jboss-marshalling-river-1.3.11.GA.jar

Configuring Access to the JBoss Instance

Start VisualVM with the script describe above.

Then go to "Application" left tab, right click on "Remote" and "Add Remote Host...".

Use the remote host IP address (or host name).

Right click on the newly added "remote host" and "Add JMX Connection..."

As "Connection" use:

service:jmx:remoting-jmx://<your-server-ip-address>:9999

replacing <your-server-ip-address> with the actual address.

Select "Use Security Credentials"

Use an user name and a password that was previously added to the "ManagementRealm" of the application server.

Optionally "Save security credentials"

and then check "Do not require SSL connection".

JMX MBean Access

In order to access JMX interfaces of MBeans, you will need to install the "VisualVM-MBeans" VisualVM plugin.

A plugin can be installed as follows:

Tools -> Plugins -> Available Plugins -> Check the plugin to be installed -> Install.