zabbix使用jmx监控tomcat
Posted 运维小兵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix使用jmx监控tomcat相关的知识,希望对你有一定的参考价值。
前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项。
1、zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix。
1 编辑/usr/local/zabbix/sbin/zabbix_java/settings.sh,修改完成之后内容如下: 2 LISTEN_IP="0.0.0.0" //监听的服务器地址 3 LISTEN_PORT=10052 //监听的端口 4 PID_FILE="/tmp/zabbix_java.pid" //指定zabbix_java的pid文件地址 5 START_POLLERS=5 6 TIMEOUT=3
2、编辑/usr/local/zabbix/etc/zabbix_server.conf,修改完成之后,内容如下:
1 LogFile=/tmp/zabbix_server.log //指明zabbix_server的日志文件地址 2 DBHost=localhost //连接的数据库地址 3 DBName=zabbix //连接的数据库名称 4 DBUser=zabbix //连接数据库的用户名 5 DBPassword=zabbix //连接数据库密码 6 JavaGateway=192.168.1.103 //java网关地址,即server端ip地址 7 JavaGatewayPort=10052 //java网关监听端口 8 Timeout=20 //超时时间 9 FpingLocation=/usr/sbin/fping //fping命令绝对地址 10 LogSlowQueries=3000 11 AllowRoot=1 //允许root启动 12 User=root //zabbix服务的启动用户 13 StartPollers=50 14 StartPingers=100 15 StartJavaPollers=5 16 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts //zabbix额外的脚本地址
3、重启zabbix server服务,以及启动zabbix java支持服务。
1 ]# service zabbix_server restart 2 ]# cd /usr/local/zabbix/sbin/zabbix_java && sh startup.sh
4、在zabbix agent部署的服务器上更改配置文件,修改tomcat配置文件。目录:/data/tomcat/tomcat-8080/bin。
1 ]# vim /data/tomcat/tomcat-8080/bin/catalina.sh 编辑catalina.sh,提供jmx端口。 2 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.1.100"
其中,hostname=192.168.1.100需要修改为agent部署的服务器地址。更改完成需要重启tomcat应用服务器,同时查看端口12345是否处于监听状态。
5、在zabbix agent部署的tomcat服务器上,copy对应的java jmx监控的相关jar包到tomcat对应的目录下。
1 ]# cp catalina-jmx-remote.jar /data/tomcat/tomcat-8080/lib 2 ]# cp cmdline-jmxclient-0.10.3.jar /data/tomcat/tomcat-8080/bin
6、编辑zabbix agent配置文件,配置完成如下:
1 LogFile=/tmp/zabbix_agentd.log //zabbix agent日志文件地址 2 Server=192.168.1.103 //zabbix server地址 3 ListenPort=10050 //zabbix agent监听端口 4 Timeout=20 //超时时间 5 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf //zabbix agent副配置文件目录配置 6 UnsafeUserParameters=1 7 AllowRoot=1 8 User=root 9 ServerActive=192.168.1.103 //server地址配置 10 EnableRemoteCommands=1 //允许远程执行命令 11 Hostname=192.168.1.100 //配置agent本地hostname名称 12 13 UserParameter=jvm[*],/usr/local/zabbix/share/zabbix/alertscripts/jvm_memory.sh $1 //jvm内存监控脚本 14 UserParameter=system_memory[*],/usr/local/zabbix/share/zabbix/alertscripts/system_memory.sh $1 //系统内存监控脚本
7、在zabbix管理界面配置要监控的服务器的信息,如下:
8、在zabbixagent端使用cmdline-jmxclient-0.10.3.jar提供的相关接口,获取jvm的监控信息。此处执行相关命令的操作目录为:/data/tomcat/tomcat-8080/bin。
1 获取tomcat的最大线程数。 2 ]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 ‘Catalina:name="http-bio-8080",type=ThreadPool‘ maxThreads 3 06/09/2017 17:34:47 +0800 org.archive.jmx.Client maxThreads: 200 4 5 获取tomcat繁忙线程数。 6 ]$ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 ‘Catalina:name="http-bio-8080",type=ThreadPool‘ currentThreadsBusy 7 06/09/2017 17:36:48 +0800 org.archive.jmx.Client currentThreadsBusy: 5 8 9 获取tomcat当前已经分配线程数。 10 $ java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 ‘Catalina:name="http-bio-8080",type=ThreadPool‘ currentThreadCount 11 06/09/2017 17:38:15 +0800 org.archive.jmx.Client currentThreadCount: 11 12 13 获取活动线程的当前数目,包括守护线程和非守护线程。 14 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading ThreadCount 15 06/09/2017 17:55:34 +0800 org.archive.jmx.Client ThreadCount: 225 16 17 获取自从 Java 虚拟机启动以来创建和启动的线程总数目。 18 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading TotalStartedThreadCount 19 06/09/2017 17:55:52 +0800 org.archive.jmx.Client TotalStartedThreadCount: 112225 20 21 获取Java 虚拟机启动或峰值重置以来峰值活动线程计数。 22 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading PeakThreadCount 23 06/09/2017 17:56:06 +0800 org.archive.jmx.Client PeakThreadCount: 244 24 25 获取守护线程总数。 26 java -jar cmdline-jmxclient-0.10.3.jar - 192.168.1.100:12345 java.lang:type=Threading DaemonThreadCount 27 06/09/2017 17:52:20 +0800 org.archive.jmx.Client DaemonThreadCount: 195
9、添加对应的监控项。监控项中类型选择JMX agent代理程序。如下图:
10、添加完成的监控项内容如下所示:
1 名称:tomcat已分配线程数 2 键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadCount] 3 4 名称:tomcat最大线程数 5 键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",maxThreads] 6 7 名称:tomcat繁忙线程数 8 键值:jmx["Catalina:name=\"http-bio-8080\",type=ThreadPool",currentThreadsBusy] 9 10 名称:java虚拟机启动以来创建和启动的线程总数目 11 键值:jmx["java.lang:type=Threading","TotalStartedThreadCount"] 12 13 名称:tomcat活动线程的当前数目,包括守护线程和非守护线程。 14 键值:jmx["java.lang:type=Threading","ThreadCount"] 15 16 名称:java虚拟机启动或峰值重置以来峰值活动线程数 17 键值:jmx["java.lang:type=Threading","PeakThreadCount"]
以上是关于zabbix使用jmx监控tomcat的主要内容,如果未能解决你的问题,请参考以下文章