前面已经介绍过Tomcat单机多实例部署,接下来就在他的基础上进行下一步操作:Tomcat多实例监控!

Tomcat多实例监控过程和之前的redis多实例原理一样,分为以下4步:

1、获取多实例

2、采集数据

3、制作模板

4、主机套模板

一、获取多实例

在前面我们已经知道Tomcat多实例的目录结构如下:

获取多实例之前,需要进行如下设置:

1、在bin目录下的catalina.sh脚本增加如下内容

  1. # ----- Execute The Requested Command -----------------------------------------
  2.  
  3. CATALINA_OPTS="$CATALINA_OPTS
  4. -Djava.rmi.server.hostname=10.11.100.99
  5. -Dcom.sun.management.jmxremote=true
  6. -Dcom.sun.management.jmxremote.ssl=false
  7. -Dcom.sun.management.jmxremote.authenticate=false"

  注意必须在 “Execute The Requested Command”后面新增,指定主机名或IP,是否开启远程管理,是否启动ssl,是否启用认证。

2、在单独实例中设置(conf/server.xml文件)

  1. <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12346"/>

  说明:远程连接端口是12345,获取数据端口是12346

同样地,在ins02中

  1. <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12347" rmiServerPortPlatform="12348"/>

  远程连接端口是12347,获取数据端口是12348

3、重启多实例,查看端口启动情况

4、获取多实例端口

cat jmx_discovery.sh

  1. #!/bin/bash
  2. t_datadir=`find /usr/local/tomcat/tomcat-*/conf/ -name server.xml|awk -F "/conf/server.xml" '{print $1}'`
  3. tomcat_no=`find /usr/local/tomcat/tomcat-*/conf/ -name server.xml|wc -l`
  4. n_port=12345
  5. i=1
  6. printf '{"data":[\n'
  7. for tomcat in $t_datadir
  8. do
  9. t_service=$(echo "$tomcat"|awk -F"/" '{print $(NF)}')
  10.  
  11. if [ "$i" != ${tomcat_no} ];then
  12.  
  13. printf "\t\t{ \n"
  14.  
  15. printf "\t\t\t\"{#JMX_PORT}\":\"${n_port}\",\n"
  16.  
  17. printf "\t\t\t\"{#JAVA_NAME}\":\"${t_service}\"},\n"
  18.  
  19. else
  20.  
  21. printf "\t\t{ \n"
  22.  
  23. printf "\t\t\t\"{#JMX_PORT}\":\"${n_port}\",\n"
  24.  
  25. printf "\t\t\t\"{#JAVA_NAME}\":\"${t_service}\"}]}\n"
  26.  
  27. fi
  28.  
  29. let "n_port=n_port+2"
  30.  
  31. let "i=i+1"
  32.  
  33. done

  注意,我这里的目录结构需要根据你的部署进行修改!

执行脚本:

发现两个实例。

二、采集数据

数据采集需要使用到cmdline-jmxclient-0.10.3.jar,专门用来通过JMX方式获取数据的。

拷贝cmdline-jmxclient-0.10.3.jar到/lib下,当然你也可以随便放置其他目录,只要zabbix用户能够访问就行,因为zabbix-agent是由zabbix用户启动的。

采集脚本:

cat add_service_tomcat.sh

  1. #!/bin/bash
  2. local_ip=`ifconfig|awk -F '[ :]+' 'NR==2 {print $4}'` #提取主机IP
  3.  
  4. cat >> /etc/zabbix/zabbix_agentd.d/tomcat.conf <<END #修改zabbix_agentd.conf,添加KEY
  5.  
  6. UserParameter=java.jmx.discovery[*],/etc/zabbix/externalscripts/jmx_discovery.sh
  7.  
  8. UserParameter=java.Runtime.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Runtime \$2 2>&1 |grep \$2 |awk '{print \$NF}'
  9.  
  10. UserParameter=java.Memory.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory \$2 2>&1 |grep \$2 |awk '{print \$NF}'
  11.  
  12. UserParameter=java.System.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=OperatingSystem \$2 2>&1 |grep \$2 |awk '{print \$NF}'
  13.  
  14. UserParameter=java.HeapMemoryUsage.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory HeapMemoryUsage 2>&1 |grep \$2 |awk '{print \$NF}'
  15.  
  16. UserParameter=java.NonHeapMemoryUsage.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Memory NonHeapMemoryUsage 2>&1 |grep \$2 |awk '{print \$NF}'
  17.  
  18. UserParameter=java.LoadClass.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=ClassLoading \$2 2>&1 |awk '{print \$NF}'
  19.  
  20. UserParameter=java.Threading.status[*],java -jar /lib/cmdline-jmxclient-0.10.3.jar - $local_ip:\$1 java.lang:type=Threading \$2 2>&1 |awk '{print \$NF}'
  21.  
  22. END

  

