Zabbix通过JMX监控java中间件精品资料.docx

上传人:封****n 文档编号:96698072 上传时间:2024-03-10 格式:DOCX 页数:56 大小:3.07MB
返回 下载 相关 举报
Zabbix通过JMX监控java中间件精品资料.docx_第1页
第1页 / 共56页
Zabbix通过JMX监控java中间件精品资料.docx_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《Zabbix通过JMX监控java中间件精品资料.docx》由会员分享,可在线阅读,更多相关《Zabbix通过JMX监控java中间件精品资料.docx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Zabbix通过JMX方式监控java中间件Zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”;它是用java写的一个程序。工作原理:zabbix_server想知道一台主机上的特定的JMX值时,它向Zabbix-Java-gateway询问,而Zabbix-Javagateway使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX查询就行了。Zabbixserver有一个特殊的进程用来连接Java-gateway叫

2、StartJavaPollers;Java-gateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Java-gateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。Zabbix-Java-gateway就相当于一个代理。一、 zabbix的JMX架构二、 服务端配置(zabbix_java_gateway)2.1. 确认已安装jdk# java -versionjava version 1.6.0_22Java

3、(TM) SE Runtime Environment (build 1.6.0_22-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)出现此界面,说面jdk安装成功2.2. 安装zabbix-Java-gateway软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得。安装Javagateway如果原来已经安装zabbix,只需要再添加以下zabbix-java# tar zxvf zabbix-2.2.0.tar.gz# cd zabbix-2.2.0# ./configure -ena

4、ble-java -prefix=/opt/zabbix_java# make & make install2.3. 修改Java-gateway的配置文件在配置文件 settings.sh 中,可以配置以下参数:LISTEN_IP=0.0.0.0 #监听地址LISTEN_PORT=10052 #监听端口START_POLLERS=5 # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)2.4. 修改zabbix_server的配置文件为了支持java-gateway, zabbix_server 或 zabbix_proxy

5、的配置文件中有以下内容需要配置:JavaGateway=127.0.0.1 # JavaGateway 服务器地址,zabbix_server与zabbix_java_gateway在同一台主机JavaGatewayPort=10052 #端口StartJavaPollers=5 # 从javaGateway采集数据的进程数 2.5. 启动java-gateway#cd /opt/zabbix_java_gateway/sbin/zabbix_java#./startup.sh#netstat tulnp |grep 10052tcp 0 0 *:10052 *:* LISTEN 5011/j

6、ava2.6. 重启zabbix_server#service zabbix_server restartzabbix_java_gateway就配置好了。三、 客户端配置3.1. 添加参数开启JMX使用JMX前需要先开启JMX,默认是关闭的,在启动JAVA程序时,加入下面的参数,就可以开启JMX:想更多的了解这些参数,可以参考下面这个链接:3.2. 开启JMX,监控tomcat在 tomcat 下载页面 Extras 类别中下载 JMX-Remote.jar二进制包。放在 tomcat/lib 下面。# mv catalina-jmx-remote.jar /webapp/tomcat6/l

7、ib/3.2.1. 添加参数,开启JMX修改 tomcat/bin 目录下 catalina.sh ,添加以下内容:CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=fa lse-Djava.rmi.server.hostname=客户端ip地址3.2.2. 启动tomcat# cd /usr/local/tomcat/bin/# ./startup.sh下载cmdline-jmxcli

8、ent-0.10.3.jar文件测试是否能够取得数据#java -jar cmdline-jmxclient-0.10.3.jar -localhost:12345 java.lang:type=Memory NonHeapMemoryUsage01/26/2014 11:55:55 +0800 org.archive.jmx.Client NonHeapMemoryUsage:committed: 52690944init: 24313856max: 136314880used: 524547763.2.3. 导入模板成功后可以看到模板custom Tomcat(有朋友提供了一个更好的tom

9、cat模板)以获取tomcat使用内存模板为例如下图关联模板完成后可见:3.2.4. 添加端口设置jmx ip地址及端口成功后会显示JMX图标变绿,表示可用3.2.5. 出图3.3. 开启JMX,监控weblogic 3.3.1. 添加参数,开启JMX编辑WL_DOMAIN_HOME/bin/setDomainEnv.sh,在文件结尾加入下面几行:# vi /root/Oracle/Middleware/user_projects/domains/base_domain/bin/ setDomainEnv.shJAVA_OPTIONS=$JAVA_OPTIONS -Djava.rmi.serv

10、er.hostname=客户端ip地址 JAVA_OPTIONS=$JAVA_OPTIONS -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilderJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote=trueJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.port=端口 #默认12345JAVA_OPTIONS=$JAVA_OPTION

11、S -Dcom.sun.management.jmxremote.ssl=falseJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.authenticate=falseexport JAVA_OPTIONS3.3.2. 启动weblogic#./ stopWebLogic.sh#./ startWebLogic.sh# ps -ef | grep AdminServer | grep -v greproot 29552 29505 0 19:45 ? 00:00:22 /usr/java/jdk1.6.0_30/bin/jav

12、a -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/root/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy -Xverify:none -da -Dplatform.home=/root/Oracle/Middleware/wlserver_10.3 -Dwls.home=/root/Or

13、acle/Middleware/wlserver_10.3/server -Dweblogic.home=/root/Oracle/Middleware/wlserver_10.3/server -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/root/Oracle/Middleware/patch_wls1036/profiles/default/sysext_manifest_classpath:

14、/root/Oracle/Middleware/patch_ocp371/profiles/default/sysext_manifest_classpath -Djava.rmi.server.hostname=172.28.6.246 -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun

15、.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false weblogic.Server3.3.3. 添加模板关联自带模板TemplateJMXGeneric设置jmx ip地址及端口完成成功后会显示JMX图标变绿,表示可用3.3.4. 出图四、 几种常用的JAVA容器的JMX开启方式4.1. Apache Tomcat如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行:set CATALINA_OPTS=%CATALINA_OPTS

16、% -Djava.rmi.server.hostname=JMX_HOSTset CATALINA_OPTS=%CATALINA_OPTS% -Djavax.management.builder.initial=set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote=trueset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.port=JMX_PORTset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.man

17、agement.jmxremote.ssl=falseset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false如果是linux版本,编辑TOMCAT_HOME/bin/catalina.sh,在开头加入下面几行:CATALINA_OPTS=$CATALINA_OPTS -Djava.rmi.server.hostname=JMX_HOST CATALINA_OPTS=$CATALINA_OPTS -Djavax.management.builder.initial= CATALINA_

18、OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote=true CATALINA_OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=JMX_PORT CATALINA_OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false CATALINA_OPTS=%CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=false注意JMX_HOST为tomcat的主机名或

19、IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启tomcat,JMX就开启了。4.2. IBM WebSphere AS进入WebSphere Administrative Console open Servers Server Types WebSphere application servers WAS_SERVER_NAME Java and Process Management Process definition Java Virtual Machine.在“Generic JVM arguments”增加下面环境变量:-Djavax.management.bui

20、lder.initial=然后再进入 WebSphere Administrative Console, open Servers Server Types WebSphere application servers WAS_SERVER_NAME Java and Process Management Process definition Java Virtual Machine Custom properties.增加下面几个环境变量:Name: java.rmi.server.hostnameValue: JMX_HOSTName: javax.management.builder.in

21、itialValue: noneName: com.sun.management.jmxremoteValue: trueName: com.sun.management.jmxremote.portValue: JMX_PORTName: com.sun.management.jmxremote.sslValue: falseName: com.sun.management.jmxremote.authenticateValue: false应用更改,重启应用就开启了。4.3. Oracle GlassFish AS进入GlassFish Console, open GAS_CONFIG J

22、VM Settings JVM Options.加入下面的环境变量到“JVM options”:Value: -Djava.rmi.server.hostname=JMX_HOSTValue: -Dcom.sun.management.jmxremote=trueValue: -Dcom.sun.management.jmxremote.port=JMX_PORTValue: -Dcom.sun.management.jmxremote.ssl=falseValue: -Dcom.sun.management.jmxremote.authenticate=false重启就开启了。4.4. Or

23、acle WebLogic 11g (10.23.x) and 12c (12.1.x)对于windows的版本,编辑WL_DOMAIN_HOME/bin/setDomainEnv.cmd,在文件结尾加入下面几行:set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.rmi.server.hostname=JMX_HOSTset JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder s

24、et JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote=trueset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.port=JMX_PORTset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.ssl=falseset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.authenticate=false对于Lin

25、ux的版本,编辑WL_DOMAIN_HOME/bin/setDomainEnv.sh,在文件结尾加入下面几行:JAVA_OPTIONS=$JAVA_OPTIONS -Djava.rmi.server.hostname=客户端ip地址 JAVA_OPTIONS=$JAVA_OPTIONS -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilderJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote=trueJA

26、VA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.port=JMX_PORT JAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.ssl=falseJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.authenticate=falseexport JAVA_OPTIONS注意JMX_HOST为weblogic的主机名或IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启weblogic,J

27、MX就开启了。如果你的应用不是布署在默认的应用服务器上,而是新增了一个应用服务器布署的话,应该使用下面这个方法:进入weblogic控制台-环境-服务器-”你新增的服务器”-配置-服务器启动。在“参数”的输入框内输入:-Dcom.sun.management.jmxremote.port=JMX_PORT -Djava.rmi.server.hostname=JMX_HOST -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.management.

