jmx采集方式

jmx采集方式
实验环境为server4为zabbix-server ,server5为zabbix-agent,此时两台虚拟机上以及配置好了zabbix服务
一、JMX的定义

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。这是官方文档上的定义,我看过很多次也无法很好的理解。我个人的理解是JMX让程序有被管理的功能,例如你开发一个WEB网站,它是在24小时不间断运行,那么你肯定会对网站进行监控,如每天的UV、PV是多少;又或者在业务高峰的期间,你想对接口进行限流,就必须去修改接口并发的配置值。

应用场景:中间件软件WebLogic的管理页面就是基于JMX开发的,而JBoss则整个系统都基于JMX构架。

对于一些参数的修改,网上有一段描述还是比较形象的:

1、程序初哥一般是写死在程序中,到要改变的时候就去修改代码,然后重新编译发布。

2、程序熟手则配置在文件中(JAVA一般都是properties文件),到要改变的时候只要修改配置文件,但还是必须重启系统,以便读取配置文件里最新的值。

3、程序好手则会写一段代码,把配置值缓存起来,系统在获取的时候,先看看配置文件有没有改动,如有改动则重新从配置里读取,否则从缓存里读取。

4、程序高手则懂得物为我所用,用JMX把需要配置的属性集中在一个类中,然后写一个MBean,再进行相关配置。另外JMX还提供了一个工具页,以方便我们对参数值进行修改。
二、JMX架构图:

jmx采集方式

[[email protected] 3.4]# yum install zabbix-java-gateway-3.4.6-1.el7.x86_64.rpm -y ##安装软件包##
[[email protected] 3.4]# cd /etc/zabbix/
[[email protected] zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_java_gateway.conf zabbix_java_gateway_logback.xml zabbix_proxy.conf zabbix_server.conf
[[email protected] zabbix]# systemctl start zabbix-java-gateway.service
[[email protected] zabbix]# vim zabbix_server.conf ##修改配置文件,默认端口为1052##
jmx采集方式
[[email protected] zabbix]# systemctl restart zabbix-server.service

在server5上
systemctl start zabbix-agent
[[email protected] ~]# nginx ##开启nginx##
[[email protected] ~]# systemctl start zabbix-agent
[[email protected] ~]# ls
anaconda-ks.cfg nginx-1.14.2 nginx-1.14.2.tar.gz zabbix-agent-3.4.6-1.el7.x86_64.rpm
[[email protected] ~]# rpm -qa|grep java
[[email protected] ~]# rpm -qa|grep jdk
[[email protected] ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
[[email protected] local]# ln -s apache-tomcat-7.0.37/ tomcat
[[email protected] local]# cd tomcat/
[[email protected] tomcat]# cd bin/
[[email protected] bin]# ls
bootstrap.jar catalina-tasks.xml configtest.bat daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
catalina.bat commons-daemon.jar configtest.sh digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
catalina.sh commons-daemon-native.tar.gz cpappend.bat digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
[[email protected] bin]# vim catalina.sh

jmx采集方式

此时的路径为:/usr/local/tomcat/bin
[[email protected] bin]# ls
bootstrap.jar catalina.sh commons-daemon-native.tar.gz cpappend.bat digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
catalina catalina-tasks.xml configtest.bat daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
catalina.bat commons-daemon.jar configtest.sh digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
[[email protected] bin]# cd .
[[email protected] bin]# cd
[[email protected] ~]# ls
anaconda-ks.cfg apache-tomcat-7.0.37.tar.gz jdk-8u121-linux-x64.rpm nginx-1.14.2 nginx-1.14.2.tar.gz zabbix-agent-3.4.6-1.el7.x86_64.rpm
[[email protected] ~]# yum install jdk-8u121-linux-x64.rpm -y
[[email protected] ~]# cd /usr/local/tomcat/bin
[[email protected] bin]# ls
bootstrap.jar catalina.sh commons-daemon-native.tar.gz cpappend.bat digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
catalina catalina-tasks.xml configtest.bat daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
catalina.bat commons-daemon.jar configtest.sh digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
[[email protected] bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
创建主机,改端口为8888
jmx采集方式
添加模版

jmx采集方式