Apache Tomcat 是市场上领先的 JavaEE 应用程序服务器之一,是客户部署应用程序的普遍选择。监控性能和可用性是有效的应用程序性能管理策略的关键。
AppDynamics 自动发现并监控 Tomcat 上运行的应用程序代码,并对其通过生产中的 JVM 的执行情况提供深度的可见性。这使用户能够了解哪里出现了延迟,以及应用程序和业务事务对 CPU 和内存等系统资源的消耗情况。
监控业务事务
AppDynamics 还可以从 Tomcat 及其 JVM 中的公共入口点(如 servlet、struts action、spring MVC、Web 服务调用甚至自定义 POJO 入口点)自动发现业务事务。用户可以在这种上下文中查看通过各种 Java 组件(如 SOAP、EJB、JDBC、JMS、CICS)以及跨 JVM 的远程调用和分布式事务的 CLR 调用执行业务事务的情况。
|
|
Tomcat 实时报警
AppDynamics 还提供动态的 SLA 基准报警和主动报警,以便在出现性能问题时发出通知,在开始违反最终用户体验和服务级别之前向应用程序和生产支持团队预警。
|
内存不足异常和内存泄漏
AppDynamics 还监控 Tomcat 服务器内存,帮助用户了解一段时间内堆的使用情况、垃圾回收和关键内存池使用率。AppDynamics 还可以在 Tomcat 服务器及其 JVM 内部自动跟踪和监控内存泄漏,只需进行极少用户分析即可在几分钟内查明根本原因,而不是需要几天或几个星期。
|
|
检测抛出异常
AppDynamics 可以收集和报告 Tomcat 服务器中抛出的所有应用程序运行时异常。因此,用户可以查看在业务事务和用户请求超时或失败时抛出的堆栈跟踪。
|
监控速度缓慢的 SQL 和 NoSQL 查询
Tomcat 监控还可以检测 SQL 语句和 NoSQL 查询延迟,让 SQL 文本和 NOSQL 查询完全可见,例如 CassandraThrift 和 MongoDB BSON。支持所有关系数据库(如 Oracle、SQL Server、MySQL、Sybase 和 DB2)及 NoSQL 数据库,如Cassandra、MongoDB、CouchDB 和 HaDoop。
|
|
更多信息
Apache Tomcat(或 Jakarta Tomcat 或简称 Tomcat)是由 Apache 软件基金会
(ASF) 开发的开源 Servlet 容器。Tomcat 提供“纯净的Java
”HTTPweb 服务器
环境,供Java
代码运行。
Tomcat 不应与Apache web 服务器混淆,后者是 HTTP web 服务器的 C 实现;尽管这两款 web 服务器会作为服务器应用程序堆栈的部分频繁一起使用,但它们并不捆绑在一起。Apache Tomcat 包括用于配置和管理的工具,但也可以通过编辑 XML 配置文件进行配置。
在我们的 UI 中,Tomcat 应用程序所有者可以 360 度了解应用程序性能,正如我们白皮书中所述的一样。您可以通过在 Tomcat 分析的同时了解其性能(包括硬件和 CPU 指标,以及内存使用情况)并向下追溯到方法和类级别对性能排除故障,进行 Tomcat 监控。
您能够呈现和映射 JVM 依存关系,自动发现和映射 服务于 java 应用程序和 JVM 以及与它们交互的所有层。这将为您提供比其他 Java 性能工具好得多的高水平应用程序性能视图。
您还能够监控 JVM 健康状况和性能,通过响应时间、吞吐量、异常率和无用信息收集时间等关键 Java 分析指标以及 CPU、内存和磁盘 I/O 等主要系统资源了解 JVM 的健康状况。
分布式业务事务跟踪能够实现整个 JVM 内分布式业务的标记跟踪式跟踪。您将简单、直观地了解分布式业务事务的执行情况以及何处存在瓶颈。并且最终,您将能够在几分钟内对 Java 代码延迟排除故障,在 JVM 处理业务事务和请求时获得对 Java 代码执行情况的完全可见度。这让您能够在几分钟内隔离延迟并查明其根本原因。
关于 JMX 趋势,您可以获得全面的指标查看器,让您能够关联、跟踪和分析来自 JVM 和容器(通过 JMX)的关键指标,以及通过自定义 MBeans 获得的指标,并能够对内存泄漏和对象抖动问题进行检测和故障排除,即使在生产负荷下也一样。
了解可如何轻松实现 Tomcat 监控和管理。立即免费试用我们功能完整的 Tomcat 监控性能解决方案!
有关详细信息,请阅读我们的 Tomcat 监控数据表。
Lambda Probe实时监控和管理的Apache Tomcat
Lambda Probe(以前称为Tomcat Probe)是一款实时监控和管理的Apache Tomcat实例的基本工具。
Lambda Probe 是基于 Web + AJAX 的强大的免费开源工具,可以用来实时管理一个单独的host。LambdaProbe拥有几乎所有Tomcat Manager的功能,可以说是一个增强版本的 Tomcat Manager。除此之外,Tomcat Probe 还拥有很多让开发者和系统管理者更方便的性能。从而使得Tomcat对开发者和管理者更加透明。包括应用程序、数据源、发布、日志、线程、集群、系统信 息、状态、连接器状态这些功能。如配合 JDK 1.5 甚至可以实时的画出 Server 的详细内存占用状态。
Lambda Probe 的官方地址:http://www.lambdaprobe.org,在此可以下载Lambda Probe的最新版本。
用 Tomcat manager 安装 Probe: 下载 Lambda Probe 的 .war 文件,启动Tomcat,进入 Manager url(例如:http://localhost:8080/manager/html),使用“WAR file to deploy”选项加载 probe.war。 也可以手工加载 Probe到 Tomcat 服务器的 webapps 目录下,这里不再赘述。Porbe 支持的 Tomcat 服务器版 本: 5.0, 5.5, 6.0。有时还需要设置manager账户,即在 conf/tomcat-users.xml 中添加 manager 账户, probe 需要这个账户才能正确登录使用;你可以把文件内容改成如下代码所示即可拥有一个用户名为admin,密码都为空的管理员账户(一般情况下,安装配置好 Tomcat后,这一块不需要再做修改,即 Probe 使用 Tomcat 的 Manager 账户):
Java代码
-
<?xml version='1.0' encoding='utf-8'?>
-
<tomcat-users>
-
<role rolename="tomcat"/>
-
<role rolename="role1"/>
-
<role rolename="manager"/>
-
<role rolename="admin"/>
-
<user username="tomcat" password="tomcat" roles="tomcat"/>
-
<user username="both" password="tomcat" roles="tomcat,role1"/>
-
<user username="role1" password="tomcat" roles="role1"/>
-
<user username="admin" password="" roles="admin,manager"/>
-
</tomcat-users>
Java代码
-
<?xml version='1.0' encoding='utf-8'?>
-
<tomcat-users>
-
<role rolename="tomcat"/>
-
<role rolename="role1"/>
-
<role rolename="manager"/>
-
<role rolename="admin"/>
-
<user username="tomcat" password="tomcat" roles="tomcat"/>
-
<user username="both" password="tomcat" roles="tomcat,role1"/>
-
<user username="role1" password="tomcat" roles="role1"/>
-
<user username="admin" password="" roles="admin,manager"/>
-
</tomcat-users>
LambdaProbe 1.7b 的中文语言包下载: messages_zh_CN.zip 9KB。使用方法是: 把下载的文件解压缩, 将其中的 messages_zh_CN.properties 放到 $TOMCAT_HOME$\webapps\probe\WEB-INF 下即可。
查看内存使用情况时,未配置前,打开“系统信息”页面中的“内存使用”项,显示如下图中所示的提示信息:
这时需要修改catalina.bat文件,该文件在Tomcat的安装目录中,如目录:D:\Program Files\Apache Software Foundation\Tomcat 5.0\bin,右键点击该文件,选择“编辑”,在记事本中打开该文件开始修改。在catalina.bat文件中下列代码中添加代码:
Java代码
-
rem Guess CATALINA_HOME if not defined
-
set CURRENT_DIR=%cd%
-
if not "%CATALINA_HOME%" == "" goto gotHome
Java代码
-
rem Guess CATALINA_HOME if not defined
-
set CURRENT_DIR=%cd%
-
if not "%CATALINA_HOME%" == "" goto gotHome
即,添加后代码为:
Java代码
-
rem Guess CATALINA_HOME if not defined
-
rem --------------------------------------
-
set CATALINA_OPTS=-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
-
rem --------------------------------------------------------
-
set CURRENT_DIR=%cd%
-
if not "%CATALINA_HOME%" == "" goto gotHome
Java代码
-
rem Guess CATALINA_HOME if not defined
-
rem --------------------------------------
-
set CATALINA_OPTS=-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
-
rem --------------------------------------------------------
-
set CURRENT_DIR=%cd%
-
if not "%CATALINA_HOME%" == "" goto gotHome
其中,29001是你的jmx.port,在未配置前的红色字体的提示信息中可以看到。
配置好后访问路径:http://localhost:8080/probe/
用户名:admin,密码:空
进入后,界面如图:
打开“系统信息”页面中的“内存使用”项,分析内存各项指标占用情况,如下图:
Probe 的对内存使用状况的监控分析功能有限,只能监控Survivor Space、Perm Gen、Tenured Gen、Eden Space、Code Cache、Total等六种情况,其他情况和六种情况的进一步详细信息就无能为力了。
说明:本文所用Tomcat版本为5.0,所示图片是加载中文包后的图片。
(责任编辑:IT)