appmanager | Enterprise IT Management Blog from ManageEngine

Monitoring Tomcat Application Server

Jan 25 2010 03:28:57 AM Posted By : Kevin
Comments (0)

Today, Monitoring is an important task for an Administrator. Grab statistical data, reconfigure certain aspects of the server, add a new web application etc, form a part of the daily administration tasks. At the end of this blog, the administrator can effectively monitor these parameters and have answers to these questions:

1. Which Webapps has the maximum number of sessions ?
2. How much memory is the Tomcat JVM process taking up ?

Though much has been talked about monitoring tomcat application across the market, my insight here is into monitoring Tomcat Application Server through ManageEngine Applications Manager.

Metrics to monitor :

The following metrics serve as a guideline to monitor Tomcat Server through ManageEngine Applications Manager :

  • Uptime & Availability
  • Number of Requests received by the Server
  • Used / Free Memory of the server
  • Active Thread Count
  • Number of Open Sessions per application
  • Application Session information
  • Application Response Time
  • Servlet Response Time
  • Servlet Requests per min
  • Thread Status ( for Tomcat 5.x and above )
Supported Tomcat Versions :

The following versions are supported by ManageEngine Applications Manager :
  • Tomcat 3.x
  • Tomcat 4.x
  • Tomcat 5.x
  • Tomcat 6.x
Configuring Tomcat Server :

In order that Tomcat Server be monitored by ManageEngine Applications Manager, you have to deploy the Tomcat Agent. The procedure to deploy the agent is outlined below :

a. Tomcat 3.x & 4.x
Step 1 : Copy the agent, corresponding to the Tomcat Version, from [AppManager_Home]\classes folder to the Tomcat Installation folder. [ Tomcat3Agent.zip for Tomcat 3 and Tomcat4Agent.zip for Tomcat 4 ]
Step 2 : Extract the zip file in the Tomcat Installation folder.
Step 3 : Add the following code to conf\server.xml  file in the Tomcat Installation folder, below the Engine Tag.

<Valve className="com.adventnet.appmanager.tomcatagent.ver4.valve.AdventNetHostValve"/>

Step 4 : Restart Tomcat Server.

b. Tomcat 5.x & 6.x
Tomcat server should host the ‘Manager’ application. This application is available by default.

You can find more detailed steps to configure the agent @ http://www.manageengine.com/products/applications_manager/help/managing-business-applications/application-server-monitor.html#tomcat-server

For Tomcat version 5.x and above, the information provided in the url’s below is shown in Applications Manager.
http://tomcatservername:8080/manager/status?XML=true
http://tomcatservername:8080/manager/html/list
http://tomcatservername:8080/manager/jmxproxy?qry=*%3Aj2eeType%3DServlet%2c*

Monitoring Tomcat :

On adding a tomcat server, the metrics to monitor are associated automatically. A few screenshots below shows the Tomcat metrics, as monitored through Applications Manager.

1. Memory usage & Response Time :



2. Tomcat Thread details ( for Tomcat 5.x & 6.x )



3. Tomcat Application Summary :



4. Tomcat Servlet Details :



Click Configure Alarms against each metric to configure Thresholds.



In the above image, the health of the Tomcat server is critical. The Used memory is 17444 kB, which is beyond the threshold value of 400 kB.

You can configure corrective actions to restart Tomcat service / server through ‘Run Program Action’, when the threshold is violated or when the service is down.

Conclusion :

Monitoring Applications is a major task for a Network Administrator. It is made easier through ManageEngine Applications Manager. I hope the steps outlined above should help any administrator to monitor Tomcat Applications and troubleshoot for any performance errors, help in Capacity planning, generate reports of web usage etc.

Kevin

I am sure you should have come across any one of these messages below, in ManageEngine Applications Manager.

1. Authentication Failed. Kindly provide the correct username and password

2. SNMP Agent is not running in the system. Kindly start the SNMP Agent for Monitoring.

However, the Administrator or Technician may not know when such messages pop up in the Web Client. A configuration change has to be done in order to receive such system error notifications.

Follow these 3 easy steps :

Step 1 : Add the line, as below, to [AppManager_HOME]\conf\AMServer.Properties file.

am.sendmonerrormail.enabled=true



Save the file.

Step 2 : Click Admin -> User Administration -> Select "Admin" User and enter the administrator's email address. If this is not configured, the emails will be sent to the address configured in Admin -> Configure Mail Server.


Step 3 : Restart ManageEngine Applications Manager service.

System Errors will now be notified, if the error still persists for 3 consecutive polls. The Administrator will start to receive notifications for any such system errors.


Kevin

Well, this has been posted frequently in our forums. Customers using two or more ManageEngine products should have definitely come across this.

Why does this happen, at the first place?

