JavaMelody监控tomcat部署
JavaMelody能够在运行环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
JavaMelody安装
1.安装准备
(1)javamelody.war:这些文件都在google上面可以下载,但是考虑到一些没有FQ的朋友,这里保存在百度云上了。
javamelody.war 这是用于部署使用的应用包
2.jar包
在javamelody.zip中有两个jar包,一个是javamelody.jar,另一个是jrobin-x.jar。拷贝这两个jar包到webapp中对应war包的WEB-INF/lib目录下。或者使用Maven,添加javamelody-core 依赖文件pom.xml。
[[email protected] lib]# pwd
/usr/local/tomcat/webapps/ROOT/WEB-INF/lib
[[email protected] 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下
[[email protected] webapps]# pwd
/usr/local/tomcat/webapps
[[email protected] 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
[[email protected] webapps]#
4.web.xml文件
如果你的servletAPI是3.0的,想tomcat7 glassfish v3 jboss6等等,那么就需要配置xml了。不然的话,需要在应用war包的web.xml中添加如下的filter
[[email protected] 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,
[[email protected] 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/应用名字_主机名字
[[email protected] temp]# pwd
/usr/local/tomcat/temp
[[email protected] 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
[[email protected] javamelody]# cd 192.168.1.3/
[[email protected] 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 线程数,内存等等。