免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
使用 Zabbix 監(jiān)控 Tomcat(包含JVM監(jiān)控)

1.前言:

我們的監(jiān)控系統(tǒng)是zabbix,最近剛做完jvm還有tomcat的監(jiān)控,需要吐槽以下內(nèi)容:

  • zabbix官方提供的jvm和tomcat監(jiān)控模版,存在item書(shū)寫(xiě)格式的坑,導(dǎo)致很多內(nèi)容無(wú)法獲取到監(jiān)控。
  • 網(wǎng)友寫(xiě)的zabbix監(jiān)控java文章,99%就只有環(huán)境的搭建,沒(méi)有zabbix item鍵值,所以環(huán)境監(jiān)控上了,item鍵值不知道怎么寫(xiě)。

本文監(jiān)控jvm內(nèi)容如下:

內(nèi)存使用狀態(tài):堆內(nèi)存(Heap memory)和非堆內(nèi)存(No Heap memory),包括已用值、最大值、已提交;堆內(nèi)存內(nèi)存池:新生代(eden space),survivor space,老年代(old gen)的內(nèi)存使用狀態(tài);非堆內(nèi)存內(nèi)存池:代碼緩存(Code cache),元空間(meta space),壓縮類(lèi)空間(compressed class space);類(lèi)加載:加載總數(shù),已加載,已卸載。Java線(xiàn)程:總開(kāi)啟線(xiàn)程,活動(dòng)線(xiàn)程,線(xiàn)程峰值。

本文監(jiān)控tomcat內(nèi)容如下:

	Tomcat請(qǐng)求數(shù):包括每秒請(qǐng)求數(shù),每秒出錯(cuò)數(shù);Tomcat網(wǎng)絡(luò)流量統(tǒng)計(jì):包括進(jìn)流量統(tǒng)計(jì),出流量統(tǒng)計(jì);Tomcat線(xiàn)程:包括最大線(xiàn)程數(shù),當(dāng)前線(xiàn)程數(shù),當(dāng)前繁忙線(xiàn)程數(shù)。

我沒(méi)有在zabbix中添加垃圾回收(gc)的監(jiān)控,而是在catalina配置里面添加gc日輸入來(lái)給開(kāi)發(fā)進(jìn)行分析,設(shè)置方式如下。

CATALINA_OPTS=”-XX:ParallelGCThreads=4 -XX: PrintGCDetails -Xloggc:日志存放路徑”

監(jiān)控效果如下:

2.監(jiān)控環(huán)境搭建

環(huán)境介紹:

[root@tomcat-01 ~]# /usr/local/tomcat/bin/version.shServer version: Apache Tomcat/8.0.23Server built: May 19 2015 14:58:38 UTCServer number: 8.0.23.0OS Name: LinuxOS Version: 2.6.32-573.22.1.el6.x86_64Architecture: amd64JVM Version: 1.8.0_65-b17JVM Vendor: Oracle Corporation

2.1.Server端配置

1、 Zabbix server端安裝java jdk環(huán)境并開(kāi)啟javaGateway支持java監(jiān)控。

javaGateway 啟用方式如下:

Zabbix通過(guò)rpm包安裝:只需要安裝zabbix-java-gateway包即可。

Zabbix通過(guò)編譯安裝:在編譯時(shí)需要加上—enable-java以支持jmx監(jiān)控,如果之前沒(méi)加需要重新編譯。

2、修改zabbix-java-gateway配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_java_gateway.confLISTEN_IP='192.168.10.3'LISTEN_PORT=10052PID_FILE='/var/run/zabbix/zabbix_java.pid'START_POLLERS=5修改zabbix-server配置文件[root@zabbix ~]# vim /etc/zabbix/zabbix_server.confJavaGateway=192.168.10.3JavaGatewayPort=10052StartJavaPollers=5啟動(dòng)zabbix-java-gateway服務(wù)[root@zabbix ~]# /etc/init.d/zabbix-java-gateway start

2.2.Tomcat服務(wù)器配置

1、下載catalina-jmx-remote.jar包,到tomcat安裝目錄下的lib目錄

wget -O /usr/local/tomcat/lib/catalina-jmx-remote.jar http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/extras/catalina-jmx-remote.jar

2、修改catalina.sh添加如下內(nèi)容

CATALINA_OPTS='$CATALINA_OPTS -Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=8090-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false'

3、重啟tomcat與監(jiān)控測(cè)試

(1)下載cmdline-jmxclient-0.10.3.jar文件,下載地址http://crawler./cmdline-jmxclient/downloads.html

(2)本地執(zhí)行如下命令查看tomcat的堆內(nèi)存信息

[root@tomcat-01 ~]# java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage11/04/2016 15:23:16 0800 org.archive.jmx.Client HeapMemoryUsage:committed: 2146959360init: 2147483648max: 2146959360used: 407611808

3.監(jiān)控?cái)?shù)據(jù)采集

3.1.堆內(nèi)存

Tomcat本地查看堆內(nèi)存信息:

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory HeapMemoryUsage11/04/2016 15:36:58  0800 org.archive.jmx.Client HeapMemoryUsage:committed: 2145910784init: 2147483648max: 2145910784used: 741540536

zabbix監(jiān)控堆內(nèi)存鍵值:

堆內(nèi)存最大值:jmx['java.lang:type=Memory','HeapMemoryUsage.max']已用堆內(nèi)存:jmx['java.lang:type=Memory','HeapMemoryUsage.used']已提交堆內(nèi)存:jmx['java.lang:type=Memory','HeapMemoryUsage.committed']

一個(gè)完整的zabbix item填寫(xiě)方式如下,不同內(nèi)容填寫(xiě)不同的鍵值即可:

3.2.內(nèi)存池eden space:

Tomcat本地查看eden space:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=PS\ Eden\ Space Usage

zabbix監(jiān)控eden區(qū)域鍵值:

最大空間:jmx['java.lang:type=MemoryPool,name=PS Eden Space',Usage.max]已用空間:jmx['java.lang:type=MemoryPool,name=PS Eden Space',Usage.used]提交空間:jmx['java.lang:type=MemoryPool,name=PS Eden Space',Usage.committed]

3.3.內(nèi)存池survivor space:

Tomcat本地查看Survivor space區(qū)域:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=PS\ Survivor\ Space Usage

zabbix監(jiān)控Survivor 鍵值:

jmx['java.lang:type=MemoryPool,name=PS Survivor Space',Usage.committed]jmx['java.lang:type=MemoryPool,name=PS Survivor Space',Usage.max]jmx['java.lang:type=MemoryPool,name=PS Survivor Space',Usage.used]

3.4.內(nèi)存池old gen:

Tomcat本地查看old gen區(qū)域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Old\ Gen,type=MemoryPool Usage

zabbix監(jiān)控old gen鍵值:

jmx['java.lang:type=MemoryPool,name=PS Old Gen',Usage.committed]jmx['java.lang:type=MemoryPool,name=PS Old Gen',Usage.max]jmx['java.lang:type=MemoryPool,name=PS Old Gen',Usage.used]

3.5.非堆內(nèi)存:

Tomcat 本地查看非堆內(nèi)存使用:

java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Memory NonHeapMemoryUsag1zabbix監(jiān)控非堆內(nèi)存使用1jmx['java.lang:type=Memory','NonHeapMemoryUsag.committed']jmx['java.lang:type=Memory','NonHeapMemoryUsag.used']

3.6.內(nèi)存池meta space:

Tomcat 本地查看meta space區(qū)域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Metaspace Usage

zabbix監(jiān)控mete space區(qū)域鍵值

jmx['java.lang:type=MemoryPool,name=Metaspace',Usage.committed]jmx['java.lang:type=MemoryPool,name=Metaspace',Usage.used]

3.7.內(nèi)存池code cache:

Tomcat 本地查看code cache區(qū)域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Code\ Cache Usage

zabbix監(jiān)控code cache區(qū)域使用:

jmx['java.lang:type=MemoryPool,name=Code Cache',Usage.committed]jmx['java.lang:type=MemoryPool,name=Code Cache',Usage.max]jmx['java.lang:type=MemoryPool,name=Code Cache',Usage.used]

3.8.內(nèi)存池compressed class space:

Tomcat 本地查看compressed class space區(qū)域使用:

java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:type=MemoryPool,name=Compressed\ Class\ Space Usage

zabbix監(jiān)控 compressed class space區(qū)域使用鍵值:

jmx['java.lang:type=MemoryPool,name=Compressed Class Space',Usage.committed]jmx['java.lang:type=MemoryPool,name=Compressed Class Space',Usage.max]jmx['java.lang:type=MemoryPool,name=Compressed Class Space',Usage.used]

3.9.類(lèi)加載:

Tomcat本地查看類(lèi)加載信息:

加載總數(shù): java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading TotalLoadedClassCoun已加載: java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading LoadedClassCount已卸載: java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=ClassLoading UnloadedClassCount

Zabbix監(jiān)控類(lèi)加載鍵值:

加載總數(shù): jmx['java.lang:type=ClassLoading','TotalLoadedClassCount']已加載: jmx['java.lang:type=ClassLoading','LoadedClassCount']已卸載: jmx['java.lang:type=ClassLoading','UnloadedClassCount']

3.10.java線(xiàn)程:

tomcat本地查看java線(xiàn)程:

總開(kāi)啟線(xiàn)程: java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading TotalStartedThreadCount活動(dòng)線(xiàn)程: java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount線(xiàn)程峰值: java -jar cmdline-jmxclient-0.10.3.jar controlRole:tomcat 127.0.0.1:8090 java.lang:type=Threading PeakThreadCount

Zabbix監(jiān)控java線(xiàn)程鍵值:

總開(kāi)啟線(xiàn)程: jmx['java.lang:type=Threading','TotalStartedThreadCount']活動(dòng)線(xiàn)程: jmx['java.lang:type=Threading','ThreadCount']線(xiàn)程峰值: jmx['java.lang:type=Threading','PeakThreadCount']

3.11.tomcat線(xiàn)程:

本地查看tomcat線(xiàn)程信息:

最大線(xiàn)程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\'http-nio-8080\',type=ThreadPool maxThreads當(dāng)前線(xiàn)程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\'http-nio-8080\',type=ThreadPool currentThreadCount繁忙線(xiàn)程:java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\'http-nio-8080\',type=ThreadPool currentThreadsBusy

Zabbix監(jiān)控tomcat線(xiàn)程鍵值:

最大線(xiàn)程:jmx['Catalina:type=ThreadPool,name=\'http-nio-8080\'',maxThreads]當(dāng)前線(xiàn)程:jmx['Catalina:type=ThreadPool,name=\'http-nio-8080\'',currentThreadCount]繁忙線(xiàn)程 jmx['Catalina:type=ThreadPool,name=\'http-nio-8080\'',currentThreadsBusy]

3.12.網(wǎng)絡(luò)流量:

Tomcat本地查看接收的字節(jié):

接收的字節(jié):java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\'http-nio-8080\',type=GlobalRequestProcessor bytesReceived發(fā)送的字節(jié):java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 Catalina:name=\'http-nio-8080\',type=GlobalRequestProcessor bytesSent

Zabbix監(jiān)控tomcat接受字節(jié)鍵值:

接收的字節(jié):jmx['Catalina:type=GlobalRequestProcessor,name=\'http-nio-8080\'',bytesReceived]發(fā)送的字節(jié):jmx['Catalina:type=GlobalRequestProcessor,name=\'http-nio-8080\'',bytesSent]

3.13.tomcat請(qǐng)求,出錯(cuò)請(qǐng)求:

tomcat本地查看tomcat請(qǐng)求數(shù):

tomcat請(qǐng)求數(shù): java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\'http-nio-8080\',type=GlobalRequestProcessor requestCounttomcat出錯(cuò)請(qǐng)求: java -jar cmdline-jmxclient-0.10.3.jar - 192.168.10.46:8090 Catalina:name=\'http-nio-8080\',type=GlobalRequestProcessor errorCount

zabbix監(jiān)控tomcat請(qǐng)求數(shù):

tomcat請(qǐng)求數(shù): jmx['Catalina:type=GlobalRequestProcessor,name=\'http-nio-8080\'',requestCount]tomcat出錯(cuò)請(qǐng)求:jmx['Catalina:type=GlobalRequestProcessor,name=\'http-nio-8080\'',errorCount]

4.問(wèn)題的解答

最近有網(wǎng)友聯(lián)系我說(shuō),看著我的博文搭建完了環(huán)境,獲取不到數(shù)據(jù),我?guī)椭挪榱艘幌?,找到了?wèn)題所在,特此記錄。

網(wǎng)友的報(bào)錯(cuò)如下:

