水电监控技术 2011-06-15
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 账户):
<?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>
<?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文件中下列代码中添加代码:
rem Guess CATALINA_HOME if not defined set CURRENT_DIR=%cd% if not "%CATALINA_HOME%" == "" goto gotHome
rem Guess CATALINA_HOME if not defined set CURRENT_DIR=%cd% if not "%CATALINA_HOME%" == "" goto gotHome
即,添加后代码为:
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
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,所示图片是加载中文包后的图片。
f = lambda x, y, z: x + y + z # returns a function that can optionally be assigned a name. def func: