zabbix监控Tomcat服务器操作指引——基于JMX方式

zabbix使用JMX监控Tomcat服务器操作指引~

Tomcat是一个流行的Java Servlet容器,用于开发和部署Java Web应用程序,广泛应用于中小型系统、开发与测试环境、集成环境等场合。

Zabbix是一个开源的监控解决方案,广泛用于监控各种网络参数、服务器健康状态以及应用程序的性能,而JMX(Java Management Extensions)是一个提供管理接口的标准,允许从Java应用程序中提取运行时信息,通过结合Zabbix和JMX,我们就可以对Tomcat服务器进行深入的监控。

前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项


一、zabbix server配置java支持

此处编译安装zabbix的目录为/opt/zabbix

编辑/opt/zabbix/sbin/zabbix_java/settings.sh,修改完成之后内容如下:

    LISTEN_IP="0.0.0.0"            //监听的服务器地址

    LISTEN_PORT=10052 //监听的端口
    PID_FILE="/tmp/zabbix_java.pid" //指定zabbix_java的pid文件地址
    START_POLLERS=5
    TIMEOUT=3


二、修改zabbix server配置文件

编辑/opt/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:

LogFile=/tmp/zabbix_server.log    //指明zabbix_server的日志文件地址

DBHost=localhost //连接的数据库地址
DBName=zabbix //连接的数据库名称
DBUser=zabbix //连接数据库的用户名
DBPassword=zabbix //连接数据库密码
JavaGateway=192.168.10.103 //java网关地址,即server端ip地址
JavaGatewayPort=10052 //java网关监听端口
Timeout=20 //超时时间
FpingLocation=/usr/sbin/fping //fping命令绝对地址
LogSlowQueries=3000
AllowRoot=1 //允许root启动
User=root //zabbix服务的启动用户
StartPollers=50
StartPingers=100
StartJavaPollers=5
AlertScriptsPath=/opt/zabbix/share/zabbix/alertscripts //zabbix额外的脚本地址


三、启动zabbix java服务

重启zabbix server服务,以及启动zabbix java支持服务

service zabbix_server restart

cd /opt/zabbix/sbin/zabbix_java && sh startup.sh


四、修改tomcat配置文件

在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件

目录:/data/tomcat/tomcat-8080/bin

vim /data/tomcat/tomcat-8080/bin/catalina.sh 编辑catalina.sh,提供jmx端口如下:

CATALINA_OPTS="

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=12345
-Djava.rmi.server.hostname=192.168.10.100"

其中,hostname=192.168.10.100需要修改为agent部署的服务器地址更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态


五、复制jar包

在zabbix agent部署的tomcat服务器上,copy对应的java jmx监控的相关jar包到tomcat对应的目录下

cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib

cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin


六、修改zabbix agent配置文件

编辑zabbix agent配置文件,配置完成如下:

LogFile=/tmp/zabbix_agentd.log    //zabbix agent日志文件地址

Server=192.168.10.103 //zabbix server地址
ListenPort=10050 //zabbix agent监听端口
Timeout=20 //超时时间
Include=/opt/zabbix/etc/zabbix_agentd.conf.d/*.conf //zabbix agent副配置文件目录配置
UnsafeUserParameters=1
AllowRoot=1
User=root
ServerActive=192.168.10.103 //server地址配置
EnableRemoteCommands=1 //允许远程执行命令
Hostname=192.168.10.100 //配置agent本地hostname名称
UserParameter=jvm[*],/opt/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1 //jvm内存监控脚本
UserParameter=system_memory[*],/opt/zabbix/share/zabbix/alertscripts/system_memory.sh $1 //系统内存监控脚本


七、命令测试

在zabbixagent端使用cmdline-jmxclient-0.10.3.jar提供的相关接口,获取jvm的监控信息此处执行相关命令的操作目录为:/data/tomcat/tomcat-8080/bin

(一)获取tomcat的最大线程数

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads

06/09/2017 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200

(二)获取tomcat繁忙线程数

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadsBusy

06/09/2017 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5

(三)获取tomcat当前已经分配线程数

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345  'Catalina:name="http-bio-8080",type=ThreadPool' currentThreadCount

06/09/2017 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11

(四)获取活动线程的当前数目,包括守护线程和非守护线程

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading ThreadCount

06/09/2017 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225

(五)获取自从 Java 虚拟机启动以来创建和启动的线程总数目

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading TotalStartedThreadCount

06/09/2017 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225

(六)获取Java 虚拟机启动或峰值重置以来峰值活动线程计数

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading PeakThreadCount

06/09/2017 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244

(七)获取守护线程总数

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading DaemonThreadCount

06/09/2017 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195


八、常见键值解析

键值对解析如下:

名称:tomcat已分配线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadCount]

名称:tomcat最大线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",maxThreads]

名称:tomcat繁忙线程数

键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadsBusy]

名称:java虚拟机启动以来创建和启动的线程总数目

键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"]

名称:tomcat活动线程的当前数目,包括守护线程和非守护线程

键值:jmx["java.lang:type=Threading","ThreadCount"]

名称:java虚拟机启动或峰值重置以来峰值活动线程数

键值:jmx["java.lang:type=Threading","PeakThreadCount"]



0 条评论

请先 登录 后评论
乐维君
乐维君

381 篇文章

作家榜 »

  1. 乐维君 381 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章