Quest PerformaSure 是一种多层 J2EE 应用性能诊断工具。可对 J2EE 分布式系统进行全面的分析,包括 J2EE 应用服务器、Web 服务器、数据库服务器和主机资源负载等。在 PerformaSure 官方文档中列出了支持的中间件产品,包括WebSphere、WebLogic、JBoss等等,支持还是比较全的,在企业应用里都是主流、常见的产品。
昨天一个事业部需要监控部署在金蝶 Apusic 的应用,借此环境,一方验证下 Apusic 对 JMX(Java Management extensions)的支持是否到位,另一方面也验证PerformaSure是否能够应用到 Apusic 上,如何配置。环境如下:
SUSE Linux Enterprise Server 10 (x86_64) VERSION = 10 PATCHLEVEL =2
Oracle 10g RAC 10.2.0.2
PerformaSure 4.4.3
Apusic 5.1
将 PerformaSure 配置到 Apusic:
1. 编辑 apusic-5.1 /domains/mydomain /bin/startapusic 启动脚本文件。路径中斜体文本请替换为你本机相应的配置,安装路径和创建的 domain 名称。
2. 参考 PerformaSure 文档中 Tomcat5.5 配置方法(PDF 文档132页)。
a. 首先将下页内容放到启动脚本的40行:
# PERFORMASURE - START # # JVM_OPTIONS=***OPTIONAL*** JVM Options **OPTIONAL*** # export JVM_OPTIONS # PERFORMASURE_HOME=***SET THIS*** PerformaSure Home Directory ***SET THIS*** # # The following settings are based on PERFORMASURE_HOME. Include these lines, # but do not change them. # export PERFORMASURE_HOME sh "${PERFORMASURE_HOME}/scripts/preinstrumentor.sh" "${JAVA_HOME}" . "${PERFORMASURE_HOME}/scripts/makebootstrappath.sh" makebootstrappath "${JAVA_HOME}" PERFORMASURE_OPTIONS="-Dperformasure.debug=0 -Xbootclasspath/p:"${PS_BOOTSTRAP_PATH}" -javaagent:"${PERFORMASURE_HOME}"/lib/performasure-agent.jar" # # PERFORMASURE - END
根据本机 PerformaSure 安装的实际情况,修改上面的脚本片段中的 PERFORMASURE_HOME 变量,在我的机器上被修改成如下:
PERFORMASURE_HOME=/root/PerformaSure4.4
b. 接下来将 PERFORMASURE_OPTIONS 放到 java 命令行中。观察 startapusic 启动脚本文件可以看到有几个分支,会根据配置 Apusic 运行模式执行不同的脚本。我本机是走的 normal,脚本的最后一个分支。修改完是这样的:
$JAVA_RUN -Dcom.apusic.domain.home="$DOMAIN_HOME" $JVM_OPTS ${PERFORMASURE_OPTIONS} -classpath "$CP" com.apusic.server.Main -root "$APUSIC_HOME" "$@"
3. 到这里为止,PerformaSure 文档中的 Tomcat5.5 在 Linux(Solaris 相同)一般配置完毕。不过这个时候执行新脚本来启动 Apusic 是会报错的,服务器正常启动,PerformaSure 的 agent 却启动失败(jar 可以创建完成)。造成这个问题的原因是由于 PerformaSure 没能正确判断应用服务器的类型,需要在脚本中明确指定。在上边2.a里给出的代码添加指定
服务器类型的语句,更新后的2.a的配置脚本如下:
# PERFORMASURE - START # # JVM_OPTIONS=***OPTIONAL*** JVM Options **OPTIONAL*** # export JVM_OPTIONS # PERFORMASURE_HOME=/root/PerformaSure4.4 # # The following settings are based on PERFORMASURE_HOME. Include these lines, # but do not change them. # export PERFORMASURE_HOME sh "${PERFORMASURE_HOME}/scripts/preinstrumentor.sh" "${JAVA_HOME}" . "${PERFORMASURE_HOME}/scripts/makebootstrappath.sh" makebootstrappath "${JAVA_HOME}" PERFORMASURE_OPTIONS="-Dperformasure.debug=0 -Dperformasure.agent.appserverinfo=mydomain:Tomcat:5.x -Xbootclasspath/p:"${PS_BOOTSTRAP_PATH}" -javaagent:"${PERFORMASURE_HOME}"/lib/performasure-agent.jar" # # PERFORMASURE - END
上面添加的 -Dperformasure.agent.appserverinfo=mydomain :Tomcat:5.x 脚本就是用于指定应用服务器类型,其中 mydomain 是创建的域名。详细信息可以参考 PerformaSure PDF 文档177页。
到此为止,PerformaSure 就可以正常监控了,不过也存在不足:
1. 其它环境中有待验证,但相信大通小异。
2. 在我的验证环境中,配置 PerformaSure 后,启动时报 mejb.jar 启动失败,还有待研究、解决。好在现在部署的应用没有使用 ejb。
3. 另外当前验证仅基于单节点,未涉及 cluster。
各位看客有什么高见?
// 2009.03.07 13:30 添加 ////
作者:lzy.je
出处:http://lzy.iteye.com
本文版权归作者所有,只允许以摘要和完整全文两种形式转载,不允许对文字进行裁剪。未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。