基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器

概述

zabbix監控tomcat只有一個zabbix-java-gateway,可以部署在zabbix-sever端也可以部署在其他機器上,需要和zabbix-server網絡可達。Zabbix-Javagateway就相當於一個代理,它負責收集客戶端tomcat數據,zabbix-server只要向zabbix-java-gateway取數據添加到數據庫即可。但zabbix官方提供的jvm和tomcat監控模版,存在item書寫格式的坑,導致很多內容無法獲取到監控。

前面已經介紹了客戶端方面腳本的配置,今天主要介紹一下監控項跟觸發器的管理。


一、自定義tomcat監控模板--應用集管理

根據需要劃分為以下幾個應用集,分別對應如下監控項

Tomcat請求數:包括每秒請求數,每秒出錯數;Tomcat網絡流量統計:包括進流量統計,出流量統計;Tomcat線程:包括最大線程數,當前線程數,當前繁忙線程數。

JVM內存使用狀態:堆內存(Heap memory)和非堆內存(No Heap memory),包括已用值、最大值、已提交;

JVM堆內存內存池:新生代(eden space),survivor space,老年代(old gen)的內存使用狀態;

JVM非堆內存內存池:代碼緩存(Code cache),元空間(meta space),壓縮類空間(compressed class space);

JVM類加載:加載總數,已加載,已卸載。

Java線程:總開啟線程,活動線程,線程峰值

基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器



二、自定義tomcat監控模板--監控項管理

1、tomcat基本信息

<code>--tomcat版本
名稱:Tomcat version
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=Server",serverInfo]
信息類型:字符
更新間隔:1h/<code>
基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器

2、JVM基本信息

<code>--JVM版本
名稱:JVM版本
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Runtime",VmVersion]
信息類型:字符
更新間隔:1h
--JVM名稱
名稱:JVM名稱
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Runtime",VmName]
信息類型:字符
更新間隔:1h
--JVM運行時間
名稱:JVM運行時間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Runtime",Uptime]
信息類型:數字
單位:uptime
更新間隔:1m/<code>


3、JAVA堆內存

設置後可以在配置-主機-監控項上查看監控項是否生效

<code>--堆內存最大值
名稱:堆內存最大值
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Memory",HeapMemoryUsage.max]

信息類型:數字
單位:B
--已用堆內存
名稱:已用堆內存
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Memory",HeapMemoryUsage.used]
信息類型:數字
單位:B
--已提交堆內存
名稱:已提交堆內存
類型:可計算的
鍵值:jmx["java.lang:type=Memory",HeapMemoryUsage.committed]
信息類型:數字
單位:B/<code>
基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器

4、內存池eden space

<code>--內存池eden區域最大空間
名稱:內存池eden區域最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.max]
信息類型:數字
單位:B
--內存池eden區域已用空間
名稱:內存池eden區域已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.used]
信息類型:數字
單位:B
--內存池eden區域提交空間
名稱:內存池eden區域提交空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.committed]
信息類型:數字
單位:B/<code>


5、內存池survivor space

<code>--內存池survivor區域最大空間
名稱:內存池survivor區域最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.max]
信息類型:數字
單位:B

--內存池survivor區域已用空間
名稱:內存池survivor區域已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.used]
信息類型:數字
單位:B
--內存池survivor區域提交空間
名稱:內存池survivor區域提交空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Survivor Space",Usage.committed]
信息類型:數字
單位:B/<code>


6、內存池old gen

<code>--內存池old gen最大空間
名稱:內存池old gen最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.max]
信息類型:數字
單位:B
--內存池old gen已用空間
名稱:內存池old gen最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.used]
信息類型:數字
單位:B
--內存池old gen提交空間
名稱:內存池old gen最大空間
類型:JMX agent代理程序

鍵值:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.committed]
信息類型:數字
單位:B/<code>


7、內存池meta space

內存池meta space最大空間一般為-1,代表不限制,這裡不做顯示

<code>--內存池meta space已用空間
名稱:內存池meta space已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.used]
信息類型:數字
單位:B
--內存池meta space提交空間
名稱:內存池meta space提交空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Metaspace",Usage.committed]
信息類型:數字
單位:B/<code>


8、內存池code cache

<code>--內存池code cache最大空間
名稱:內存池code cache最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.max]
信息類型:數字
單位:B

--內存池code cache已用空間
名稱:內存池code cache已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.used]
信息類型:數字
單位:B
--內存池code cache提交空間
名稱:內存池code cache提交空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.committed]
信息類型:數字
單位:B/<code>


9、內存池compressed class space

<code>--內存池compressed class space最大空間
名稱:內存池compressed class space最大空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.max]
信息類型:數字
單位:B
--內存池compressed class space已用空間
名稱:內存池compressed class space已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.used]
信息類型:數字
單位:B
--內存池compressed class space提交空間
名稱:內存池compressed class space提交空間
類型:JMX agent代理程序

鍵值:jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.committed]
信息類型:數字
單位:B/<code>


10、非堆內存

max為-1,不建議做監控

<code>--非堆內存最大值
名稱:非堆內存最大值
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Memory",NonHeapMemoryUsage.max]
信息類型:數字
單位:B
--非堆內存已用空間
名稱:非堆內存已用空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Memory",NonHeapMemoryUsage.used]
信息類型:數字
單位:B
--非堆內存提交空間
名稱:非堆內存提交空間
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Memory",NonHeapMemoryUsage.committed]
信息類型:數字
單位:B/<code>


11、類加載

<code>--類加載總數 

名稱:類加載總數
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=ClassLoading",TotalLoadedClassCount]
信息類型:數字
單位:
--類已加載
名稱:類已加載
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=ClassLoading",LoadedClassCount]
信息類型:數字
單位:
--類已卸載
名稱:類已卸載
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=ClassLoading",UnloadedClassCount]
信息類型:數字
單位:/<code>


12、java線程

<code>--總開啟線程
名稱:總開啟線程
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Threading",TotalStartedThreadCount]
信息類型:數字
單位:
--活動線程
名稱:活動線程
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Threading",ThreadCount]
信息類型:數字
單位:

--線程峰值
名稱:線程峰值
類型:JMX agent代理程序
鍵值:jmx["java.lang:type=Threading",PeakThreadCount]
信息類型:數字
單位:/<code>


13、tomcat線程

因為tomcat一般我們都會改端口,所以需要自定義更改,例如寫成http-nio-80,另外就是根據使用的 Tomcat 的 Connector 運行模式(bio|nio|apr)進行自定義更改。

<code>--tomcat最大線程數
名稱:tomcat最大線程數
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=ThreadPool,name=\"http-nio-80\"",maxThreads]
信息類型:數字
單位:
--tomcat當前線程數
名稱:tomcat當前線程數
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=ThreadPool,name=\"http-nio-80\"",currentThreadCount]
信息類型:數字
單位:
--tomcat繁忙線程數
名稱:tomcat繁忙線程數
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=ThreadPool,name=\"http-nio-80\"",currentThreadsBusy]
信息類型:數字
單位:/<code>

14、網絡流量統計

<code>--tomcat接收的流量
名稱:tomcat接收的流量
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-80\"",bytesReceived]
信息類型:數字
單位:B
--tomcat發送的流量
名稱:tomcat發送的流量
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-80\"",bytesSent]
信息類型:數字
單位:B/<code>


15、tomcat請求

<code>--tomcat請求數
名稱:tomcat請求數
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-80\"",requestCount]
該鍵值無效:jmx["Catalina:type=GlobalRequestProcessor,name=\"{$PROTOCOL_HANDLER_HTTP}\"",requestCount]
信息類型:數字
單位:
--tomcat出錯請求數
名稱:tomcat出錯請求數
類型:JMX agent代理程序
鍵值:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-80\"",errorCount]
信息類型:數字
單位:
--tomcat請求時間
名稱:tomcat請求時間

類型:JMX agent代理程序
鍵值:jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-80\"",processingTime]
信息類型:浮點數
單位:s
更新間隔:1m/<code>



三、自定義tomcat監控模板--觸發器管理

<code>--mem Heap Memory
名稱:85% mem Heap Memory used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=Memory",HeapMemoryUsage.used].last()}>({tomcat:jmx["java.lang:type=Memory",HeapMemoryUsage.max].last()}*0.85)
嚴重性:嚴重
--mem Non-Heap Memory
名稱:85% mem Non-Heap Memory used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=Memory",NonHeapMemoryUsage.used].last()}>({tomcat:jmx["java.lang:type=Memory",NonHeapMemoryUsage.max].last()}*0.85)
嚴重性:嚴重
--mp Code Cache
名稱:85% mp Code Cache used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.used].last()}>({tomcat:jmx["java.lang:type=MemoryPool,name=Code Cache",Usage.max].last()}*0.85)
嚴重性:嚴重
-- mp Compressed Class Space
名稱:\t85% mp Compressed Class Space used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.used].last()}>({tomcat:jmx["java.lang:type=MemoryPool,name=Compressed Class Space",Usage.max].last()}*0.85)
嚴重性:嚴重
--mp PS Eden Space
名稱:\t85% mp PS Eden Space used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.used].last()}>({tomcat:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.max].last()}*0.85)
嚴重性:嚴重
--mp PS Old Gen
名稱:85% mp PS Old Gen used on {HOST.NAME}
表達式:{tomcat:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.used].last()}>({tomcat:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.max].last()}*0.85)
嚴重性:嚴重
-- Runtime
名稱:\t{HOST.NAME} is not reachable

表達式:{tomcat:jmx["java.lang:type=Runtime",Uptime].nodata(5m)}=1
嚴重性:一般嚴重/<code>
基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器



覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~


基於zabbix網頁配置自定義tomcat監控模板--監控項、觸發器


分享到:


相關文章: