> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Monitoring for Apache Tomcat

> Configure GermainUX to collect and analyze Apache Tomcat availability, performance, JVM, connector, session, data-source, log, and user-experience data.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)
[`RUM JS`](https://docs.germainux.com/main/germain-ux-rum-js)

Availability
2017.2

> **[18. Configure SLAs](#18-configure-slas)**
>
> Thresholds for normal workload

> **[23. Configure Dashboards](#23-configure-dashboards)**
>
> Views for different audiences

> **[24. Validate the Configuration](#24-validate-the-configuration)**
>
> Check connectors and metrics

> **[Troubleshooting](#troubleshooting)**
>
> Common Tomcat fixes

**Configuring Monitoring for Apache Tomcat with GermainUX**

Configure GermainUX to collect and analyze Apache Tomcat availability, performance, JVM, connector, application, session, data-source, log, transaction, and user-experience data.

## 1. Open the Tomcat Wizard

Go to:

**Germain Workspace > Left Menu > Wizards > Tomcat**

Select or create the Tomcat monitoring configuration.

![Configure Monitoring for Apache Tomcat: 1. Open the Tomcat Wizard](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-monitoring-for-apache-tomcat/image-20260901-235341.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=e132911b3f9a5102696a93f446007355)

## 2. Select the Monitored Server

Select or create the server hosting Apache Tomcat.

Confirm that the server is associated with the correct:

| | Item |
| - | - |
| 1 | Application |
| 2 | Environment |
| 3 | Host |
| 4 | Server role |

![Configure Monitoring for Apache Tomcat: 2. Select the Monitored Server](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-monitoring-for-apache-tomcat/image2020-11-12_16-15-50.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=786fb198512f994840cba8a2f9a4082f)

## 3. Select the Monitoring Node and Engine

Select the GermainUX node and Engine that will execute the Tomcat monitoring components.

Choose an Engine that can reach:

* Tomcat
* JMX
* Required HTTP/HTTPS endpoints
* Accessible log files
* Supporting services

## 4. Configure Tomcat Connection Settings

Configure the Tomcat connection information required by the selected monitoring methods.

Depending on the environment, this can include:

* Host
* HTTP port
* HTTPS port
* JMX port
* Applications
* Credentials
* Timeout

The exact fields depend on the Tomcat deployment and GermainUX version.

## 5. Configure JMX

When JMX monitoring is required, configure the JMX connection.

Provide or select:

* Host
* Port
* JMX service URL
* Credentials
* Required security settings

Use JMX to collect available metrics for:

* Connectors
* Thread pools
* Applications
* Sessions
* Data sources
* JVM

## 6. Configure Connector Monitoring

Configure the connector metrics required for your environment.

Depending on the exposed Tomcat MBeans, monitor:

* Request count
* Error count
* Processing time
* Bytes received
* Bytes sent
* Current threads

> **Show all 9**
>
> * Busy threads
> * Maximum threads
> * Active connections

Use thread-pool utilization together with traffic, response time, and error rate when defining thresholds.

## 7. Configure JVM Monitoring

Configure JVM metrics such as:

* Heap memory
* Non-heap memory
* Memory pools
* Garbage collection
* Threads
* Loaded classes

> **Show all 9**
>
> * CPU
> * JVM uptime
> * File descriptors, when exposed

Use the Java monitoring configuration when deeper JVM monitoring is required.

## 8. Configure Session Monitoring

When the required Tomcat session metrics are exposed, monitor:

* Active sessions
* Session creation
* Session expiration
* Rejected sessions
* Maximum sessions
* Average duration
* Maximum duration

Avoid collecting individual session contents or identifiers unless explicitly required.

## 9. Configure JDBC Connection-Pool Monitoring

When Tomcat-managed data sources expose the required metrics, configure:

* Active connections
* Idle connections
* Maximum connections
* Connection-pool utilization
* Connection wait time
* Pool exhaustion
* Abandoned connections
* Connection failures

Monitor the underlying database separately when deeper database root-cause analysis is required.

## 10. Configure Tomcat and Application Logs

Configure monitoring for applicable log paths.

Examples include:

* Catalina
* Manager
* Host Manager
* Application
* Access
* Garbage collection
* Startup and shutdown

Configure patterns or rules for relevant conditions such as:

* Exceptions
* Out-of-memory errors
* Deployment failures
* Database connection failures
* Connector errors
* Authentication failures

> **Show all 9**
>
> * Resource warnings
> * Class-loading errors
> * Startup failures

![Configure Monitoring for Apache Tomcat: 10. Configure Tomcat and Application Logs](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-monitoring-for-apache-tomcat/image2020-11-12_16-23-53.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=4a58b9729cbb01c4cca169907379df06)

## 11. Configure Java Code Monitoring — Optional

When GermainUX Code Profiler is deployed, configure the required Java transaction and method monitoring.

Depending on the instrumentation, analyze:

* Transactions
* Methods
* Exceptions
* SQL
* Database calls
* Outbound HTTP requests
* Integration calls
* Execution time

Use profiling selectively according to troubleshooting and performance-analysis requirements.

## 12. Configure Real User Monitoring — Optional

For browser-based Tomcat applications, configure the appropriate UX Monitoring Profile.

Go to:

**Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles**

Configure:

* RUM JS
* Session Replay
* User interactions
* Page performance
* Network monitoring
* JavaScript errors

> **Show all 12**
>
> * Browser errors
> * Privacy
> * Masking
> * Exclusions
> * Consent
> * Retention

When appropriate correlation information is available, GermainUX can associate browser activity with backend Tomcat and Java transactions.

## 13. Configure HTTP Monitoring — Optional

Configure HTTP or HTTPS monitoring for critical Tomcat applications and endpoints.

Validate:

* Availability
* Response time
* HTTP status
* Expected response
* TLS certificate validity

Process availability alone should not be used as proof that the application itself is usable.

## 14. Configure Synthetic Transactions — Optional

Create synthetic application workflows using GermainUX RPA Bot Recorder.

Examples:

Open Application
Authenticate
Execute Transaction
Verify Success

Configure:

* Scenario
* Monitoring location
* Schedule
* Timeout
* Expected result
* Failure conditions
* Alerting

## 15. Configure Prometheus Monitoring — Optional

When Tomcat, JVM, application, container, or platform metrics are exposed through an approved Prometheus-compatible exporter, configure GermainUX Prometheus Metrics Monitoring.

Use only metrics exposed by an approved exporter.

## 16. Configure Monitoring Frequency

Configure how frequently each monitor should execute.

Use intervals appropriate for:

* Application criticality
* Required detection time
* Infrastructure size
* Collection overhead
* Environment

Not every Tomcat metric requires the same collection frequency.

## 17. Configure KPIs

Configure the KPIs relevant to the monitored environment.

Typical areas include:

* Tomcat availability
* Application availability
* HTTP response time
* HTTP errors
* Connector activity
* Thread-pool utilization

> **Show all 14**
>
> * JVM memory
> * Garbage collection
> * JVM threads
> * HTTP sessions
> * JDBC connection pools
> * Application exceptions
> * Java transactions
> * Infrastructure resources

## 18. Configure SLAs

Configure thresholds according to the architecture and normal workload.

Examples include:

### Availability

`Tomcat or Critical Application = Unavailable`

### Response Time

`Application Response Time > Approved Threshold`

### HTTP Errors

`HTTP Error Rate > Expected Baseline`

### Thread Pool

`Busy Threads Approaching Maximum`

### JVM

`Sustained Heap Utilization > Accepted Range`

### Garbage Collection

`GC Duration > Accepted Range`

### Sessions

`Active Sessions Approaching Capacity`

### JDBC Pool

`Active Connections Approaching Maximum`

### Logs

`Critical Error Detected`

### Infrastructure

`Resource Condition Threatens Application Availability`

Use sustained-duration requirements and environment-specific baselines to avoid alerts caused by brief, harmless spikes.

## 19. Configure Rules and Automated Analytics

Use GermainUX Rules and analytics to identify conditions such as:

* Performance regression
* Error increase
* Thread-pool saturation
* JVM memory anomaly
* Garbage-collection anomaly
* Slow endpoint

> **Show all 11**
>
> * Slow transaction
> * New application exception
> * Server behaving differently from peers
> * Post-release degradation
> * Dependency affecting application performance

## 20. Configure Alerts and Watches

Configure alerts for conditions requiring attention.

Examples:

**Tomcat Unavailable → Alert Operations**

**Application Response Time Above SLA → Notify Application Team**

**Thread Pool Near Capacity → Notify Engineering**

**JDBC Pool Exhaustion → Alert Application and Database Teams**

**New Application Exception → Notify Development**

**Synthetic Transaction Failure → Alert Support**

Notifications can be delivered through configured integrations such as email, SMS, Slack, or ServiceNow.

## 21. Configure Automated Actions

Configure only customer-approved operational actions.

Examples include:

* Collect Tomcat status
* Collect JVM status
* Capture recent logs
* Capture diagnostic data
* Retest an endpoint
* Create an incident

> **Show all 10**
>
> * Update an incident
> * Execute an approved script
> * Run an approved SSH command
> * Validate recovery

Actions capable of restarting Tomcat, redeploying applications, terminating threads, or modifying production configuration require explicit authorization and operational safeguards.

## 22. Configure Maintenance Windows

Define maintenance windows for:

* Planned deployments
* Tomcat restarts
* Infrastructure maintenance
* Application releases

Use maintenance windows to suppress expected alerts during approved maintenance activity.

## 23. Configure Dashboards

Create dashboards for different audiences.

### Tomcat Operations

Monitor:

* Availability
* Requests
* Response time
* HTTP errors
* Connectors
* Thread pools
* Applications

### JVM

Monitor:

* Heap
* Garbage collection
* Threads
* CPU
* Runtime health

### Application Performance

Monitor:

* Transactions
* Exceptions
* SQL
* External services
* Slow code paths

### Capacity

Monitor:

* Threads
* Sessions
* JDBC connections
* Heap
* CPU
* Memory
* Disk

### User Experience

Monitor:

* User sessions
* Interaction performance
* Browser errors
* Backend transactions
* Business processes
* Session Replay

## 24. Validate the Configuration

After configuration, verify:

1. Tomcat process and service availability.
2. HTTP and HTTPS connector status.
3. Selected JVM metrics.
4. Selected Tomcat metrics.
5. Required applications are monitored.
6. Thread-pool metrics are available when configured.
7. Session metrics are available when configured.
8. JDBC-pool metrics are available when configured.
9. Tomcat and application logs are collected.
10. Controlled application transactions are captured.
11. Java transaction tracing works when Code Profiler is deployed.
12. Browser-to-backend correlation works when RUM JS is deployed.
13. Synthetic transactions execute correctly.
14. Alerts work as expected.
15. Maintenance windows suppress expected alerts.
16. Approved automated actions work safely.

    ![Apache Tomcat Monitoring data on Aggregated Dashboard](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-monitoring-for-apache-tomcat/image-20230323-201015.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=0063b43c41be18fd214e6295a95cb268)

## Troubleshooting

### No Tomcat Metrics

Verify:

* Engine is online.
* Tomcat server is reachable.
* Monitoring component is enabled.
* JMX is available when required.
* Credentials are valid.
* Required ports are reachable.
* Selected monitor is executing.

### JMX Connection Fails

Verify:

| Check | Details |
| - | - |
| JMX host | JMX host |
| Port | Port |
| Service URL | Service URL |
| Firewall | Firewall |
| Authentication | Authentication |
| TLS | TLS |
| Credentials | Credentials |
| Tomcat/JVM JMX configuration | Tomcat/JVM JMX configuration |

### Some Metrics Are Missing

The metrics available depend on:

| Factor | Details |
| - | - |
| Tomcat version | Tomcat version |
| Java version | Java version |
| Exposed MBeans | Exposed MBeans |
| Enabled interfaces | Enabled interfaces |
| Permissions | Permissions |
| Application architecture | Application architecture |

Verify that the expected MBean and metric are exposed by the target environment.

### Logs Are Missing

Verify:

| Check | Details |
| - | - |
| Log path | Log path |
| File permissions | File permissions |
| Engine access | Engine access |
| File-monitor configuration | File-monitor configuration |
| Log rotation behavior | Log rotation behavior |
| Parser or rule configuration | Parser or rule configuration |

### Application Is Slow but Tomcat Metrics Look Normal

Correlate the request with:

| Correlation Area | Details |
| - | - |
| Java transactions | Java transactions |
| SQL | SQL |
| Database performance | Database performance |
| External HTTP calls | External HTTP calls |
| Messaging | Messaging |
| JVM | JVM |
| Infrastructure | Infrastructure |
| Network | Network |

A slow Tomcat-hosted application does not necessarily mean Tomcat itself is the bottleneck.

### Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Tomcat environment.

[Contact GermainUX Support](https://docs.germainux.com/main/support.md).

## Get Help

> **[Contact GermainUX Support](https://docs.germainux.com/main/support.md)**
>
> The Germain Team can help you set this up.

> **Can't find what you need?**
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.