玩转Zabbix 监控 Tomcat Jvm

系统: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的有效配置行如下:

[[email protected] ~]# 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/

重启zabbix agentd服务:

/etc/init.d/zabbix_agentd restart

tomcat_jvm脚本如下:

#!/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、自定义版本:

2、添加应用集:

3、添加监控项:

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

5、添加图形:

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

7、查看图形监控:

参考博客:

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

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

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

时间: 2024-10-13 18:32:33

玩转Zabbix 监控 Tomcat Jvm的相关文章

zabbix 监控 tomcat/jvm性能

http://www.ttlsa.com/web/install-tomcat7-on-linux/ http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ 配置tomcat jmx vim /usr/local/tomcat7/bin/catalina.sh # ----- Execute The Requested Command --------- 在次行下面加上 export CATALINA_OPTS="$CATALINA_

Zabbix 监控 tomcat 连接池(报错org.archive.jmx.Client ...is not a registered bean)

Zabbix 监控 tomcat 连接池 一.     前言 领导提出需求,需要监控tomcat的连接池,之前已经通过zabbix监控了jvm(关于jvm监控这部分,后续补上).在网上找了很多教程,经历了很多坑,不过还是要感谢那些帮助过我的人,踩着坑搞出来,也是记忆犹新呀. 二.     基础环境 操作系统:Centos 6.8 Jdk:1.8.0_77(jdk最好是1.7及以上) Tomcat:7.0.69 Zabbix:3.0.3 三.     环境部署 (一)         Zabbix

Zabbix 监控Tomcat

Zabbix监控Tomcat 一.环境 两台服务器,一台是Zabbix_java_Server ,另一台Tomcat-Server 需要用到的文件:catalina-jmx-remote.jar cmdline-jmxclient-0.10.3.jar 二.Tomcat-Server被控端配置 # cd /usr/java/apache-tomcat-8.0.30/bin # vim catalina.sh 添加如下内容: CATALINA_OPTS="-Dcom.sun.management.

zabbix监控tomcat(2)

zabbix监控tomcat 1.编译zabbix的时候需要添加参数--enable-java 关于如何安装zabbix,可以参考上一篇文章http://blog.unix178.com/ 备份zabbix_server.conf和zabbix_agentd.conf文件,重新编译安装zabbix [[email protected] zabbix-2.2.0]# ./configure --enable-server --enable-agent     --with-mysql --enab

Zabbix监控Tomcat及Nginx

注:本篇博文是基于部署zabbix监控服务器的环境进行的.这里将开启一台client服务器(被监控端)用于测试. 博文大纲:一.监控Tomcat二.监控Nginx服务器 一.监控Tomcat 监控Tomcat需要用到zabbix_java_gateway这个组件(在zabbix2.0引入的功能),顾名思义就是:Java网关,类似于agentd,但是只用于Java方面.需要注意的是,它只能主动去获取数据,而不能被动获取数据.它的数据最终会提交到server端或proxy. 如果需要开启监控Tomc

Zabbix 监控tomcat web

个人博客:https://blog.sharedata.info/ 在zabbix监控web,web容器是tomcat 默认的端口是8080导致web监控失败!不能找到主机因此在修改tomcat 端口为80此时需要使用root用户启动才能去监听80端口因此为了方面80端口访问,需要通过防火墙转发来访问80端口转发到8080解决方案:ptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

prometheus+grafana+docker 监控tomcat jvm

说明:基于环境mesos+marathon+docker+prometheus+grafana监控tomcat一.配置环境(1)dockerfile from tomcat COPY tomcat-users.xml /usr/local/tomcat/conf/ COPY server.xml /usr/local/tomcat/conf/ COPY context.xml /usr/local/tomcat/webapps/manager/META-INF/ COPY catalina.sh

Zabbix监控Tomcat状态

安装Tomcat 确定已经安装好Tomcat Java支持 编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装, # ./configure --prefix=/usr/local/zabbix-3.0.0/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libc 启动Tomcat # /usr/local/tom

zabbix监控tomcat

一.zabbix server 方面 1.zabbix服务端编译的时候需要加上参数--enable-java 附上我的zabbix server 编译参数 ./configure --prefix=/usr/local/zabbix  --enable-server  --enable-agent  --enable-proxy  --with-mysql  --with-net-snmp  --with-libcurl  --enable-java 2.修改zabbix server java