# java -jar /root/cmdline-jmxclient-0.10.3.jar - 127.0.0.1:9080 java.lang:type=MemoryPool,name=PS\ Eden\ Space Usag11/11/2016 10:03:37 0800org.archive.jmx.Client java.lang:name=PS Eden Space,type=MemoryPool is not a registered bean

4.1.解決思路

  • 如果你使用命令行監(jiān)控獲取不到數(shù)據(jù),那么就先使用jconsole看看有沒(méi)有數(shù)據(jù),
  • 如果jconsole有數(shù)據(jù),那么就往下看,反之檢查你的環(huán)境。
  • 如果jconsole有數(shù)據(jù),但是命令行沒(méi)有數(shù)據(jù),那么就是Mbean的Object Name或者屬性有問(wèn)題,網(wǎng)友都是復(fù)制我的,但是自己本地環(huán)境和我的環(huán)境不一樣所以導(dǎo)致獲取不到數(shù)據(jù),查詢(xún)自己的本地Mbean方法有兩種,分別是圖形和命令行,網(wǎng)友的報(bào)錯(cuò)說(shuō)事自己的Eden Space空間有問(wèn)題,那么我就貼出來(lái)查看本地內(nèi)存池的Object Name和屬性的方法。

(1)通過(guò)jconsole查看:

(2)通過(guò)命令行查看:直接使用java -jar cmdline-jmxclient-0.10.3.jar – 127.0.0.1:8090命令可以獲取所有的Mbean信息,輸出太多這里就不貼輸出結(jié)果了。我通過(guò)grep命令獲取所有內(nèi)存池的監(jiān)控信息方式如下。

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 | grep MemoryPooljava.lang:name=Compressed Class Space,type=MemoryPooljava.lang:name=Metaspace,type=MemoryPooljava.lang:name=PS Old Gen,type=MemoryPooljava.lang:name=PS Eden Space,type=MemoryPooljava.lang:name=PS Survivor Space,type=MemoryPooljava.lang:name=Code Cache,type=MemoryPool

然后我要獲取Eden Space的所有屬性信息方式如下:(一些特殊 字符需要轉(zhuǎn)義)

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPoolAttributes:Usage: Usage (type=javax.management.openmbean.CompositeData)PeakUsage: PeakUsage (type=javax.management.openmbean.CompositeData)MemoryManagerNames: MemoryManagerNames (type=[Ljava.lang.String;)UsageThreshold: UsageThreshold (type=long)UsageThresholdExceeded: UsageThresholdExceeded (type=boolean)UsageThresholdCount: UsageThresholdCount (type=long)UsageThresholdSupported: UsageThresholdSupported (type=boolean)CollectionUsageThreshold: CollectionUsageThreshold (type=long)CollectionUsageThresholdExceeded: CollectionUsageThresholdExceeded (type=boolean)CollectionUsageThresholdCount: CollectionUsageThresholdCount (type=long)CollectionUsage: CollectionUsage (type=javax.management.openmbean.CompositeData)CollectionUsageThresholdSupported: CollectionUsageThresholdSupported (type=boolean)Valid: Valid (type=boolean)Name: Name (type=java.lang.String)Type: Type (type=java.lang.String)ObjectName: ObjectName (type=javax.management.ObjectName)Operations:resetPeakUsage: resetPeakUsageParameters 0, return type=void

那么我們?cè)诓榭碋den Space空間的使用信息。就看到已經(jīng)出來(lái)數(shù)據(jù)了

[root@tomcat-01 ~]# java -jar cmdline-jmxclient-0.10.3.jar - 127.0.0.1:8090 java.lang:name=PS\ Eden\ Space,type=MemoryPool Usage12/03/2016 08:33:58  0800 org.archive.jmx.Client Usage:committed: 712507392init: 537395200max: 712507392used: 396006304
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
zabbix 監(jiān)控服務(wù)系列之--------使用JMX監(jiān)控tomcat
java.lang.IllegalArgumentException: File users.csv must exist and be readable
jdk1.4升級(jí)到JDK1.5的問(wèn)題
Tomcat 7 啟動(dòng)時(shí)出現(xiàn) java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
java.lang.NoClassDefFoundError:javax/el/ExpressionFactory
啟動(dòng)Tomcat時(shí)報(bào)監(jiān)聽(tīng)器類(lèi)(實(shí)現(xiàn)這個(gè) ServletContextListener接口)引起的java.lang.ClassNotFoundException錯(cuò)誤
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服