28、builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder然后保存,激活更改,再重启这个应用服务器就开启JMX了。五、 测试和查看JMX的配置和状态信息JMX开启后,我们就可以通过相关的工具去查看JMX内的状态信息了,通常可以使用JDK的jconsole程序查看,对于weblogic,它自带了一些工具也可以查看,可以参考官方文档(5.1. 使用JDK的jconsole程序查看jconsole在JDK_HOME/bin下面,打开它,输入服务器的IP和端口就可以连接了:com.bea下面都是Weblogic相关

29、的信息,其它为JVM级别的信息。应用服务器下的ServerRuntime这个Mbeans就是WEBLOGIC这个应用服务器的实时状态息。5.2. 使用cmdline-jmxclient-0.10.3.jar工具查看cmdline-jmxclient-0.10.3.jar是一个非常方便的查看程序,它的下载地址为:http:/crawler.archive.org/cmdline-jmxclient/使用方法:Usage: java -jar cmdline-jmxclient.jar USER:PASS HOST:PORT BEAN COMMAND如查看服务器所有Mbeans的信息:java -

30、jar cmdline-jmxclient-0.10.3.jar 127.0.0.1:12345这个命令会输出所有的Mbeans,它能方便我们查找需要的Mbeans,如我们相查找和JDBC相关的Mbens,可以使用命令:java -jar cmdline-jmxclient-0.10.3.jar 127.0.0.1:12345 | grep JDBC如查看JDBCConnectionPoolRuntime的信息:java -jar cmdline-jmxclient-0.10.3.jar -127.0.0.1:12345 com.bea:Name=fftdb,ServerRuntime=shf

31、ft,Type=JDBCConnectionPoolRuntimejava -jar cmdline-jmxclient-0.10.3.jar 127.0.0.1:12345 com.bea:Name=fftdb,ServerRuntime=shfft,Type=JDBCConnectionPoolRuntime ActiveConnectionsCurrentCount其中com.bea:Name=fftdb,ServerRuntime=shfft,Type=JDBCConnectionPoolRuntime是Mbeans名,ActiveConnectionsCurrentCount为这个M

32、beans下的一个属性。六、 Weblogic的常用性能指标JMSRuntimeJMSServersCurrentCount 返回当前JMS服务的连接数ConnectionsCurrentCount 返回本JMS服务器上当前的连接数JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数JVMRuntimeHeapSizeCurrent 返回当前JVM堆中内存数,单位时字节HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节ExecuteQueueRuntimeExe

33、cuteThreadCurrentIdleCount 返回队列中当前空闲线程数PendingRequestOldestTime 返回队列中最长的等待时间PendingRequestCurrentCount 返回队列中等待的请求数Queue Length 队列长度JDBCConnectionPoolRuntimeWaitingForConnectionHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数WaitingForConnectionCurrentCount 返回当前等待连接的总数MaxCapacity 返回JDBC池的最大能力Wait

34、SecondsHighCount 返回等待连接中的最长时间等待者的秒数ActiveConnectionsCurrentCount 返回当前活动连接总数ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大活动连接数要想了解更多Weblogic的各种运行时Mbeans信息,请参考官方文档:6.1. 添加Weblogic监控项到Zabbix新增监控项,在key内填入:jmxcom.bea:Name=$JDBC_NAME,ServerRuntime=$JDBC_SERVER,Type=JDBCConnectionPoolRun

35、time,ActiveConnectionsCurrentCount其中com.bea:Name=$JDBC_NAME,ServerRuntime=$JDBC_SERVER,Type=JDBCConnectionPoolRuntime为Mbeans,ActiveConnectionsCurrentCount为属性项。注意Type内应该选择JMX Agent最后看一张做出来的Weblogic JDBC连接池监控图:附录资料:java重点笔记归纳整理Java初级eclipse快捷键:右键REFACTER-RENAME 一改全改ALT+ENTER 查看现在项目的位置 Alt+ 当前行和下面一行交互位

36、置(特别实用,可以省去先剪切,再粘贴了) Alt+ 当前行和上面一行交互位置(同上) Ctrl+W 关闭当前Editer C+/ 注释(取消注释)选中行C+S+/ 注释多行C+S+取消注释 F2 查看完整的函数帮助信息,并且可以复制粘贴文字 ,当选中文件时,有改名作用 F3找到变量的定义 C+鼠标点击 找到变量的定义 作用和F3C差不多。 F4找到接口方法的具体实现类.=C+T F5刷新 C+F6:在打开的文件间进行切换; C+F7:在资源窗口间进行切换; C+F8:在各种模式间进行切换; C+E:选择某个打开的文件; C+S+r:打开一个文件; c+s+t:打开一个类; c+s+f:格式化代

37、码; C+S+O:导入需要的类 c+o:查看类结构; c+t:列出子类或接口实现类(类的等级结构) Ctrl+Alt+ 复制当前行到下一行(复制增加) Ctrl+Alt+ 复制当前行到上一行(复制增加) CtrlK (加SHIFT是向上)向下查找选中的字符串 Ctrlshift 向上向下查找一个函数和变量 Java基础知识1.Java是Sun公司的JamesGosling发明的面向对象的可跨平台的编程语言。2.SUN公司,Stanford University Network,斯坦福大学;3.平台:我们把cpu处理器与操作系统的整体叫做平台。不同的操作系统支持不同的cpu指令集。不同的cup有

38、不同的指令集,如intel和AMD.4.JDK:Java Software Develop Kit. JVM:Java Virtual Machine.Java虚拟机,包含:类加载器,字节码校验器,java解释器。 JRE:java运行时环境,包含jvm与java运行支持类库。5.环境变量:java_home;classpath:.;C:Javajdk1.6.0_10lib;path6.jdkjdk1.1为jvm增加了JIT(即时编译)编译器;jdk1.2也叫java2;jdk1.5也叫java5(改动较大);现在使用的是jdk1.6。7.jdk,Java Developent ToolKit

39、;开发java需要有源程序文件到中间文件的编译器;运行java中间文件需要对应平台的解释器(官方叫法JVM);编译器、解释器加上一些其它的组件合称为JDK.JDK的另外一个称呼为Java Software develop kit.JDK即开发java程序的组件。jdk=java编译器+jre(java运行环境) jre=jvm+运行支持类库 eclipse和jbuilder本身自带了java编译器但不包含jre。8.jre:Java Runtime Environment,java运行时需要的环境。有两类,开发需要的jre和公共jre。9.jdk版本,jdk1.2到jdk1.4为java2时代

40、,java技术有j2ee,j2se,jeme.jdk1.5,也叫做java5,技术术语改为javase,javaee,javame.1.5在1.4的基础上改动很大。10.常用的DOS命令:dir,现实当前文件夹的所有文件;cd . 打开上级目录;exit:退出。11.java注释:java注释分为三种单行注释,多行注释,文档注释,文档注释结果为:/*换行*/,文档注释在帮助文档里面有显示。12.javadoc帮助文档,javadoc可执行程序可生成帮助文档,用法如下:javadoc Test01.java13.java 打包jar,用法见cmd输入jar;ant也是一种打包成jar的工具,其功

41、能叫jar更加强大;除了jar包外,java文件包还有war,ear两种格式。14.java缺点:运行速度慢,占用资源多是java的缺点;其原因是:class需要二次编译,解释执行;jvm运行占用资源;无指针无法直接操作内存,垃圾回收线程占用资源,并且不会实时收集内存。15.JVM,JAVA虚拟机即java解释器;JVM执行.class文件需要三步:类加载器加载;校验器检查错误,执行文件。在执行的时候有两种方法:a.解释器直接执行;b.JIT代码生成器搞定。16.两种解释执行方法的区别:直接解释执行是1.1版本的,其直接翻译class文件,速度必然比机器执行二进制文件的速度慢;1.2版本后引入

42、JIT,即将class文件先转换为二进制文件,再执行二进制文件,下次执行时可直接执行二进制文件。15.JIT(即时编译):java即时编译技术,可执行java代码的运行速度。17.IDE工具 IDE:Integrated Development Environment,集成开发环境。18.开发java的IDE工具:JCREATOR,JBUILDER,ECLIPSE,NETBEANS.20.拷贝项目的三种方式:a.拷贝整个工作空间,切换工作空间。b.拷贝项目,导入项目。c.只拷贝源代码(即src文件夹),从新建的项目导入。22.转义字符:单引号:;双引号:;反斜杠:;回车:n;水平制表符:t;换

43、行:r. 转义字符一般出现在字符串中时,要是以原型输入,则输出一定报错,只有以转换后的才能显示。23.数据类型转换:byte char short int long float double,String,小杯到大杯自动转换,但是大杯到小杯强制转换。一般的格式:标变量=(目标类型)源变量,特殊的,String转换为其它,int a = Integer.parseInt(str1);float b = Float.parseFloat(str2);boolean c = Boolean.parseBoolean(str3);24.内存分配 基本数据类型只在栈中分配内存;应用数据类型不仅在栈中分配

44、内存,还在堆中分配内存,在变量声明时,在栈中分配内存,当创建对象时,在堆中分配内存。25.值传递和引用传递 本人去见网友叫按引用传递;替身去见网友叫做按值传递。引用传递参数数值改变,按值传递参数值不变。基本数据类型就是按值传递的,又称为值类型,而引用类型是按引用传递的。String 虽然是按引用传递的,但是传递给的新变量会有属于自己的堆内存,所以,String值不变。包: 开发中最好在导入包和类的过程中,最好是使用哪个类就导入那个类,不要导入包。27.包的命名规则:反写的企业域名.功能名.模块名28.系统包(SUN提供的包)默认包-java.lang.常用包 java.lang: java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 java.lang.reflect:提供用于反射对象的工具 java.io: java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出等 java.util:常用的工具类,如集合框架类,日期处理类等。主题:旺旺老师软件工程师实训教程-JAVASE 第六章:包与 JAVA 常用类 jav

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 互联网

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