基于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监控模板--监控项、触发器


分享到:


相關文章: