January 2, 2021
Estimated Post Reading Time ~

Monitoring AEM via JConsole

Sometimes, the Out of the Box (OOTB) monitoring that comes with AEM is not enough and we need a better way to monitor our AEM instances. AEM allows external monitoring applications to interact with Managed Beans (MBeans) via Java Management Extensions (JMX). Using applications such as JConsole or other enterprise-level monitoring applications, users can monitor these MBeans objects as well as the performance and resource usages of AEM.

Some of the registered MBeans that can be monitored via JMX:
  • Repository
  • Replication Agents
  • Sling Engine
  • Metrics
  • Workflows
System resources such as memory, threads, and classes can also be monitored via these monitoring applications.

The ideal solution is to have enterprise-level monitoring in place but the next best thing is to use a local tool such as JConsole to give us some insights on what a proper monitoring strategy can look like. This is a simple instruction of getting using JConsole to quickly monitor AEM and for this proof of concept (POC), we are going to use a local running AEM Author instance.

Technical Steps:
1. Install a local copy of JConsole (we're assuming that you already have JAVA installed). Follow the instructions on this page to have the tool downloaded and installed: https://openjdk.java.net/tools/svc/jconsole/

2. For this monitoring POC to work, we need a default local installation of AEM Author listening to port 4502. We also need to start AEM to listen to port 9091 for the JMX agent.

Add the following as part of the start-up for your AEM instance:-Dcom.sun.management.jmxremote.port=9091 \ -Dcom.sun.management.jmxremote.rmi.port=9091 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote \ -Djava.rmi.server.hostname=localhost

These added start-up parameters will need to be added to your start script (/crx-quickstart/bin/start). It would be similar to the image below:


3. Once AEM is running, start JConsole by typing "jconsole" in the command prompt.

4. Enter the following information into JConsole:


Monitoring Dashboard
JConsole will provide you with information from performance to the resourcing of the Java Virtual Machine (JVM) as well as very specific AEM MBean processes.

The following screens can provide us with information on memory, thread, classes and system overview of the JVM:


The following screens can provide us with MBean information. This screen provides us with information on the Publish Replication Agent. This can show very quickly if the agent is enabled, valid is blocked and if there is a queue of items to be published:


The following screen shows the real-time heap memory usage of AEM:



By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.