All ManageEngine products have been built on the same carrier platform and all use Tomcat / JBOSS server for serving the webpages. The cookie set in the browser by these products have the same name(JSESSION_ID) and the context path. So, when you access one ManageEngine product ( say for example, OpManager ), the cookie is first set on your browser. When you access Applications Manager or ServiceDesk Plus, you will be prompted to login to the web client. The value of the cookie is now set (ie., updated) to what Applications Manager or ServiceDesk Plus server offers. However, when you try to access the OpManager pages, the value of the session cookie will now be different from what was set earlier through OpManager and hence, you are forced to relogin with a session timeout message.

You will now be interested to know how to overcome this. It is easy, though the individual products are now working to change the cookie name.

1. Access OpManager through the hostname of the server and access Applications Manager or ServiceDesk Plus through the ipaddress.

2. Install these products on different physical server or VMWare instances.

3. You can think of setting up different hostnames ( CNAME entries ) for the applications in your DNS.

I will keep you all posted when this is getting addressed.

Kevin

Every organization has its own Applications ( be it critical or non-critical ) to monitor and they have their own teams to administer these applications. Not all team members has the same level of expertise to troubleshoot the application errors. With ManageEngine Applications Manager, this is possible at any level.

[ This is a live situation that happened a few weeks ago in our Client office. We were elated to find out that with Applications Manager, there were able to find out the root cause of the issue and were able to fix it within minutes of identifying the root cause. ]

Let us take an example here to see how ManageEngine Applications Manager helps technicians to troubleshoot application errors.

Payroll System :

This system should have a frontend JSP / ASP web page and a backend MSSQL or Oracle Database. Let us fine drain this to have a JSP frontend through Tomcat Server and a MSSQL database,both the components residing on two different physical servers.

Let us say a user reports to the Payroll Administrator that the application is responding too slow that the login takes around 2-3 mins.

The Payroll Administrator has to now login into the application to validate the incident. Though it may or may not be slow to the Administrator, he has to now resolve the issue for the end user. With ManageEngine Applications Manager in place, the Administrator can get an holistic approach on the performance of the Application.

The Administrator can look for the following through ManageEngine Applications Manager while working to troubleshoot the application performance :

1. Check whether the CPU / Memory of the Server is normal.


The screenshot shows that the Memory has shot up to 94% and is always a constant at this value. This may have violated the Threshold value and indicates that there is a performance issue.

2. Now, the next area to troubleshoot is the Tomcat Server. On analyzing the tomcat server parameters, it has been found that the Used Memory of the application is 13 MB while the total memory allocated is 18 MB.

                                 

On further analysis, the administrator finds that there are 25 Current Threads for a particular connector which causes the memory to shoot up.

3. The analysis is still not complete. The Administrator drills down further to find out why the Memory used by the Tomcat Server was close to 75 %. The next area to look into is the MSSQL database.

                                                

Observing the above screenshots, the administrator concludes that the Root cause for the slow performance of the payroll application is due to 70 Active Connections per min, while the optimum value should have been at 30. There were unwanted connections by end users to the DB Instance, which has caused a degradation in the performance of the application. [ Refer my blog "Thresholds & Managing Application Performance Proactively" for more details on configuring Thresholds to various parameters ]

Now, the next question is that “Should I have to go into each of these monitors every time, an issue is reported?”. You should have guessed the answer right. The answer is “No”. 

See the various approaches which help you to be more proactive than reactive, when such incidents are reported.

1.    You can group these monitors to create a Business snapshot view. The detailed view gives an at-a-glance performance of all the monitors.

                                                                

2.    You can create a dashboard view for these monitors and publish the dashboard on a plasma screen.

The below code snippet is an example to publish your dashboard view.




 <iframe src="http://servername:9090/publishPage.do?method=getPublishedDashboard&pagekey=248a855fea1f90279460dc5e0731493b" align="center" height="768" width="1024" border="0" frameborder="0"> </iframe>


The option to publish the dashboard is available through Actions -> Publish Dashboard from the Dashboard view.


3.    You can include troubleshooting documents for various errors associated with the application performance.


 
You can extend the same steps to troubleshoot any other application error through Applications Manager. Applications Manager follows a pro-active approach and helps ease out Administrator job functions by automatically correcting the errors through custom scripts or programs.


I believe this document serves as a guide to help any administrator to troubleshoot application performance and errors through ManageEngine Applications Manager.

Kevin

Applications Manager on Windows and Linux

Dec 08 2009 01:47:10 AM Posted By : Kevin
Comments (0)

When I show the demo of ManageEngine products to prospects, I remember them asking me this question : “Do you have Linux variant of the product?”. You should have guessed my answer right. It is “Yes”. Almost all products, except a few, under the ManageEngine suite offer a Linux variant.

