JavaMelody监控tomcat部署

来源:互联网 发布:seo外链接分享 编辑:程序博客网 时间:2024/05/18 18:55

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

1.安装准备

  (1)javamelody.war:这些文件都在google上面可以下载,但是考虑到一些没有FQ的朋友,这里保存在百度云上了。

  javamelody.war 这是用于部署使用的应用包

  javamelody.zip 这里面包含了userGuide使用手册以及源码
  (2)需要的两个jar包,位于zip包里面。

2.jar包

在javamelody.zip中有两个jar包,一个是javamelody.jar,另一个是jrobin-x.jar。拷贝这两个jar包到webapp中对应war包的WEB-INF/lib目录下。或者使用Maven,添加javamelody-core 依赖文件pom.xml。

[root@db1 lib]# pwd

/usr/local/tomcat/webapps/ROOT/WEB-INF/lib
[root@db1 lib]# ll javamelody.jar jrobin-1.5.9.1.jar
-rw-r--r-- 1 root root 1104602 8月  22 17:12 javamelody.jar
-rw-r--r-- 1 root root  238016 8月  22 17:12 jrobin-1.5.9.1

下载地址:https://github.com/javamelody/javamelody/releases
3.war包
将javamelody.war包拷贝到webapps下

[root@db1 webapps]# pwd
/usr/local/tomcat/webapps
[root@db1 webapps]# ll
总用量 4104
-rw-r--r--  1 root root 4196809 8月  22 17:12 javamelody.war
drwxr-xr-x 23 root root    4096 8月  22 17:06 ROOT
[root@db1 webapps]#

4.web.xml文件  

如果你的servletAPI是3.0的,想tomcat7 glassfish v3 jboss6等等,那么就需要配置xml了。不然的话,需要在应用war包的web.xml中添加如下的filter

[root@db1 lib]# vi /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml

<!-- ###############javamelody begin#################### -->
        <filter>
                <filter-name>javamelody</filter-name>
                <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
                <async-supported>true</async-supported>
        </filter>
        <filter-mapping>
                <filter-name>javamelody</filter-name>
                <url-pattern>/*</url-pattern>
                <dispatcher>REQUEST</dispatcher>
                <dispatcher>ASYNC</dispatcher>
        </filter-mapping>
        <listener>
                <listener-class>net.bull.javamelody.SessionListener</listener-class>
        </listener>
        <!-- ###############javamelody end#################### -->

如果是servlet3.0,还需要添加<async-supported>true</async-supported> 来支持异步请求

5.启动tomcat,

[root@db1 webapps]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.7.0_79/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar

6.打开访问地址,添加监控

http://host:port/javamelody






7.JavaMelody初探

由于我的这个测试使用的war包程序只有一个简单的页面,因此只能测试http请求的连接数了,手动刷新页面就会发送http请求,可以再下面的列表中看到点击的次数。以及请求的类型。

再次启动后发现数据都还在,一定是存储在了本地的某个地方。
查阅资料发现缓存文件都存放在tomcat下的temp中了,目录是tomcat/temp/javamelody/应用名字_主机名字
[root@db1 temp]# pwd
/usr/local/tomcat/temp
[root@db1 temp]# ll javamelody/
总用量 12
drwxr-xr-x 2 root root 4096 8月  23 08:53 192.168.1.3
-rw-r--r-- 1 root root  105 8月  23 08:53 applications.properties
drwxr-xr-x 2 root root 4096 8月  23 08:50 _db1

[root@db1 javamelody]# cd 192.168.1.3/
[root@db1 192.168.1.3]# ll
总用量 936
-rw-r--r-- 1 root root 34272 8月  23 08:56 activeConnections.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 activeThreads.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 cpu.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 fileDescriptors.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 Free_disk_space.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 gc.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 httpHitsRate.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:53 httpMeanTimes.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 httpSessionsMeanAge.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 httpSessions.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:53 httpSystemErrors.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 loadedClassesCount.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 sqlHitsRate.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:53 sqlMeanTimes.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:53 sqlSystemErrors.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 systemLoad.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 threadCount.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 tomcatBusyThreads.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 tomcatBytesReceived.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 tomcatBytesSent.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 transactionsRate.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 usedConnections.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 usedMemory.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 usedNonHeapMemory.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 usedPhysicalMemorySize.rrd
-rw-r--r-- 1 root root 34272 8月  23 08:56 usedSwapSpaceSize.rrd
虽然都是RRD的文件,无法直接读取,但是从名字就可以看到它都记录什么数据。比如sql 线程数,内存等等。



原创粉丝点击