网络上很多教程也比较多和全了,但是自己做时候多多少少的坑备注下吧。

1,监控原理简单说一下,就是zabbix_server通过代理(zabbix_java_gateway)来获取agent端(tomcat)的数据。【当然可以和zabbix_agent分开使用了】

2。配置举例吧。zabbix_server:10.2.2.123  zabbix_java_gateway:10.2.2.124  tomcat:10.2.2.125  

  三台机器是可以在一起的,但是为了区分三个作用还是分开来看吧

3.在zabbix_server端,修改配置文件

JavaGateway=10.2.2.124
JavaGatewayPort=
StartJavaPollers=

在zabbix_java_gateway修改配置文件

LISTEN_IP="0.0.0.0"
LISTEN_PORT=
START_POLLERS=

listen_ip 我猜测是监控的地址池,不过没有验证  StartJavaPollers<=START_POLLERS

tomcat端修改catalina.sh文件,$(tomcat)/bin/Catalina.sh加入

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false
-Djava.rmi.server.hostname=10.2.2.125"

注意这个10.2.2.125要写进/etc/hosts中,因为jmxremote这个包在回调信息时候回查询其域名,不然回找不到路由。有时候不写也行,我块儿我也不太明白,先留着这个坑吧(我测试过连接成功之后删除可以用,可能是记住了路由,不过最后还是都配置好比较好)。最好实现所有的内网服务器可以通过域名来互相访问通。(ansible/saltstack之类的来做呗)

4.有人说要把jmxremote这个包放到$(tomcat)/lib/中,不过我没放也可以,给个下载地址吧。一般在tomcat自己镜像同目录的bin/extras/  目录中

然后下载cmdline-jmxclient-0.10.3.jar这个包,我一直不知道这个包是哪个公司做的,而且这个包好像也没人用新版本,这个版本用了n年了吧,不过能用就挺好。

现在tomcat端  测试

java -jar cmdline-jmxclient-0.10..jar - 127.0.0.1:

org.apache.logging.log4j2:component=Loggers,name=org.springframework,type="WebappClassLoader\n  context: ROOT\n  delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
org.apache.logging.log4j2:component=Appenders,name=RollingFile,type="WebappClassLoader\n context: ROOT\n delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
Catalina:context=/,host=localhost,type=Loader
com.alibaba.druid:type=DruidDataSourceStat
Catalina:name=HttpRequest1,type=RequestProcessor,worker="http-nio-8088"
java.util.logging:type=Logging
org.apache.logging.log4j2:component=Loggers,name=,type="WebappClassLoader\n context: ROOT\n delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
java.lang:type=Compilation
Catalina:port=,type=Connector
JMImplementation:type=MBeanServerDelegate
java.lang:type=ClassLoading

有数据就说明catalina.sh配置没问题

然后在zabbix_java_gateway端 测试

java -jar cmdline-jmxclient-0.10..jar - 10.2.2.125:

org.apache.logging.log4j2:component=Loggers,name=org.springframework,type="WebappClassLoader\n  context: ROOT\n  delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
org.apache.logging.log4j2:component=Appenders,name=RollingFile,type="WebappClassLoader\n context: ROOT\n delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
Catalina:context=/,host=localhost,type=Loader
com.alibaba.druid:type=DruidDataSourceStat
Catalina:name=HttpRequest1,type=RequestProcessor,worker="http-nio-8088"
java.util.logging:type=Logging
org.apache.logging.log4j2:component=Loggers,name=,type="WebappClassLoader\n context: ROOT\n delegate: false\n----------> Parent Classloader:\njava.net.URLClassLoader@4bf558aa\n"
java.lang:type=Compilation
Catalina:port=,type=Connector
JMImplementation:type=MBeanServerDelegate
java.lang:type=ClassLoading

要让zabbix_java_gateway端也能获取数据才行

5.zabbix自带模板除了检测版本和压缩传输的两项,其他基本不能直接用,要用java -jar cmdline-jmxclient-0.10.3.jar - 10.2.2.125: | grep "监控项"慢慢调整才能用

比如

jmx["Catalina:type=GlobalRequestProcessor,name=http-8080",requestCount]
调整为
jmx["Catalina:type=GlobalRequestProcessor,name=\"http-8080\"",requestCount]

