Zabbix通过JMX监控java中间件.docx

上传人:b****5 文档编号:28411455 上传时间:2023-07-13 格式:DOCX 页数:64 大小:3.05MB
下载 相关 举报
Zabbix通过JMX监控java中间件.docx_第1页
第1页 / 共64页
Zabbix通过JMX监控java中间件.docx_第2页
第2页 / 共64页
Zabbix通过JMX监控java中间件.docx_第3页
第3页 / 共64页
Zabbix通过JMX监控java中间件.docx_第4页
第4页 / 共64页
Zabbix通过JMX监控java中间件.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

Zabbix通过JMX监控java中间件.docx

《Zabbix通过JMX监控java中间件.docx》由会员分享,可在线阅读,更多相关《Zabbix通过JMX监控java中间件.docx(64页珍藏版)》请在冰豆网上搜索。

Zabbix通过JMX监控java中间件.docx

Zabbix通过JMX监控java中间件

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叫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-version

javaversion"1.6.0_22"

Java(TM)SERuntimeEnvironment(build1.6.0_22-b06)

JavaHotSpot(TM)64-BitServerVM(build20.12-b01,mixedmode)

出现此界面,说面jdk安装成功

2.2.安装zabbix-Java-gateway

软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得。

安装Javagateway如果原来已经安装zabbix,只需要再添加以下zabbix-java

#tarzxvfzabbix-2.2.0.tar.gz

#cdzabbix-2.2.0

#./configure--enable-java--prefix=/opt/zabbix_java

#make&&makeinstall

2.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的配置文件中有以下内容需要配置:

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|grep10052

tcp    0   0*:

10052      *:

*            LISTEN   5011/java

2.6.重启zabbix_server

#servicezabbix_serverrestart

zabbix_java_gateway就配置好了。

三、客户端配置

3.1.添加参数开启JMX

使用JMX前需要先开启JMX,默认是关闭的,在启动JAVA程序时,加入下面的参数,就可以开启JMX:

想更多的了解这些参数,可以参考下面这个链接:

3.2.开启JMX,监控tomcat

在tomcat下载页面Extras类别中下载JMX-Remote.jar二进制包。

放在tomcat/lib下面。

#mvcatalina-jmx-remote.jar /webapp/tomcat6/lib/

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=false

-Djava.rmi.server.hostname=客户端ip地址"

3.2.2.启动tomcat

 #cd/usr/local/tomcat/bin/

#./startup.sh

下载cmdline-jmxclient-0.10.3.jar文件测试是否能够取得数据

#java-jarcmdline-jmxclient-0.10.3.jar-localhost:

12345java.lang:

type=MemoryNonHeapMemoryUsage

01/26/201411:

55:

55+0800org.archive.jmx.ClientNonHeapMemoryUsage:

committed:

52690944

init:

24313856

max:

136314880

 used:

52454776

3.2.3.导入模板

成功后可以看到模板customTomcat(有朋友提供了一个更好的tomcat模板)

以获取tomcat使用内存模板为例如下图

关联模板完成后可见:

3.2.4.添加端口

设置jmxip地址及端口

成功后会显示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.sh

JAVA_OPTIONS="${JAVA_OPTIONS}-Djava.rmi.server.hostname=客户端ip地址"

JAVA_OPTIONS="${JAVA_OPTIONS}-Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote=true"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.port=端口"#默认12345

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.ssl=false"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.authenticate=false"

exportJAVA_OPTIONS

3.3.2.启动weblogic

#./stopWebLogic.sh

#./startWebLogic.sh

#ps-ef|grepAdminServer|grep-vgrep

root2955229505019:

45?

00:

00:

22/usr/java/jdk1.6.0_30/bin/java-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/Oracle/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:

/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.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=falseweblogic.Server

3.3.3.添加模板

关联自带模板

Template—JMX—Generic

设置jmxip地址及端口

完成成功后会显示JMX图标变绿,表示可用

3.3.4.出图

四、几种常用的JAVA容器的JMX开启方式

4.1.ApacheTomcat

如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行:

setCATALINA_OPTS=%CATALINA_OPTS%-Djava.rmi.server.hostname=JMX_HOST

setCATALINA_OPTS=%CATALINA_OPTS%-Djavax.management.builder.initial=

setCATALINA_OPTS=%CATALINA_OPTS%-Dcom.sun.management.jmxremote=true

