一,zabbx使用jmx监控tomcat的原理分析

1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
2.Zabbix-Java-Gateway找Java程序(jmx)获取数据
3.Java程序返回数据给Zabbix-Java-Gateway
4.Zabbix-Java-Gateway返回数据给Zabbix-Server
5.Zabbix-Server进行数据展示
 
 

二、配置JMX监控的步骤:
 
1.安装Zabbix-Java-Gateway
2.配置zabbix_java_gateway.conf参数。
3.配置zabbix-server.conf参数。
4.Tomcat应用开启JMX协议。
5.ZabbixWeb配置JMX监控的Java应用。
 
 
三,具体操作如下:
 

1,在zabbix_server上安装zabbix-java-gateway
 
yum install -y zabbix-java-gateway    #如果提示不能安装,请先安装zabbix.repo源,建议安装的zabbix-java-gateway的版本和zabbix其他软件包一致。

2,安装jdk环境
cd /usr/local/src

tar -zxvf jdk1.8.0_65.tar.gz 

mv jdk1.8.0_65  /usr/local/

vim /etc/profile.d/java.sh

#!/bin/bash
export JAVA_HOME=/usr/local/jdk1.8.0_65
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=/usr/local/jdk1.8.0_65
export CLASSPATH=/usr/local/jdk1.8.0_65/lib/tools.jar:/usr/local/jdk1.8.0_65/lib/dt.jar source /etc/profile

 

3,修改java-gateway的配置文件(默认java-gateway开启的是10052端口)

vim /etc/zabbix/zabbix_java_gateway.conf  

更改如下配置:

#监控地址
LISTEN_IP="0.0.0.0" #监听端口
LISTEN_PORT=10052 #进程文件路径
PID_FILE="/var/run/zabbix/zabbix_java.pid" #开启的工作线程数
START_POLLERS=5 #超时
TIMEOUT=3

  

4,重启java-gateway服务
 
systemctl restart zabbix-java-gateway

  

 
5,修改zabbix_server配置文件,指定zabbix-server去javagetway获取数据的地址
 
vim /etc/zabbix/zabbix_server.conf

# JavaGateway的服务器IP地址
JavaGateway=192.168.1.61
# JavaGateway的服务端口
JavaGatewayPort=10052
# 从javaGateway采集数据的进程数
StartJavaPollers=5

  

6, 重启zabbix-server服务器

systemctl restart zabbix-server

  

7, 在被监控的tomcat应用程序的找到catalina.sh,添加如下内容
CATALINA_OPTS="$CATALINA_OPTS
-Djavax.management.builder.initial=
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=192.168.1.36" //tomcat客户端ip 重启进程: ./shutdown.sh && ./startup.sh

  

8,测试jmx远程端口是否开启成功并且获取数据(java-gatewya主要是和tomcat远程端口进行通信)。测试工具有3个,供选择!其实都是连接到jmx上面去而已。

a,jmxclient (大部分人都用这个)

https://sourceforge.net/projects/jmxcmd/ 打开后点击下载即可  

b,jmxterm  (很少有人用这个)  http://sourceforge.net/projects/cyclops-group/files/jmxterm/

c,jconsole (很多人用这个) 这是个安装jdk自带的工具,需要支持图形化。如果你的电脑安装了jdk,那么就会还有这个工具了。

  

9,安装测试工具完成之后,测试是否能够获取数据。(ps:有的人会去下载 catalina-jmx-remote.jar这个包放到tomcat的lib目录,其实这个是不需要的)

运行刚刚下载的工具:

 java -jar jmxcmd.jar -  192.168.1.36:12345

  

成功后可以看到获取到了数据

10,导入模版(该模版是3.0版本的zabbix,由于我用的jdk是1.8.0,所以监控项中的老年代(old gen)名其实已经为Tenured Gen(老年代),为了能够监控到old gen,所以模版里面也是有该监控项的,只是处于停用状态)

下载链接如下:

https://coding.net/api/user/molini/project/zabbix/folder/4326588/download

zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)的更多相关文章

  1. Tomcat开启JMX监控 visualvm

    Tomcat开启JMX监控 https://blog.csdn.net/dongdong2980/article/details/78476393

  2. Tomcat开启JMX监控

    搭建模拟环境: 操作系统:centos7内存:1Gjdk:1.8.0_131tomcat:8.0.48 环境准备我们这里就不直接演示了,直接配置tomcat的jmx 1.进入到tomcat的bin目录 ...

  3. 监控应用服务器使用JMX监控Tomcat (推荐)

    前言:做了一个监控应用服务器的项目(支持Tocmat.WebSphere.WebLogic各版本), 过程也算是磕磕绊绊,由于网上缺少相关资料,或者深陷于知识的海洋难以寻觅到有效的资料,因而走过不少弯 ...

  4. Java 监控基础 - 使用 JMX 监控和管理 Java 程序

    点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码网站 已经收录,有很多知识点和系列文章. 此篇文 ...

  5. 监控Tomcat解决方案(监控应用服务器系列文章分享)

    使用JMX接口开发监控程序  ◆ 全部代码需要从零开始,代码量较大  ◆ 支持各不同版本比较麻烦,每个版本可能有差异  ◆ 可支配性强  ◆ 最重要的一个缺点是,配置比较麻烦 Tomcat激活JMX远 ...

  6. Zabbix系列之三——部署JMX监控tomcat

    zabbix提供了一个java gateway的应用去监控jmx(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架.JMX可以 ...

  7. Zabbix-(六) JMX监控

    Zabbix-(六) JMX监控 一.前言 Zabbix提供了JMX监控,它通过JMX API获取JVM信息,从而提供监控数据.本文讲述使用JMX监控Tomcat的JVM信息. 准备 Zabbix S ...

  8. 如何监控Tomcat服务器

    如何监控Tomcat服务器 发表于:2009-06-25来源:作者:点击数:2651 标签:tomcatTomcat服务器 在进行 性能测试 时,一般都需要对应用服务器进行监控,监控的指标包括应用服务 ...

  9. zabbix通过jmx监控tomcat

    Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.安装jdk(版本1.7.0_79) 安装与配置比较简单,过程省略.执行java -version命令,出现类似界面表示成功.   2. ...

随机推荐

  1. java各种集合的线程安全

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  2. 转载:浏览器开发系列第一篇:如何获取最新chromium源码

    背景:     最近摊上一个事儿,领导非要让写一篇技术文章,思来想去,自己接触chrome浏览器时间也不短了,干脆就总结一下吧.于是乎,本文顺理成章.由于有些细节必需描述清楚,所以这次先讲如何拿到ch ...

  3. 编写高质量代码改善java程序的151个建议——[110-117]异常及Web项目中异常处理

    原创地址:http://www.cnblogs.com/Alandre/(泥沙砖瓦浆木匠),需要转载的,保留下! 文章宗旨:Talk is cheap show me the code. 大成若缺,其 ...

  4. 进程间通信IPC-内存共享

    函数: (1)int shmget(key_t key, int size, int shmflg),开辟或使用一块共享内存. (2)void *shmat(int shmid, const void ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  6. 最近公共祖先(least common ancestors,LCA)

    摘要: 本文主要介绍了解决LCA(最近公共祖先问题)的两种算法,分别是离线Tarjan算法和在线算法,着重展示了在具体题目中的应用细节. 最近公共祖先是指对于一棵有根树T的两个结点u和v,它们的LCA ...

  7. 南大算法设计与分析课程复习笔记(2)L2 - Asymptotics

    一.几种比较复杂度的符号 数据结构有描述,相关严格数学定义也不想说了,就这么过了吧. 二.最大子数组的几种解决方法 从最复杂的暴力解法过渡到最简单的动态规划 解析和代码见这里:http://www.c ...

  8. Spring MVC 学习总结(十一)——IDEA+Maven+多模块实现SSM框架集成

    一.SSM概要 与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC ...

  9. C#、Python中分别是怎么实现通过字符串获取实体类的值以及给实体类赋值

    一.引入 最近遇到一个项目里面的功能,在给实体类赋值的时候,由于赋值字段是动态生成的,所以如果用常用的方法(直接实体类的名称.字段名=要赋的值),将会生成很多无用的代码,所以找到了一个通过反射的赋值与 ...

  10. php opcodes运行原理

    谈下php的运行原理--Opcodes. 比如以下一段简单的代码: <?php echo '周伯通‘: ?> 执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend) ...