JBoss EAP 7 & Datadog monitoring via JMX

This page is not yet available in Spanish. We are working on its translation.
If you have any questions or feedback about our current translation project, feel free to reach out to us!

Overview

These are the instructions created to install and configure Datadog on the KP JBoss EAP 7 cloud image and monitor a JVM via JMX.

Setup

Prerequisites

To install Datadog and integrate it with the JBoss EAP 7, ensure the following conditions have been met:

  • KP’s JBoss EAP 7/RHEL7.5 bundle image (C2C or BTO) has been installed.
  • JBoss EAP 7 has been configured and is functioning.
  • NTPD has been installed and configured, and is running on each of the systems to be used.

Datadog Agent installation

Follow the Agent installations for CentOS/RedHat

JBoss EAP 7 edits

Add the following lines to the domain.xml file:

Be sure to add these lines within the profile being used:

For <subsystem xmlns="urn:jboss:domain:jmx:1.3">, add:

<remoting-connector use-management-endpoint="false"/>

For <subsystem xmlns="urn:jboss:domain:remoting:4.0">, add:

<connector name="remoting-connector" socket-binding="remoting" securityrealm="ApplicationRealm"/>

For <socket-binding-group name="full-ha-sockets" default-interface="public">, add:

<socket-binding name="remoting" port="4447"/>

Add an application user for the Application Realm:

JBoss_EAP_INSTALL_DIR/bin/add_user.sh

Note: Be sure to add to the Application Realm.

Start/Restart the jboss processes. Look for the following message in the server.log file:

2018-08-08 16:01:53,354 INFO [org.jboss.as.remoting] (MSC service thread 1-4) WFLYRMT0001: Listening on
xx.xx.xx.xx:4447

Assuming a domain configuration, be sure the JBoss_EAP_INSTALL_DIR/domain/configuration/application.keystore has read access by the Datadog ID (perms of 644 or higher)

###Datadog Edits

Edit the /etc/datadog-agent/datadog.yaml file to enable process collection:

process_config:
  enabled: "true"

Edit /etc/datadog-agent/conf.d/jmx.d/conf.yaml file to activate the jmx integration:

init_config:

  custom_jar_paths:
    - JBoss_EAP_INSTALL_LOCATION/bin/client/jboss-cli-client.jar

instances:
  - jmx_url: "service:jmx:remote://{FQDN or IP}:4447"
    user: xxxxxxxx (userid created via jboss add_user.sh)
    password: yyyyyyyy (created via jboss add_user.sh)
    java_bin_path: /etc/alternatives/java
    name: jboss_jmx_instance
    trust_store_path: /apps/jboss/jboss-eap-7.1/domain/configuration/application.keystore
    trust_store_password: password (use password found in domain.xml)
    conf:
      - include:
        domain: my_domain
        bean:

Then Start/restart the Datadog Agent.

Finally, run the Datadog Agent status command to ensure Datadog can connect to the JBoss JVM via JMX. You should get the following output:

========
JMXFetch
========
 Initialized checks
08/10/2018 4
 ==================
 jmx
 instance_name : jboss_jmx_instance
 message :
 metric_count : 13
 service_check_count : 0
 status : OK
 Failed checks
 =============
 no checks
PREVIEWING: rtrieu/product-analytics-ui-changes