setCATALINA_OPTS=%CATALINA_OPTS%-Dcom.sun.management.jmxremote.port=JMX_PORT

setCATALINA_OPTS=%CATALINA_OPTS%-Dcom.sun.management.jmxremote.ssl=false

setCATALINA_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_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的主机名或IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启tomcat,JMX就开启了。

4.2.IBMWebSphereAS

进入WebSphereAdministrativeConsoleopenServers→ServerTypes→WebSphereapplicationservers→WAS_SERVER_NAME→JavaandProcessManagement→Processdefinition→JavaVirtualMachine.

在“GenericJVMarguments”增加下面环境变量:

-Djavax.management.builder.initial=

然后再进入WebSphereAdministrativeConsole,openServers→ServerTypes→WebSphereapplicationservers→WAS_SERVER_NAME→JavaandProcessManagement→Processdefinition→JavaVirtualMachine→Customproperties.

增加下面几个环境变量:

Name:

java.rmi.server.hostname

Value:

JMX_HOST

Name:

javax.management.builder.initial

Value:

none

Name:

com.sun.management.jmxremote

Value:

true

Name:

com.sun.management.jmxremote.port

Value:

JMX_PORT

Name:

com.sun.management.jmxremote.ssl

Value:

false

Name:

com.sun.management.jmxremote.authenticate

Value:

false

应用更改,重启应用就开启了。

4.3.OracleGlassFishAS

进入GlassFishConsole,openGAS_CONFIG→JVMSettings→JVMOptions.

加入下面的环境变量到“JVMoptions”:

Value:

-Djava.rmi.server.hostname=JMX_HOST

Value:

-Dcom.sun.management.jmxremote=true

Value:

-Dcom.sun.management.jmxremote.port=JMX_PORT

Value:

-Dcom.sun.management.jmxremote.ssl=false

Value:

-Dcom.sun.management.jmxremote.authenticate=false

重启就开启了。

4.4.OracleWebLogic11g(10.23.x)and12c(12.1.x)

对于windows的版本,编辑WL_DOMAIN_HOME/bin/setDomainEnv.cmd,在文件结尾加入下面几行:

setJAVA_OPTIONS=%JAVA_OPTIONS%-Djava.rmi.server.hostname=JMX_HOST

setJAVA_OPTIONS=%JAVA_OPTIONS%-Djavax.management.builder.initial=

weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder

setJAVA_OPTIONS=%JAVA_OPTIONS%-Dcom.sun.management.jmxremote=true

setJAVA_OPTIONS=%JAVA_OPTIONS%-Dcom.sun.management.jmxremote.port=JMX_PORT

setJAVA_OPTIONS=%JAVA_OPTIONS%-Dcom.sun.management.jmxremote.ssl=false

setJAVA_OPTIONS=%JAVA_OPTIONS%-Dcom.sun.management.jmxremote.authenticate=false

对于Linux的版本,编辑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.WLSMBeanServerBuilder"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote=true"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.port=JMX_PORT"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.ssl=false"

JAVA_OPTIONS="${JAVA_OPTIONS}-Dcom.sun.management.jmxremote.authenticate=false"

exportJAVA_OPTIONS

注意JMX_HOST为weblogic的主机名或IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启weblogic,JMX就开启了。

如果你的应用不是布署在默认的应用服务器上,而是新增了一个应用服务器布署的话,应该使用下面这个方法:

进入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.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相关的信息,其它为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-jarcmdline-jmxclient.jarUSER:

PASSHOST:

PORT[BEAN][COMMAND]

如查看服务器所有Mbeans的信息:

java-jarcmdline-jmxclient-0.10.3.jar–127.0.0.1:

12345

这个命令会输出所有的Mbeans,它能方便我们查找需要的Mbeans,如我们相查找和JDBC相关的Mbens,可以使用命令:

java-jarcmdline-jmxclient-0.10.3.jar–127.0.0.1:

12345|grepJDBC

如查看JDBCConnectionPoolRuntime的信息:

java-jarcmdline-jmxclient-0.10.3.jar- 127.0.0.1:

12345com.bea:

Name=fftdb,

ServerRuntime=shfft,Type=JDBCConnectionPoolRuntime

java-jarcmdline-jmxclient-0.10.3.jar–127.0.0.1:

12345com.bea:

Name=fftdb,

ServerRuntime=shfft,Type=JDBCConnectionP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1