三、模板制作

根据采集的数据进行模板制作。

四、主机上套

五、查看最新数据

数据图标

六、参考文档和脚本地址

https://github.com/loveqx/zabbix-doc/tree/master/zabbix-scripts/zabbix-template-tomcat

https://blog.51cto.com/13120271/2070640

通过Zabbix监控Tomcat单机多实例的更多相关文章

  1. Zabbix监控Tomcat,Redis

    一 Tomcat监控 1.1.1 Tomcat 端配置 JMX 编辑catalina.sh文件,配置如下: CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.m ...

  2. Zabbix监控Tomcat案例

    今天在这里,我们来聊一聊JMX监控方式, JMX(java管理扩展程序)是java平台上为应用程序,设备,系统等植入管理功能的框架,JMX可以跨越一系列不同的系统平台,更加灵活的服务管理应用: 在za ...

  3. tomcat单机多实例部署

    最近在面试的过程中,一家公司在面试时提到了有关tomcat单机多实例部署的提问, 正好, 之前使用IntelliJ IDEA 13.1.4这款IDE开发web项目,在开发的过程中,因为有多个web项目 ...

  4. tomcat单机多实例

    catalina.home指向公用信息的位置,就是bin和lib的父目录. catalina.base指向每个Tomcat目录私有信息的位置,就是conf.logs.temp.webapps和work ...

  5. zabbix 监控tomcat

    zabbix 监控tomcat server端rpm -ivh jdk-8u20-linux-x64.rpmvi /etc/profileJAVA_HOME=/usr/java/jdk1.8.0_20 ...

  6. zabbix监控tomcat

    服务端配置修改 编译zabbix的时候需要添加参数--enable-java --enable-java 修改zabbix_java配置文件 vim /usr/local/zabbix-2.4.6/s ...

  7. zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)

    一,zabbx使用jmx监控tomcat的原理分析 1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据 2.Zabbix-Java-Gateway找Java程序(j ...

  8. Zabbix 监控tomcat web

    个人博客:https://blog.sharedata.info/ 在zabbix监控web,web容器是tomcat 默认的端口是8080导致web监控失败!不能找到主机因此在修改tomcat 端口 ...

  9. 【zabbix监控】zabbix监控tomcat服务

    服务器配置(zabbix_server) 1. 安装jdk 版本需要1.7以上,我这边安装的是1.8的,可以参考我jdk安装的文章 # 上传到zabbix_server服务端.安装(jdk-8u171 ...

随机推荐

  1. 二 python并发编程之多进程实现

    一 multiprocessing模块介绍 二 process类的介绍 三 process类的使用 四 守护进程 五 进程同步(锁) 六 队列 七 管道 八 共享数据 九 信号量 十 事件 十一 进程 ...

  2. 十大Intellij IDEA快捷键(附IDEA快捷键详细列表及使用技巧)

    十大Intellij IDEA快捷键(附IDEA快捷键详细列表及使用技巧) Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论.每个人都有自己的最爱, ...

  3. css3 media媒体查询器用法总结(附js兼容方法)

    css3 media媒体查询器用法总结 标签:class   代码   style   html   sp   src 随着响应式设计模型的诞生,Web网站又要发生翻天腹地的改革浪潮,可能有些人会觉得 ...

  4. js utc转当地时间

    javascript utc转当地时间 后台传过来的时间:2019-07-03T01:39:51.691242+08:00 转成当地时间:2019-07-02 17:39:51 new Date(20 ...

  5. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  6. FFmpeg参考资料合集(会一直更新)

    让你的软件飞起来:RGB转为YUV 朋友曾经给我推荐了一个有关代码优化的pdf文档<让你的软件飞起来>,看完之后,感受颇深.为了推广其,同时也为了自己加深印象,故将其总结为word 文档. ...

  7. windows mysql 5.5.62 安装

    下载链接: https://dev.mysql.com/downloads/installer/ mysql下载这边有句话,虽然是32位的安装包,但是可以装在32位和64位上. 建议迅雷下载. 然后打 ...

  8. Oracle 数据块

    以emp表为例 SYS@ prod>select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ...

  9. USB之hub3

    =============  本系列参考  ============= <圈圈教你玩USB>.<Linux那些事儿之我是USB> 协议文档:https://www.usb.or ...

  10. VMware15.5版本安装CentOS7

    VMware15.5版本安装CentOS7 一.在VMware15.5中新建虚拟机 1.打开VMware,在首页面选择创建新的虚拟机. 2.新建虚拟机向导,选择典型配置.3.选择稍后安装操作系统.4. ...