使用Zabbix监控Tomcat经验总结

4 篇文章 0 订阅
2 篇文章 0 订阅

Zabbix 监控Tomcat

概述

需要安装的软件包括:

  • Java JRE环境,1.7或1.8
  • Zabbix-Java-Gateway
  • cmdline-jmxclient.jar工具

Zabbix的JMX监控架构

Created with Raphaël 2.2.0 Zabbix Server Java Gateway JMX Counter

组件关系示意图:
这里写图片描述

Java环境的安装

可以从官网下载JDK包,解压缩到/usr/share目录下,然后配置一下JAVA_HOME变量。

使用java -version检查是否安装完成。

安装Zabbix-Java-Gateway

在安装zabbix的yum源的基础上,使用如下命令完成安装

yum install -y zabbix-java-gateway

安装完毕后,可以使用如下命令测试:

service zabbix-java-gateway status

此时应该提示服务没有启动。
注:监控安装在不同Host上的多个Tomcat,也只需要安装一个Zabbix-Java-Gateway。

修改Zabbix-java-gateway配置文件

打开/etc/zabbix/zabbix_java_gateway.conf文件,主要关注/修改如下几个参数:

  • 监听地址:LISTEN_IP=“0.0.0.0” #默认地址,java gateway绑定IP,一般不需要设置
  • 监听端口:LISTEN_PORT=10052 #默认端口,zabbix server访问端口
  • 启动的工作线程数:START_POLLERS=5

然后使用service zabbix-java-gateway start启动服务就可以。

修改zabbix-server端的配置文件

打开/etc/zabbix/zabbix_server.conf文件,主要关注/自古如下几个参数:

  • Java Gateway地址:JavaGateway=192.168.71.196
  • Java Gateway端口:JavaGatewayPort=10052
  • JavaGateway启动线程:StartJavaPollers=5 #此处数值要等于或小于zabbix-java-gateway配置文件中的START_POLLERS值。

然后重启zabbix服务:service zabbix-server restart就可以了

客户端(Tomcat)配置

  • Tomcat添加JMX支持方法1:
    在Tomcat的bin目录下修改catalina.sh文件,为CATALINA_OPTS添加如下参数:
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.71.196
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
  • Tomcat添加JMX支持方法2:
    在Tomcat的bin目录下面添加setenv.sh文件,为CATALINA_OPTS添加如下参数:

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.71.196"

此处的IP地址为Tomcat安装的host的IP地址,端口12345为通过JMX读取Tomcat数据的端口。在Zabbix的前端管理中配置时使用。

  • 检查端口
[root@agent bin]# netstat -nltp | grep 12345
tcp        0      0 :::12345                    :::*                        LISTEN      11380/java 

使用cmdline-jmxclient.jar工具测试jmx配置

下载工具到zabbix-java-gateway安装的机器。

wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar

执行如下命令:

java -jar cmdline-jmxclient-0.10.3.jar - localhost:12345 java.lang:type=Memory NonHeapMemoryUsage

也可以通过jconsole 查MBean的可用参数

添加监控模板

添加JMX监控目标
这里写图片描述

添加Tomcat监控模板
这里写图片描述

监控项参数调整
这里写图片描述
其它监控项参数值,如实际和模板不同的,也应做相应调整。实际参数可以使用cmdline-jmxclient.jar工具查询。

添加新的监控项目(适用于Java8)
在“Configuration”菜单里面,可以通过“Create Item”添加模板里面没有,且想要监控的项目。

注意:对于内存参数,添加新的监控项时,单位填写:B,这样系统会以合适的单位显示监控值,否则显示的将会是字节数

  • 堆监控参数:
名称:堆内存最大值
键值:jmx["java.lang:type=Memory","HeapMemoryUsage.max"]

名称:已提交堆内存
键值:jmx["java.lang:type=Memory","HeapMemoryUsage.committed"]
名称:已用堆内存

键值:jmx["java.lang:type=Memory","HeapMemoryUsage.used"]
  • old gen监控
名称:内存池old gen使用空间
键值:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.used]

名称:内存池old gen已提交空间
键值:jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.committed]

名称:内存池old gen最大空间
jmx["java.lang:type=MemoryPool,name=PS Old Gen",Usage.max]
  • eden space监控
名称:eden space已用空间
键值:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.used]

名称:eden space已提交空间
键值:jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.committed]

名称:eden space最大空间
jmx["java.lang:type=MemoryPool,name=PS Eden Space",Usage.max]
  • Tomcat线程监控
名称:总开启线程数
键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

名称:活动线程数
键值:jmx["java.lang:type=Threading","ThreadCount"]

名称:线程峰值数
键值:jmx["java.lang:type=Threading","PeakThreadCount"]

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值