系统:Centos6.5 64位

zabbix:3.0.4

jdk:jdk1.7.0_80


java工具有很多,关于jvm监控的工具主要有如下几个:

 + jstat

 + jmap

 + jstack

 

jmap最主要的危险操作是下面这三种: 

1. jmap -dump 

这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用。

2. jmap -permstat 

这个命令执行,JVM会去统计perm区的状况,这整个过程也会比较的耗时,并且同样也会暂停应用。

3. jmap -histo:live 

这个命令执行,JVM会先触发gc,然后再统计信息。

上面的这三个操作都将对应用的执行产生影响,所以建议如果不是很有必要的话,不要去执行。

所以,从上面三点来看,jmap命令对jvm状态影响还是比较大的,而且执行jmap --heap的时间也比较长,效率较低,予以排除。


jstack:用的最多的是程序死了,jstack pid > file。

如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的Java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。


这块脚本选择了jstat写脚本抓取一些常见的,可能并不全,如果参考着需要什么自己在脚本里面继续完善。


zabbix_agentd.conf的有效配置行如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@iZuf62db4rp7b8b3cxq82fZ ~] # cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v '^#' | grep -v '^$'
LogFile= /tmp/zabbix_agentd .log
EnableRemoteCommands=1
Server=10.18.3.193
ListenPort=10050
ServerActive=10.18.3.193
Hostname=10.18.1.68
AllowRoot=0
User=ody
Include= /usr/local/zabbix/etc/zabbix_agentd .conf.d/*.conf
UnsafeUserParameters=1
UserParameter=tomcat_port, /usr/local/zabbix/share/zabbix/alertscripts/tomcat_port .sh $1
UserParameter=tcp[*], /usr/local/zabbix/share/zabbix/alertscripts/tcp_connection .sh $1
#主要添加下面一行
UserParameter=jvm[*], /usr/local/zabbix/share/zabbix/alertscripts/tomcat_jvm .sh $1
UserParameter=mem_status[*], /usr/local/zabbix/share/zabbix/alertscripts/memory_status .sh $1


将脚本scp或者其他手段到远程agent端脚本目录,这边zabbix安装在/usr/local/zabbix,脚本目录:/usr/local/zabbix/share/zabbix/alertscripts/


wKioL1i_eomiO9YRAAAcpeKxtNw250.png


重启zabbix agentd服务:

1
/etc/init .d /zabbix_agentd  restart


tomcat_jvm脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
source  /etc/profile
jps=` which  jps`
jstat=` which  jstat`
function  yNGCMN {
${jstat} -gccapacity `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $1/1024/1024}'
}
function  yNGCMX {
${jstat} ${jstat} -gccapacity `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $2/1024/1024}'
}
function  yNGC {
${jstat} -gccapacity `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $3/1024/1024}'
}
function  yEC {
${jstat} -gcnew `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $8/1024/1024}'
}
function  yEU {
${jstat} -gcnew `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $9/1024/1024}'
}
function  yEden {
${jstat} -gcnewcapacity `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $8/1024/1024}'
}
function  ooc {
${jstat} -gcold `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $3/1024/1024}'
}
function  oou {
${jstat} -gcold `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $4/1024/1024}'
}
function  oogc {
${jstat} -gccapacity `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $9/1024/1024}'
}
function  ogct {
${jstat} -gcutil `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $10}'
}
function  TT {
${jstat} -gcnew `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $5}'
}
function  MTT {
${jstat} -gcnew `${jps} |  grep  Bootstrap |  awk  '{print $1}' `| tail  -1| awk  '{print $6}'
}
$1


登录zabbix添加自定义模板操作:

1、自定义版本:

wKioL1i_er-g0RXFAABx_biRlU4836.png


2、添加应用集:

wKiom1i_euuxkkGyAAA7Mji2dbg338.png


3、添加监控项:

wKiom1i_exWgnZyeAAB9l9HXVLg809.png


4、这块主要添加如下几项:

wKiom1i_e1WQ6bWFAAFQphVH2Hg990.png


5、添加图形:

wKioL1i_e4vxxz3UAAERvdZnvzg952.png


6、查看最新数据,是否获取到:

wKioL1i_e9PAb6bLAAEHijDZkzo098.png


7、查看图形监控:

wKioL1i_fACARVbVAAGBbyXxoJg487.png



参考博客:

http://www.linuxidc.com/Linux/2012-05/59532.htm

http://xianglinhu.blog.51cto.com/5787032/1757930

http://blog.csdn.net/truelove12358/article/details/49491335