Let me, now, restrict myself to discuss only about Applications Manager.

Applications Manager is available for both Windows and Linux Operating system. It has been tested well to run on these OSes. Few features applicable to Windows edition are missing in the Linux edition, however, the basic functionality of all other features remains the same.

The following features are available only with the Windows Edition :

1. Exchange Server Monitoring : An extensive monitoring of the Exchange Server is available with the Windows Edition. Information related to SMTP, MTA, Information store, Information store mailbox and public folder is all gathered through WMI.



2. Windows Performance Counters : Any parameter related to the Win32_PerfFormattedData can be monitored through Applications Manager on Windows.



3. Event log rule : Any event can be monitored and notified when it occurs. This is useful when any application generates an failure event in the Windows Event log viewer. This is helpful in a way that the event log comes before the application actually crashes. This serves as a proactive mode of monitoring your applications and services.



4. Active Directory Monitor : All Windows shops will have an established AD setup in their network and monitoring AD parameters and services becomes critical to provide a hassle-free activity across the network. The screenshot shows few monitors which will help you troubleshoot for any unforeseen problems with Active Directory.


5. Microsoft .NET Monitoring : You will be able to monitor Microsoft .NET attributes and Sharepoint services when Applications Manager is installed on a Windows OS. Here is a sample screenshot to show the JIT and Queues while monitoring .NET



6. NTLM authenticated URLs and Recording HTTP(s) Sequence : You can record the HTTP(s) sequence through Recorder.exe tool which works only from a Windows OS. However, you will be able to save the sequence to Applications Manager on a Linux OS.

I leave it to you to explore the other versatile features of Applications Manager. You can choose the edition to use based on your requirements.

Kevin

When ManageEngine came into being in 2003, OpManager was the first one to be released under its fold. The initial phases of Pre-Sales was exceptionally good and exciting. That was the beginning of my career as a Product Expert and Domain Consultant. We used to sit for hours with customers and give demos to meet their requirements. I know, that i am building stories here.  . Now, let me come to the point.

Customers ( or for that matter, everyone ) know(s) what Thresholds are. But, Re-arm value sounded different to them. I remember answering close to hundreds of support emails explaining what Re-arm values are. Re-arm value is that value of the attribute or monitor, which when reached, automatically clears the fault thus raised due to threshold violation.

Now, let us see how thresholds and re-arm values help in managing application performance proactively.

Threshold :

A baseline value for a parameter, which when monitored, indicates degradation of service when the monitored value is beyond the baseline value.

What does it indicate?

Threshold values are configured to ensure that systems are running fine and indicates optimum utilization of resources.Any violation in the Threshold value indicates a degradation in the performance of the application or server or network or all.

How do you configure thresholds to Monitored parameters in Applications Manager ?

For any monitored parameter, you can configure a Threshold value. You can configure Critical, Warning and Clear Threshold values for a parameter. To detail it, let us assume that you are monitoring CPU Utilization on a Web Server. You can configure to receive a Critical Event when CPU Utilization is greater than 90%, a Warning Event when CPU Utilization is between 60% and 90% and a Clear Event when CPU Utilization is less than 60%.

Threshold and Re-arm value
You can associate this threshold to all devices on which you monitor the CPU Utilization. Corrective Actions or Email / SMS Notifications can be configured at attribute level for Critical, Warning and Clear Alarms.


How to set meaningful thresholds?

Well, this is mostly dependent on your business requirements and environment and cannot be generalized. However, you can arrive a baseline value following the trend of these monitored parameters for 7 days or 30 days. Here is a 7 day report on CPU Utilization on a server, which help you arrive at a baseline threshold value.

7-day report on CPU Utilization in Applications Manager


Looking at the graph above, anyone can draw their own conclusion on setting a baseline value for CPU Utilization on the Server.

Suggested Reads for setting thresholds to MSSQL Monitor and Sun-solaris boxes :

1. MSSQL Monitor :

You can look at the document through the URL below for basic guidelines on setting thresholds for various parameters monitored on MSSQL.


2. Sun Solaris box :

See how to set thresholds through Sun System Manager and get them monitored through Applications Manager.

http://docs.sun.com/app/docs/doc/819-2666/6n4ujm6pv?l=sv&a=view


Well, dont ask me why this post came out as a Q&A, but this was supposed to be my first blog. Just as it happens in film releases of an debutante, Improving Network Discovery came out first ( may be, because my director loved the Network Discovery than this. Who knows, may be, he was not interested in this. ).

Kevin

Improving Network Discovery

Nov 29 2009 11:14:35 PM Posted By : Kevin
Comments (1)

I have done around close to 500 implementations of ManageEngine Products, particularly OpManager and ServiceDesk Plus and its variants – MSP, DE, SCP, AE. While implementing Network related solutions/product, it is mandatory that all devices have to be discovered automatically. This adds value and really makes sense while working with the product.

