- 5 minutes to read

WSO2 Enterprise Integrator - Monitoring

WSO2 Enterprise Integrator and WSO2 Micro Integrator run on the Java Virtual Machine (JVM) and expose JMX (Java Management Extensions). Nodinite monitors them with the JMX Monitoring Agent, the same agent that monitors any other JVM workload. There is no separate WSO2 Monitoring Agent: you enable JMX remote access on each WSO2 server, add it as an Application Host in the JMX Monitoring Agent, and Nodinite alerts you when CPU or heap memory crosses your thresholds.

  • ✅ One agent for every JVM - Monitor WSO2 Enterprise Integrator, WSO2 Micro Integrator, Boomi Atoms, and your own Java applications with the same JMX Monitoring Agent
  • ✅ No code changes - Enable JMX remote with JVM startup options; your WSO2 artifacts stay untouched
  • ✅ Threshold alerts - Get Warning and Error states for JVM CPU and free heap memory, with a duration before alerting
  • ✅ Shared status - Show WSO2 runtime health in Monitor Views and route alerts with Alarm Plugins
  • ✅ Logging too - Combine JVM monitoring with WSO2 Enterprise Integrator - Logging for business transaction visibility

How It Works

graph LR subgraph "Nodinite Core Services Server" roMon["fa:fa-watch-fitness Monitoring Service"] end subgraph "Nodinite Agent Server" roAgent["fa:fa-monitor-waveform JMX Monitoring Agent"] roGW["fa:fa-hard-drive Spring Boot JMX Gateway"] end subgraph "WSO2 server" roEI["fab:fa-java WSO2 EI or Micro Integrator JVM"] end roMon --> roAgent roAgent --> roGW roGW -->|"JMX remote port"| roEI roMon --> roOK["OK: CPU and heap within thresholds"] roMon --> roWarn["Warning: Warning threshold exceeded"] roMon --> roErr["Error: Error threshold exceeded"] style roMon fill:#2678BD style roOK fill:#93d16d style roWarn fill:#FFD525 style roErr fill:#c33d34

The Monitoring Service polls the JMX Monitoring Agent, the Spring Boot JMX Gateway reads each WSO2 JVM over JMX, and every Resource gets an OK (green), Warning (yellow), or Error (red) state from your thresholds. Ports for every hop are in the JMX firewall section.

What You Can Monitor

The JMX Monitoring Agent reads JVM-level values, so it sees each WSO2 server as a JVM. Per WSO2 server (an Application Host in the agent's Configuration) you can monitor:

  • CPU - Warning and Error thresholds in percent, with a duration before the state changes
  • Heap Size - Warning and Error thresholds on free heap in percent, with a duration before the state changes

The agent groups the Resources by Application and Category, so you can put each WSO2 environment in its own Monitor View and give each environment its own thresholds (Environment-Specific Thresholds).

What JMX Monitoring Doesn't Cover

The JMX Monitoring Agent doesn't read WSO2 artifacts. It doesn't list or change the state of proxy services, APIs, sequences, endpoints, or message processors, it doesn't use the WSO2 Management API or the Carbon management console, and it can't start, stop, or restart WSO2 artifacts or servers. To cover more than JVM health, combine it with:

Enable JMX Remote on WSO2

JMX must be reachable from the Spring Boot JMX Gateway. The general steps, JVM options, and security guidance are in Enable JMX Remote Monitoring; the WSO2-specific points are below. Verify the file names and defaults for your WSO2 version.

WSO2 Enterprise Integrator 6.x (Carbon-based)

WSO2 Carbon products start their own JMX server. According to the WSO2 Carbon administration guide:

  • The default ports are RMIRegistryPort 9999 and RMIServerPort 11111, set in <PRODUCT_HOME>/repository/conf/carbon.xml; a client behind a firewall needs both ports.
  • <StartRMIServer> in <PRODUCT_HOME>/repository/conf/etc/jmx.xml turns the built-in JMX server on or off.
  • Remote clients sign in with a WSO2 user in the admin role, and -Djava.rmi.server.hostname=<IP_ADDRESS> binds the JMX service to an external address.

The JMX Monitoring Agent's Application Host settings hold an address and a port, so the simplest setup is to give the WSO2 JVM a standard JMX remote port with the options in Enable JMX Remote Monitoring: add them to the JVM options of the startup script (for example <EI_HOME>/bin/integrator.sh or integrator.bat), and set com.sun.management.jmxremote.rmi.port to the same value as com.sun.management.jmxremote.port so only one port needs to be open.

WSO2 Micro Integrator (EI 7.x and MI 4.x)

The Micro Integrator exposes JMX MBeans as well (WSO2 EI 7.0 JMX Monitoring, WSO2 MI 4.2 JMX Monitoring). WSO2 documents local JConsole access and no remote JMX port, so add the standard JMX remote options to the JVM options of <MI_HOME>/bin/micro-integrator.sh or micro-integrator.bat, the same way as for EI 6.x.

Warning

An unauthenticated JMX port without TLS gives anyone who can reach it control over the JVM. Restrict it with the firewall to the Agent Server, and follow the security guidance in Enable JMX Remote Monitoring.

Get Started

  1. Check the JMX Monitoring Agent prerequisites, including the firewall rules between the agent, the Spring Boot JMX Gateway, and each WSO2 server.
  2. Install the JMX Monitoring Agent.
  3. Enable JMX remote on each WSO2 server (see above).
  4. Add each WSO2 server as an Application Host and set the CPU and Heap Size thresholds in the JMX Monitoring Agent configuration, done from the Web Client with Remote Configuration.
  5. Add the Resources to Monitor Views and connect Alarm Plugins.

WSO2 in Docker or Kubernetes works the same way once the JMX port is published; see Docker Container Monitoring.

Common Questions

See the WSO2 monitoring FAQ for answers about credentials, permissions, supported versions, containers, detection speed, and licensing.

Next Steps