玩轉Zabbix 監控 Tomcat Jvm


系統:Centos6.5 64位java

zabbix:3.0.4linux

jdk:jdk1.7.0_80tomcat


java工具備不少,關於jvm監控的工具主要有以下幾個:bash

 + jstatjvm

 + jmaptcp

 + jstackide

 

jmap最主要的危險操做是下面這三種: 工具

1. jmap -dump spa

這個命令執行,JVM會將整個heap的信息dump寫入到一個文件,heap若是比較大的話,就會致使這個過程比較耗時,而且執行的過程當中爲了保證dump的信息是可靠的,因此會暫停應用。.net

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

[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服務:

/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添加自定義模板操做:

一、自定義版本:

wKioL1i_er-g0RXFAABx_biRlU4836.png


二、添加應用集:

wKiom1i_euuxkkGyAAA7Mji2dbg338.png


三、添加監控項:

wKiom1i_exWgnZyeAAB9l9HXVLg809.png


四、這塊主要添加以下幾項:

wKiom1i_e1WQ6bWFAAFQphVH2Hg990.png


五、添加圖形:

wKioL1i_e4vxxz3UAAERvdZnvzg952.png


六、查看最新數據,是否獲取到:

wKioL1i_e9PAb6bLAAEHijDZkzo098.png


七、查看圖形監控:

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

相關文章
相關標籤/搜索