To improve the discovery process, we always have a practice to change the NATIVE PING to ‘true’. I used to wonder what NATIVE PING is all about.

Well, to begin with, let me give a quick brief on the Discovery Process.

Applications Manager ( or OpManager ) uses ICMP Ping to find the active devices during Network Discovery. The application sends a broadcast and comes up with the list of active ipaddresses, after which the deep discovery happens. There is every chance that the ICMP Ping may be disabled in Networks. In such cases, the active devices are not discovered.



In order to overcome this, the carrier grade platform , over which ManageEngine products have been built, comes up with a Native Ping tool. This ping request, when enabled, goes as any other TCP request and hence the discovery is successful.

Now to enable NATIVE PING Discovery, you have to edit the [ApplicationsManager_INSTALL]\conf\AvailabilityTests.conf and change the following parameter :

am.enablenativeping=false



as

am.enablenativeping=true



Native Ping is used to improve the performance of discovery over the default system ping. When Native Ping is enabled, the default system ping is not used for discovery. Hope this helps make your discovery process even more smooth.

ManageEngine Applications Manager has now a lot more cool features with a better User Interface for monitoring applications, servers, databases performance and availability. The journey of Applications Manager version 8 to Version 9 has been very exciting with the addition of out of the box support for monitoring SAP, AS400/iSeries, SharePoint, WebSphere MQ, Sybase etc. 

Key Features in Applications Manager 9

  • Oracle E-Business Suite Monitoring: ManageEngine Applications Manager's Oracle E-Business Suite monitor enables you to monitor the availability and performance of your Oracle EBS Setup, from a centralized web console.
  • Custom Dashboards:ManageEngine Applications Manager allows customers to create custom views of Performance metrics that are important from the oranization's point of view

Other upgrades include:

  • Microsoft SQL Server database back-end support.
  • Enhancements in server monitoring.
Key Features added from Applications Manager 8 to Applications Manager 9
  •  AS400/iSeries Monitoring : Ensure the jobs, spools, sub systems and other components in your AS400 environment works smoothly. Includes ability to administer the AS400.
  •  SAP CCMS metrics : This capability adds to the existing SAP performance monitoring ability. With this new feature you can monitor custom parameters exposed by SAP Business Applications like SAP CRM, BI etc and get more mileage out of your SAP deployment.
  •  LDAP, DNS and FTP/SFTP Service Monitors : This helps understand the quality of service of critical Internet Services that are used by your customers.
  •  Add Custom Monitor Types :  If you have some application not supported by Applications Manager, this capability will help you bridge that gap. This also provides  ability to add custom scripts, integrate custom Java, .NET. C# and other code that your development team could write for you.
  •  Database Query Monitor : This helps the IT Admin add business intelligence in to Applications Manager and provide business managers with a graphical view about business performance in addition to technology performance. This can also helps your database administrator to add custom SQL queries for getting additional performance metrics.
  • Flash-based Graphical view, called Business View to give better visibility on application dependency was added.
  • With Network Monitoring Connector, integration with comprehensive Network Monitoring Tool, ManageEngine OpManager is complete.
  •  Out of the box support for performance and availability monitoring of IBM WebSphere MQ, SilverStream, Microsoft Office Sharepoint Server, GlassFish Server , Sybase was added
  •  Report Enhancements - Availability and Health Reports - Critical Snapshot, History reports added; Availability Trend Report, Outage Comparison Report added
  •  Ability to configure Business hours for reports added. Provision for enabling and disabling attribute reports added.
  •  Additional metrics such as Hour of day, Day of week, Statistical and Heat chart report tabs in 7,30 History data added


 Hi,

Now, you can register yourself for receiving a free copy of Aberdeen Group's Report:
Monitoring the End-User Experience - Improving Business Performance through Application Management.

The findings in the report will demonstrate how a converged technology and business perspective can improve performance management for applications critical to business performance, employee productivity and customer experience.

Susan

Oracle Capacity Planning Tool

Oct 16 2009 03:37:16 AM Posted By : Gibu
Comments (0)

Recently we got an email on how a customer uses ManageEngine Applications Manager for Capacity planning. The various reports that are provided in ManageEngine Applications Manager for Oracle Performance Management came handy when the Oracle Database Administrator wanted to plan capacity. They could look at tablespace usage, Oracle datafiles and even number of sessions which makes it a valuable  Capacity planning Tool.

Monitor Oracle Datafiles

ManageEngine Applications Manager also supports monitoring various Oracle Applications, IBM Applications, packaged applications like Exchange Server and is a Server monitoring tool. The server monitoring capabilities also helped the administrator know the utilization and performance of various resources in their network.