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

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. cf352E Jeff and Brackets dp+矩阵快速幂(加法+min运算)

    题意大致是这样的,一共要放 m 段括号序列,每一段放 n 个括号,也就是放 n*m个括号,再每一段中的 n 个位置分别有放左括号和右括号的代价,问最终摆放出合法的括号序列的最小代价是多少. 另外保证, ...

  2. 踩坑 —— Eclipse MAVEN编译

    一.踩坑 1.昨天download了Netty和SOFARPC工程的源码,Eclipse编译的时候报错了,信息如下: Plugin execution not covered by lifecycle ...

  3. vue 在全局设置cookie main.js文件

    //设置cookie Vue.prototype.setCookie=function(cname, cvalue, exdays) { var d = new Date(); d.setTime(d ...

  4. 一个极其简易版的vue.js实现

    前言 之前项目中一直在用vue,也边做边学摸滚打爬了近一年.对一些基础原理性的东西有过了解,但是不深入,例如面试经常问的vue的响应式原理,可能大多数人都能答出来Object.defineProper ...

  5. 如何创建 SVN 服务器,并搭建自己的 SVN 仓库 如何将代码工程添加到VisualSVN Server里面管理

    如何创建 SVN 服务器,并搭建自己的 SVN 仓库,附链接: https://jingyan.baidu.com/article/6b97984dca0d9c1ca3b0bf40.html 如何将代 ...

  6. 使用LFSR搭建误差补偿系统

    使用LFSR搭建误差补偿系统 首先弄明白什么是LFSR 线性反馈移位寄存器(LFSR)是内测试电路中最基本的标准模块结构,既用作伪随机测试码产生器,也作为压缩测试结果数据的特征分析器. 一个n阶的LF ...

  7. css 实现等分布局

    目前移动版等分布局最常用的是 flex 等分,pc 端上用得更多则是 float. 假设父元素下有 3 个子元素,每个子元素相隔 24px,子元素等分父元素宽度 实现:float + margin ( ...

  8. lnmp一件安装包 搭建laravel 环境(lnmp1.4)(报错500)

    https://blog.csdn.net/huangyuxin_/article/details/78998486

  9. Restful OData Protocol

    Web服务有两种实现方式: 一是SOAP协议方式 二是REST方式. SOAP是一套完整的实现Web服务的解决方案.这里有必要先简单了解SOAP方式的Web服务,然后对比SOAP方式,我们会发现RES ...

  10. MongoDB监控(常见监控方法及profile)-temp

    为什么要监控? 监控及时获得应用的运行状态信息,在问题出现时及时发现. 监控什么? CPU.内存.磁盘I/O.应用程序(MongoDB).进程监控(ps -aux).错误日志监控 1.4.1 Mong ...