一个一个改太麻烦,可以导出模板xml文件,vim 或者 emeditor来批量修改(其他带正则表达式的替换工具也行)

改好了就添加主机,使用jmx的方式IP:port     10.2.2.125:12345

关联模板,

完成

centos7,zabbix3.2通过zabbix_java_gateway监控jmx[java/tomcat]的更多相关文章

  1. 利用JMX来监控大部分java应用

    JMX(JavaManagement Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架.JMX可以跨越一系列异构操作系统平台.系统体系结构和网络传输协议,灵活 ...

  2. Zabbix JMX之tomcat监控

    工作原理: 1.JAVA-GATEWAY  Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦.所有后来为了解决这个监控问 ...

  3. zabbix 基于JMX的Tomcat监控

    zabbix 基于JMX的Tomcat监控 一.环境 ubuntu14.04 LTS Java 1.7.0 zabbix 2.4.5 二.安装配置 1.安装JavaGateway 在ubuntu14. ...

  4. zabbix日常监控项java(四)

    yum install net-tools netstat命令 yum -y install bash-completion 命令自动补全包 https://github.com/qiueer/zab ...

  5. 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比

    分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的J ...

  6. zabbix日常监控项java(四又分之一)

    因zabbix自带监控JMX的模板通用性差的问题,需要我们自己新建一个属于自己的模板,于是本文就出现了.... 大部分都是参考网上其他博主的文档,在此作为梳理.总结:以方便自己日后使用查询.

  7. CentOS7下部署java+tomcat+mysql项目及遇到的坑

    CentOS 7 下安装部署java+tomcat+mysql 前置:CentOS7安装:https://jingyan.baidu.com/article/b7001fe1d1d8380e7382d ...

  8. jconsole监控远程linux tomcat运行情况的配置 (转)

    来自:http://zhumeng8337797.blog.163.com/blog/static/100768914201242494649455/ 步骤如下: 1.编辑tomcat/bin/cat ...

  9. JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)

    JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core)     Apa ...

随机推荐

  1. java web(四):request、response一些用法和文件的上传和下载

    上一篇讲了ServletContent.ServletCOnfig.HTTPSession.request.response几个对象的生命周期.作用范围和一些用法.今天通过一个小项目运用这些知识.简单 ...

  2. 浏览器输入url回车后,会发生什么?

    通常我们想访问某一个网址,我们会在浏览器中输入它的域名,然后点击回车进行跳转,这样就可以进到网站的主页,看似简单的两步,其实背后都需要大量的代码在运行,支持,才能完成!那浏览器到底都做了哪些事呢? 一 ...

  3. cellmap 基站查询 for android

    cellmap for android 3.6.8.8.1.8 更新日期:2019年4月28日 特别声明:本软件不能进行手机定位,不能对手机号码定位,谨防被骗. 安装说明:请卸载旧版本后,重新下载安装 ...

  4. python MySQL执行SQL查询结果返回字典

    写自动化测试的时候我希望执行数据库前置任务,把数据库查询的结果作为请求的参数,但是正常返回结果为列表嵌套里面,这样就会影响到关键字准确的获取,特别的受限于SQL的查询字段的的顺序,所以希望返回的单条数 ...

  5. Spring Boot - AOP(面向切面)

    AOP 全称 Aspect Oriented Programming(面向切面),AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分 ...

  6. vim汇总

    跳到100行 100gg :100    

  7. Realm 处理List<String> 问题 Type parameter 'java.lang.String' is not within its bound; should implement 'io.realm.RealmModel

    public class InitAppBean extends RealmObject { private String sapling; private String logistics; pri ...

  8. ASP.NET core 2.1部署到 Centos 7

    步骤要点: 一.关闭Centos selinux: 操作方式: 1.永久关闭:打开/etc/selinux/config文件,设置SELINUX=disabled,注意,不是SELINUXTYPE=d ...

  9. JAVA 中BIO,NIO,AIO的理解 (转)

    转自: http://qindongliang.iteye.com/blog/2018539 另外类似可参考资料 :http://www.360doc.com/content/13/1029/20/9 ...

  10. 通过setup.py安装项目dependencies

    一.使用方法 安装命令   $ pip install  -e  <option> setup.py 二.具体介绍 pip intall -e 举例一个setup.py $ pip int ...