Apache Tomcat acts as an open-source web server and servlet container for hosting Java web applications. It is popular for acting as a bridge between web servers and Java-based applications, facilitating the execution of dynamic content and processing client requests. Applications Manager's Tomcat monitoring tool is preferred by thousands of IT admins across the globe for its ease of use, robust monitoring capabilities, and affordable pricing. Unlike most Tomcat management tools which offer only health and availability stats for your database, Applications Manager's Apache Tomcat monitor provides in-depth Tomcat Server Performance Monitoring with numerous performance metrics and triggers notifications in case of downtimes.
Supported Versions of Tomcat Servers: 3.x, 4.x, 5.x, 6.x, 7.x and above.
Prerequisites for monitoring Tomcat server metrics: Click here
Using the REST API to add a new Tomcat server monitor: Click here
Follow the steps given below to create a new Tomcat monitor:
Note: Make sure to refer to Configurations based on Tomcat Deployments section before configuring the hostname and port details.
Note: Make sure to refer to the Tomcat Prerequisites section to learn how to configure username and password for respective Tomcat versions.
Note: To learn how to monitor Tomcat server running in JBoss, refer here.
Go to the Monitors Category View by clicking the Monitors tab. Click on Tomcat Server under the Applications Servers table. Displayed is the Tomcat Server monitor's bulk configuration view distributed into three tabs:
Click on the monitor name to see all the server details listed under the following tabs:
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
Availability | Shows the current status of the server - available or not available. | |
Response Time | The time taken for the tomcat server to respond while monitoring in milliseconds | |
Average Processing Time | The average processing time taken to process a request in milliseconds | |
Requests Per Minute | The average number of requests received by the server in one minute | |
Average Bytes Per Minute | The average bytes send per minute | |
Successful Requests | The number of requests served successfully | |
Errors | The number of error request received | |
Requests Failed percentage | Percentage of requests failed. | |
Class Loaded | The number of classes currently loaded in the java virtual machine. | |
Class Unloaded | The number of classes unloaded since the java virtual machine has started | |
Total Class Loaded | The total number of classes loaded since the java virtual machine has started execution. | |
Daemon Threads | The number of live daemon threads | |
Live Threads | Current number of live threads | |
Total Threads Started | The total number of threads started since the java virtual machine started. |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
Name | The memory pool name | |
Type | Memory pool type. i.e, (Heap memory , Non-Heap Memory) | |
Used Memory in MB | Used memory in MB | |
Free Memory in MB | Free memory in MB | |
Committed Memory in MB | Committed memory in MB | |
Maximum Memory in MB | Maximum memory allocated in MB | |
Used memory in % | Percentage of memory used | |
Free memory in % | Percentage of memory free | |
Name | Garbage collector name | |
Number of collections per Minute | Number of garbage collections occurred per minute | |
Collection Time per Minute | Collection time in milliseconds. |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
Connector Name | The thread pool connector name | |
Busy Threads | Number of threads currently busy | |
Current Threads | Number of threads currently created | |
Maximum Threads | The maximum number of active threads can present in this pool | |
Percentage Used | Percentage of threads used | |
Percentage Free | Percentage of threads free |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
JNDI Name | The JNDI name of the datasource | |
Context | The web application context name | |
Active Connections | Number of active connections to the data source | |
Idle Connections | Number of idle connections to the data source | |
Active Connections in % | Percentage of active connections (not applicable if maximum active connection is unlimited i.e. configured as -1) | |
Idle Connections in % | Percentage of idle connections (not applicable if maximum idle connection is unlimited i.e. configured as -1) |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
Connector Name | Connector name of the global request processor | |
Request Count | Number of requests served by this global request processor | |
Error Count | Number of error request received | |
Processing Time | Time taken by this global request processor to process the requests in milliseconds | |
Bytes Send Per Second | Average bytes send per second | |
Bytes Received Per Second | Average bytes received per second | |
Successful Request (%) | Percentage of successful requests | |
Failed Request (%) | Percentage of failed requests |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
Context | Web application's context name | |
Status | Status of the web application such as STARTED, STOPPED | |
Processing Time (ms) | The processing time taken to process the requests in milliseconds | |
Successful Requests | Number of successful request served for this web application | |
Failed Requests | Number of error request for this web application | |
Average Response Time (ms) | Average response of this web application in milliseconds | |
Average Request Per Minute | Average requests for this web application per minute | |
Average Bytes Per Second | Average bytes send per second | |
No.of Open Sessions | Number of sessions currently open / active | |
No.of Expired Sessions | Number of sessions expired | |
No.of Rejected Sessions | Number of sessions rejected |
Parameters | Description | Supported by Prometheus Integration |
---|---|---|
URL | The name of the servlet | |
Context | Web application's context name | |
Processing Time (ms) | The processing time in milliseconds | |
Successful Requests | Number of successful request | |
Failed Requests | Number of error request | |
Average Response Time (ms) | Average response time in milliseconds | |
Average Requests Per Minute | Average requests served per minute |
Troubleshoot: Having trouble in monitoring Tomcat server? Refer to the online troubleshooting section.
Monitoring of Tomcat Server depends on its deployment. This section explains the possible deployment scenarios of Tomcat. Your configuration of host name and the port depends on the following scenarios:
1. Standalone Tomcat Server
This is a general scenario wherein you have a Tomcat server which has the HTTP (apache) within its deployment. In this case, when configuring a tomcat monitor, specify the host name of the Tomcat server and the port of the HTTP.
2. One Tomcat Server (with HTTP) and one external instance of Apache
There is one Tomcat server with HTTP (apache) instance running in it and another external Apache running outside.
Example: Tomcat server name: Tomcat A; HTTP (in Tomcat server) port: 8080; External Apache server port: 80
In this case, while configuring for a Tomcat monitor, specify the host name as 'Tomcat A' and specify the port of the HTTP that runs with the Tomcat and not the external Apache, i.e., specify the port as 8080 and not 80.
3. One Tomcat Server (without HTTP) and one external instance of Apache
There is one Tomcat server without HTTP in it and another external Apache running.
Example: Tomcat server name: Tomcat A; HTTP (in Tomcat server) port: Not available; External Apache server port: 80
In this case, while configuring for a Tomcat monitor, specify the host name as 'Tomcat A' and specify the port of the external Apache, i.e., 80.
4. Multiple Tomcat Server (with HTTP instances in each of these servers) and one external instance of Apache
There are multiple Tomcat servers, say 3, with HTTP instances in each of them and another external Apache running.
Example: Tomcat Server names: Tomcat A, Tomcat B, Tomcat C; HTTP (in Tomcat servers) port: 8070, 8080, 8090 respectively; External Apache server port: 80
In this case, you need to create tomcat server monitor individually for Tomcat A, Tomcat B, and Tomcat C and specify their ports as 8070, 8080, and 8090 respectively.
5. Multiple Tomcat Server (without HTTP instances in these servers) and one external instance of Apache
There are multiple Tomcat servers, say 3, without HTTP instances in them and another external Apache running.
Example: Tomcat Server names: Tomcat A, Tomcat B, Tomcat C; HTTP (in Tomcat servers) port: Not available; External Apache server port: 80
You can monitor only one of the instances in this case. Please contact appmanager-support@manageengine.com if you would like to have it added.