Tomcat Servers


Tomcat Servers - An Overview

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.

Creating a new Tomcat server monitor

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:

  1. Click on Add New Monitor link under New Monitor.
  2. Select Tomcat Server.
  3. Enter the IP Address or hostname of the host.

    Note: Make sure to refer to Configurations based on Tomcat Deployments section before configuring the hostname and port details.

  4. Enter the port number in which the monitor is running. Default port number is 8080.
  5. Enter the credential details like user name and password for authentication, or select the required credentials from the Credential Manager list by enabling the Select from Credential list option.
  6. Enter the SubNetMask of the network.
  7. Choose SSL is enabled option, if SSL is enabled in Tomcat server.
  8. Enter the polling interval time in minutes.
  9. Provide the monitor-specific authentication information, such as username and password.
  10. Note: Make sure to refer to the Tomcat Prerequisites section to learn how to configure username and password for respective Tomcat versions.

  11. If you are adding a new monitor from an Admin Server, select a Managed Server.
  12. Choose the Monitor Group from the combo box with which you want to associate Tomcat Server Monitor (optional). You can choose multiple groups to associate your monitor.
  13. Click Add Monitor(s). This discovers Tomcat server from the network and starts monitoring them.

Note: To learn how to monitor Tomcat server running in JBoss, refer here.

Monitored Parameters

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:

  • Availability tab, gives the Availability history for the past 24 hours or 30 days.
  • Performance tab gives the Health Status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.

Click on the monitor name to see all the server details listed under the following tabs:

Overview

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.

Memory

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.

Thread

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 

JDBC

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)

Web

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

Web Applications

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

Servlets

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.

Configurations based on Tomcat Server Deployment

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 ATomcat BTomcat C; HTTP (in Tomcat servers) port: 807080808090 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 ATomcat BTomcat 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.