`
cppmule
  • 浏览: 447030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JavaMelody系统监控工具使用配置

    博客分类:
  • java
 
阅读更多

JavaMelody系统监控工具使用配置  

2012-04-27 12:01:48|  分类: rhel_apache|字号 订阅

 
 
 
项目开发结束了,需要做一下压力测试,就使用apache自带的ab程序进行压力测试,300个并发20000个请求,压了4组,服务器端内存就疯长到了330m,jvm一共才配置了512m,tomcat基本响应就很慢了,经过观察,330m内存基本不释放,查看自己开发的代码,没有发现不断向静态队列里不停地压对象的代码,应该基本排除是自有代码的问题,于是不停地google,发现了http://ddupnow.javaeye.com/blog/621619文章,博主的问题和我的症状很像,于是按照他的方式下载了visualvm and heapanalyzer软件,我用的是jdk1.5,发现visualvm竟然不能dump heap,于是又一番google,发现是jdk1.5的问题,于是修改成jdk1.6,这下可以到处内存堆了,然后使用heapanalyzer进行分析,dump文件很大,heapanalyzer软件几次导入都在55%的地方死掉,分析应该是jvm内存不够,所以采用命令行加参数来启动,java -Xmx1000m -Xms1000m -jar ha405.jar,ha405.jar是heapanalyzer的jar包,这下果然顺利装在dump文件,分析后和上面博主提出症状一样,也是压力测试软件频繁生成session,但session不释放问题,于是按照那篇博文的方式修改jsp文件,添加session="false"标示,再次测试,发现内存依然居高不下,分析我们的代码,我们采用的是struts架构,猜测应该是struts的控制器代码里创建了session信息,google发现http://java.chinaitlab.com/Struts/727256_2.html文章,果然是控制器里创建了session信息,由于我们的系统后台利用到了session信息,所以不能直接通过修改配置项来控制不生成session,我们的方案是集成一个控制器,通过url匹配,如果是前端页面就不创建session,如果是后台系统就创建session。
 
 
JavaMelody能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。 
使用配置如下: 
1、到http://code.google.com/p/javamelody/downloads/list下载zip的压缩包 
2、解压缩并将javamelody.war复制到Tomcat发布目录下 
3、在被监控项目web.xml中加入如下代码 

Java代码  收藏代码
  1. <filter>   
  2.         <filter-name>monitoring</filter-name>   
  3.         <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>   
  4. </filter>   
  5. <filter-mapping>   
  6.         <filter-name>monitoring</filter-name>   
  7.         <url-pattern>/*</url-pattern>   
  8. </filter-mapping>   
  9. <listener>   
  10.         <listener-class>net.bull.javamelody.SessionListener</listener-class>   
  11. </listener>  


4、将javamelody.jar复制到被监控项目的LIB目录 
5、启动Tomcat应用服务器并访问javamelody应用,如http://localhost:8080/javamelody 
6、根据实际情况做如下设置 

JavaMelody系统监控工具使用配置 - zhuzhu - 五事九思 (大连Linux主机维护)
7、点击Add按钮即可 

JavaMelody系统监控工具使用配置 - zhuzhu - 五事九思 (大连Linux主机维护)
 
 

JavaMelody能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。 
使用配置如下:

 

部署步骤如下: 


1:首先需要下载两个jar包,分别是javamelody-1.16.0.jar,jrobin-1.5.9.1.jar,第一个jar包下载 地址是:http://code.google.com/p/javamelody/downloads/detail?name=javamelody-1.16.0.jar&amp ;can=2&q= 
第二个jar包需要首先下载javamelody-1.16.0.war,然后在解压后的lib下面可以找到该包,该war包的下载地址是:http://code.google.com/p/javamelody/downloads/detail?name=javamelody-1.16.0.war&can=2&q =

 

2:将刚刚得到的两个jar包放到自己项目的lib目录下。 

3:在web.xml配置文件中进行配置,配置内容如下: 
         <filter> 
<filter-name>monitoring</filter-name> 
                <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>monitoring</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 
<listener> 
<listener-class>net.bull.javamelody.SessionListener</listener-class> 
</listener> 

4:重新启动项目,打开连接http://localhost:8080/monitoring/ 即可看到监控图表

 


又一种方法:

 

1、到http://code.google.com/p/javamelody /downloads/list下载zip的压缩包 
2、解压缩并将javamelody.war复制到Tomcat发布目录下 
3、在被监控项目web.xml中加入如下代码

  1. <filter>   
  2.         <filter-name>monitoring</filter-name>   
  3.         <filter-class >net.bull.javamelody.MonitoringFilter</filter- class >   
  4. </filter>   
  5. <filter-mapping>   
  6.         <filter-name>monitoring</filter-name>   
  7.         <url-pattern>/*</url-pattern>   
  8. </filter-mapping>   
  9. <listener>   
  10.         <listener-class >net.bull.javamelody.SessionListener</listener- class >   
  11. </listener>  

4、将javamelody.jar复制到被监控项目的LIB目录 
5、启动Tomcat应用服务器并访问javamelody应用,如http://localhost:8080/javamelody 
6、根据实际情况做如下设置

7、点击Add按钮即可


 

jprofiler 远程监控 tomcat 服务器.

 

 

原文出处:http://blog.chenlb.com/2008/11/jprofiler-monitor-remote-linux-tomcat-server.html

写的web程序,有时候可能服务器挂了,要找bug,比较辛苦,有了监控工具就好多了。现记录下 jprofiler 远程监控tomcat的安装,与起步。

先来说我的环境:客户机,windows/java 1.6/jprofiler 5.1.2。可以看另一篇文章:jprofiler 试用 。
服务器:centos 5.1/java 1.6/jprofiler 5.1.2。下载linux版:http://download.ej-technologies.com/jprofiler/jprofiler_linux_5_1_2.tar.gz

1、下载并安装,其实直接解压就得了。

[root@master local]# pwd /usr/local [root@master local]# wget http://download.ej-technologies.com/jprofiler/jprofiler_linux_5_1_2.tar.gz [root@master local]# tar zxf jprofiler_linux_5_1_2.tar.gz

2、打开windows中的jprofiler,配置远程的session。

2.1、Shift+F1打开“QuickStart"对话框,选择“An application server, locally or remotely”,然后“Next”,如图:

2.2、选择服务器为:Apache Tomcat 6.x,Next,然后选择“On a remote computer”,再选择“Linux X86/AMD64”。

2.3、Next,输入远程机子IP地址,我这里是:Remote address 192.168.1.80。Next,输入远程jprofiler5的安装目录,我这里是Installation directory /user/local/jprofiler5

2.4、Next,输入本地tomcat的启动脚本,如:M:\apache-tomcat-6.0.18\bin\startup.sh。其实jprofiler是根据startup.sh生成新的启动脚本,新的脚本加了一些参数,如图。

2.5、Next,选择JVM版,如:JVM Vender Sun,Version 1.6.0,Mode hotspot。Next,选择监控远程服务器的端口,如:JProfiler port: 8849 default。

2.6、Next,选择启动方式,选择:Don't wait, startup immediately,如图:

选择了此项,下一步会让你选择配置文件同步方式,我选择“Manual synchroization”,并且输入配置文件在远程服务器的位置,如:/usr/local/jprofiler5,当然其它目录也一样的。

2.7、Next,后,会有 summary 配置信息列出,如图:

2.8、Next,选择“No, I will start the session later”,Finish。

3、服务器端配置,从 summary 的信息可以知道,C:\Documents and Settings\chenlb\.jprofiler5\config.xml 文件copy到/usr/local/jprofiler5目录下。把windows中的jprofiler5生成的tomcat的启动脚本放到服务器的tomcat/bin目录下,如我这里,把M:\apache-tomcat-6.0.18\bin\startup_jprofiler.sh 文件copy到/usr/local/tomcat-6.0.18/bin目录下。startup_jprofiler.sh 只加了启动参数让jprofiler可以去监控tomcat,打开startup_jprofiler.sh 文件看一下,在启动tomcat前面(即:exec "$PRGDIR"/"$EXECUTABLE" run "$@" 前面加)了:

 
  1. # The following lines have been added by the  
  2. # application server integration wizard of JProfiler  
  3.   
  4. LD_LIBRARY_PATH="/user/local/jprofiler5/bin/linux-x86:$LD_LIBRARY_PATH"  
  5. export LD_LIBRARY_PATH  
  6. CATALINA_OPTS="-agentlib:jprofilerti=port=8849,nowait,id=101,config=/usr/local/jprofiler5/config.xml -Xbootclasspath/a:/user/local/jprofiler5/bin/agent.jar $CATALINA_OPTS"  
  7. export CATALINA_OPTS  
  8.   
  9. # end of modifications  

其中,id=101是config里的session的id。

4、启动tomcat,然后,非常让人失望,报ERROR: Invalid license key.

[root@master tomcat-6.0.18]# bin/startup_jprofiler5.sh Using CATALINA_BASE: /usr/local/tomcat-6.0.18 Using CATALINA_HOME: /usr/local/tomcat-6.0.18 Using CATALINA_TMPDIR: /usr/local/tomcat-6.0.18/temp Using JRE_HOME: /usr/local/jdk1.6.0_10 [root@master tomcat-6.0.18]# tail logs/catalina.out JProfiler> 32-bit library JProfiler> Don't wait for frontend to connect. JProfiler> Using config file /usr/local/jprofiler5/config.xml (id: 101) JProfiler> Listening on port: 8849. JProfiler> Instrumenting native methods. JProfiler> Native library initialized JProfiler> Using dynamic instrumentation JProfiler> Time measurement: elapsed time JProfiler> CPU profiling enabled JProfiler> ERROR: Invalid license key. [root@master tomcat-6.0.18]# 

想一想,windows下用的是破解的,破解是替换了dll文件的,而linux下没有破解,然后去官方注册一个key,可以免费用10天,注册地址:http://www.ej-technologies.com/download/jprofiler/trial.php

注册了新key后,在/usr/local/jprofiler5/config.xml文件licenseKey标签里改下。就得了。 :ok: 再启动tomcat正常了,

[root@master tomcat-6.0.18]# tail logs/catalina.out JProfiler> Using config file /usr/local/jprofiler5/config.xml (id: 101) JProfiler> Listening on port: 8849. JProfiler> Instrumenting native methods. JProfiler> Native library initialized JProfiler> Using dynamic instrumentation JProfiler> Time measurement: elapsed time JProfiler> CPU profiling enabled JProfiler> Hotspot compiler enabled JProfiler> Starting org/apache/catalina/startup/Bootstrap ... 

5、好,现在可以本地windows的jprofiler监控远程tomcat了,打开本地jprofiler,Session->start center,然后双击“Apache Tomcat 6.x on 192.168.1.80”,如图

6、开始后,可以地址栏输入http://192.168.1.80:8080/,再去看下jprofiler,恩,太可爱了,有动静,Thead views 如图:

那最下面的http-8080-1的线程就是打开上面的url后出现的。

好了,先写到这里,怎么用好就要靠自己了。


Lambda Probe监控Tomcat  

 

手上接触Tomcat的项目越来越多,虽说tomcatmanager本身带了很简单的监控服务器状态的工具,但是那个对服务器的详细状态和集群的监控来说还是太简陋了,找了下发现Lambda Probe这个工具还不错,监控得很详细。

 

安装:
1.
Lambda Probe官方网站下载最新的Lambda Probe(目前是1.7b),直接下载BINARIES解压得到probe.war

下载地址:  wget   http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip

   unzip   probe.1.7b.zip


2.  

关闭正在运行的Tomcat

 

3.       probe.war文件复制:  mv  probe.war  /usr/local/tomcat6.0.20/webapps/

 

4.       /usr/local/tomcat6.0.20/conf/tomcat-users.xml下确保添加了manager用户

如下:

vi    /usr/local/tomcat6.0.20/conf/tomcat-users.xml   增中以下内容:

<role rolename="manager"/>
<user username="用户名" password="密码" roles="manager"/>

 

5.编辑/etc/profile.d/java.sh,增加JAVA_OPTS环境参数,这个参数是用来载入-Dcom.sun.management.jmxremote,以让Lambda Probe取得服务器环境状态。
        
JAVA_OPTS=-Dcom.sun.management.jmxremote
        
export JAVA_OPTS

以上内容放到Java环境变量中

 

 

 

6. 启动Tomcat,使用管理账户登录:  http://IP:8080/probe/   接着输入刚才设置的用户名和密码

 

 

7.下载messages_zh_CN.properties 汉化文件 ( 关闭Tomcat )

wget   http://www.deepseabug.cn/blog/wp-content/uploads/file/20090416/messages_zh_CN.zip 解压并且复制          

mv  messages_zh_CN.properties   /usr/local/tomcat6.0.20/webapps/probe/WEB-INF/

 

8. 启动Tomcat,使用管理账户登录http://IP:8080/probe/

  看到中文,说明汉化成功!

 Lambda Probe监控Tomcat - ^o^星禾じ☆v - 环境不景气,自己要争气!

 
 
 
分享到:
评论

相关推荐

    JavaMelody应用监控使用指南

    JavaMelody是一款强大的Java应用程序和应用服务器监控工具,它提供了实时的数据分析,帮助开发者和运维人员了解系统的健康状况和性能指标。通过图表形式展示内存使用、垃圾回收、Session管理、JDBC连接、SQL查询、...

    JavaMelody系统监控工具 v1.9.8.zip

    JavaMelody是一款强大的开源系统监控工具,主要用于监测Java Web应用程序的性能和运行状态。这个版本是v1.9.8,包含源码和核心组件,适合开发者进行深度学习和定制。下面将详细介绍JavaMelody的功能、工作原理以及...

    JavaMelody系统监控工具 v2.1.0.zip

    JavaMelody是一款强大的系统监控工具,专为Java应用程序设计,能够实时监测应用的性能和运行状态。这个v2.1.0版本的压缩包包含了JavaMelody的核心组件,以及相关的文档资源,对于开发者来说,是一个非常实用的工具,...

    监控JAVA应用的好工具javamelody

    JavaMelody是一款强大的Java应用程序监控工具,它可以帮助开发者和运维人员实时监测Java应用程序的性能和健康状况。这个工具的核心组件包括javamelody.jar和jrobin-1.5.9.1.jar,这两个JAR文件在Java应用的监控中...

    系统监控工具 JavaMelody.zip

    JavaMelody是一款强大的系统监控工具,专为Java和Java EE应用程序设计。它提供了一种简单易用的方式来实时监控应用程序的性能和健康状况,帮助开发者和运维人员及时发现并解决潜在问题。这款工具的核心优势在于其轻...

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    javamelody性能监控jar和war

    总的来说,JavaMelody是一个强大且易于使用的Java Web应用性能监控工具,能够为开发者和运维团队提供宝贵的洞察力,确保应用的稳定性和高效运行。通过深入理解和有效利用JavaMelody,我们可以及时发现和解决潜在的...

    JavaMelody开源系统性能监控

    JavaMelody是一款强大的开源系统性能监控工具,专为Java应用程序设计。它允许开发者和运维人员实时监测应用的运行状态,从而有效地识别并解决性能问题。JavaMelody通过简单的集成方式,提供了一整套全面的监控指标,...

    javamelody监控

    JavaMelody是一款强大的开源监控工具,专为Java Web应用程序设计,可以帮助开发者和运维人员实时监控应用的性能和健康状况。这个工具集成了多种关键的监控指标,如请求处理时间、内存使用、数据库查询性能、线程状态...

    Javamelody监控

    JavaMelody是一款强大的Java应用程序性能监控工具,专为开发者和运维人员设计,用于实时监控Web应用的性能和健康状况。它能够集成到Spring、Struts、JSF等主流的Java Web框架中,提供包括请求时间、内存使用、数据库...

    javamelody程序运行监控报表

    除了基本的监控功能外,JavaMelody还支持多种高级配置选项,如自定义监控指标、设置阈值报警等。用户可以根据实际需求调整这些配置,以满足更为复杂的监控场景。 1. **自定义监控指标**:用户可以通过配置文件或者...

    javamelody-javamelody-core-1.67.0.zip

    JavaMelody是一款强大的Java应用程序性能监控工具,尤其适用于与Spring框架集成的应用。它的核心组件是`javamelody-core`,正如我们所见的文件名"javamelody-javamelody-core-1.67.0.zip"所示。这个版本1.67.0包含了...

    javamelody资料包

    JavaMelody是一款强大的Java应用程序性能监控工具,它可以帮助开发者实时监测和分析应用的运行状态,包括请求量、响应时间、内存使用、线程状态、数据库查询等关键指标。本资料包包含了搭建JavaMelody监控所需的全部...

    JavaMelody javamelody-core-1.52.0.jar jrobin-1.5.9.jar

    JavaMelody是一款强大的Java应用程序性能监控工具,它可以帮助开发者和运维人员实时监控应用的运行状态,包括请求量、响应时间、内存使用、数据库查询效率等关键指标。在本案例中,我们关注的是两个核心的JAR文件:`...

    jave melody监控工具简介

    综上所述,JavaMelody作为一款优秀的Java应用监控工具,不仅提供了丰富的性能监控功能,还具备便捷的安装配置流程,非常适合在各种Java或Java EE项目中部署使用。通过对JavaMelody的深入了解和合理运用,可以显著...

    javamelody与spring集成测试入门例子

    JavaMelody是一款开源的性能监控工具,主要用于实时监控Java Web应用程序的运行状态,包括CPU使用率、内存使用、线程信息、SQL查询、HTTP请求、会话数据等关键指标。在Spring框架中集成JavaMelody,可以让我们在开发...

    javamelody-1.43.0

    JavaMelody是一个开源的性能监控工具,主要用于监测Java Web应用程序的运行情况。版本1.43.0是这个工具的一个特定发行版,包含了对系统性能和应用健康状况的全面跟踪功能。下面将详细介绍JavaMelody及其1.43.0版本中...

    JavaMelody开源系统性能监测

    JavaMelody是一款开源的系统性能监控工具,专为Java Web应用程序设计。它通过简单的配置,可以在不影响应用正常运行的情况下,收集并展示应用的运行时数据,帮助开发者和运维人员了解系统的健康状况,及时发现和解决...

Global site tag (gtag.js) - Google Analytics