安装与配置Java Agent
要监控Java应用和Java虚拟机,在透视宝云端的“配置→应用”页面中选择“Java”语言,按照页面中的引导安装Java Agent,详细说明如下。
授权编号是透视宝用户身份识别的License Key,每个用户对应一个唯一的授权编号,在后续配置中需要使用。
SendProxy是主机与透视宝平台通讯的插件,如果您的主机需要与透视宝平台直接通讯且没有安装过SendProxy,请下载并安装该插件,详细说明请参考“安装SendProxy”。
Java Agent支持Linux、Windows、Aix操作系统,支持JDK1.5及以上版本,但JDK1.5需下载单独的安装包。
选择JDK版本后点击<下载Java Agent(版本)>按钮或复制Wget链接,下载最新版本的Java Agent安装包。
提示:Java Agent(V2.0.17)及以上版本默认支持批量发送,使用(V2.0.17)以下版本的客户更新时需要先更新至Sendproxy_2.2.0或改为单次发送。
1、创建cloudwise文件夹(如/var/cloudwise)并确保拥有读写权限,例如:
mkdir -p /var/cloudwise
2、解压缩安装包到cloudwise目录,例如:
unzip JavaAgent_2.0.0.zip -d /var/cloudwise
3、进入Java Agent目录(如JavaAgent_2.0.0),配置License Key,例如:
java -jar javaagent-bootstrap.jar -l 'J45Engw88Ner03Dg/So6MhERjkvt8hwk72kuJ7ewFzTv9vyfnhxvRg!!!!'
4、配置SendProxy地址(可选)
Java Agent默认设置由本机SendProxy发送数据,如果需要从其他主机发送数据,则需要配置可用的SendProxy地址,例如:
java -jar javaagent-bootstrap.jar -s 'http://10.0.3.46:26789'
5、执行如下命令启动Java Agent:
java -jar javaagent-bootstrap.jar start
6、配置Web容器
安装Java Agent后,您需要根据应用的服务器配置对应的Web容器,详细说明请参考“配置Web容器”。
注意:配置完成后,请重启对应的Web容器。
7、监控Java虚拟机
安装JavaAgent并配置Web容器后,可以在透视宝的“主机→JVM”页面查看JVM运行状态。
要深入监控JVM,请参考“配置Java Agent”配置相关参数。
8、监控Docker
安装JavaAgent在docker中,需要下载AgentService,才能更好的展示Docker中的应用,请参考“在Docker中安装Java Agent”按流程安装。
安装配置完成后,大致两分钟后您就可以在“应用”模块中查看数据。 注:从来没人访问过的应用不会出现在应用清单中。
1、解压缩安装包。
2、进入Java Agent目录(如JavaAgent_2.0.0),配置License Key,例如:
java -jar javaagent-bootstrap.jar -l J45Engw88Ner03Dg/So6MhERjkvt8hwk72kuJ7ewFzTv9vyfnhxvRg!!!!
3、配置SendProxy地址(可选)
Java Agent默认设置由本机SendProxy发送数据,如果需要从其他主机发送数据,则需要配置可用的SendProxy地址,例如:
java -jar javaagent-bootstrap.jar -s http://10.0.3.46:26789
4、执行如下命令启动Java Agent:
java -jar javaagent-bootstrap.jar start
5、配置Web容器
安装Java Agent后,您需要根据应用的服务器配置对应的Web容器,详细说明请参考“配置Web容器”。
6、监控Java虚拟机
安装JavaAgent并配置Web容器后,可以在透视宝的“主机→JVM”页面查看JVM运行状态。
要深入监控JVM,请参考“配置Java Agent”配置相关参数。
安装配置完成后,大致两分钟后您就可以在“应用”模块中查看数据。 注:从来没人访问过的应用不会出现在应用清单中。
要监控Docker中的Java应用,需要安装Java Agent、AgentService和SendProxy,请按照下述步骤进行安装。
版本说明:本安装说明仅针对JavaAgent_2.1.2及AgentService_1.0.2以上(含)版本,使用老版本探针请及时升级,或沿用以往部署安装方式。
注意:该安装方法仅适用于使用Dockerfile构建镜像的场景,同时请确保Docker镜像中安装有curl命令。
1、首先在透视宝云端的“配置→应用”页面下载Java Agent、Agent Service和SendProxy安装包。
2、将下载的压缩包拷贝到宿主机系统的某个目录下(如/var/cloudwise,后续相关步骤均以此目录为例)并解压,例如:
unzip AgentService.zip -d /var/cloudwise unzip JavaAgent.zip –d /var/cloudwise unzip SendProxy.zip –d /var/cloudwise
3、通过基础镜像启动容器,复制容器中的catalina.sh文件到/var/cloudwise目录下,并在复制后的文件中添加如下代码,请将命令中的{javaagent目录名称}替换为Java Agent在docker中的目录,例如/var/cloudwise
if [ "$1" = "start" -o "$1" = "run" ]; then export JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:{javaagent目录名称}/conf/ -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/" fi
4、常规部署如下:
将AgentService目录中的startup.sh_javaagent_demo文件(不包含#!/bin/bash)内容拷贝到catalina.sh文件中内容的最上方,startup.sh_javaagent_demo文件(不包含#!/bin/bash)内容如下(注意修改JavaAgent所在目录路径):
hosts=`grep $(hostname) /etc/hosts | awk -F. '{print $1"."$2"."$3"."1}' | head -1` #export hosts=${hosts} cw_hostip=`curl http://${hosts}:27799/smartagent/getHostIP 2>/dev/null` if [ ! -n "${cw_hostip}" ] || [ "${cw_hostip}x" = "x" ];then echo "is null" hosts=`grep $(hostname) /etc/hosts | awk -F. '{print $1"."$2"."42"."1}' | head -1` cw_hostip=`curl http://${hosts}:27799/smartagent/getHostIP 2>/dev/null` else echo "not is null" fi export hosts=${hosts} export cwhostip=${cw_hostip} echo ${cwhostip} export cwapptype=2 hostKeyApi="http://${hosts}:27799/smartagent/getHostKey" hostKeySa=`curl $hostKeyApi 2>/dev/null` sendProxy="http://${hosts}:26789" export hostKey=${hostKeySa} export sendProxy=${sendProxy} java -jar /var/cloudwise/JavaAgent_2.1.1/javaagent-bootstrap.jar startindocker #the '/var/cloudwise/JavaAgent_2.1.1' : Directory for the JavaAgent in the container
其他部署环境:
run jar部署如下:
docker环境jar作为主进程支撑docker容器时,把相关的容器启动参数加入jar的启动参数中; 在执行jar之前调用startup.sh脚本文件,如:
主进程脚本:
#/bin/bash bash /var/cloudwise/startup.sh java -Xbootclasspath/p:{javaagent目录名称}/conf/ \ -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/ \ –jar xxx.jar
startup.sh脚本:
#/bin/bash hosts=`grep $(hostname) /etc/hosts | awk -F. '{print $1"."$2"."$3"."1}' | head -1` #export hosts=${hosts} cw_hostip=`curl http://${hosts}:27799/smartagent/getHostIP 2>/dev/null` if [ ! -n "${cw_hostip}" ] || [ "${cw_hostip}x" = "x" ];then echo "is null" hosts=`grep $(hostname) /etc/hosts | awk -F. '{print $1"."$2"."42"."1}' | head -1` cw_hostip=`curl http://${hosts}:27799/smartagent/getHostIP 2>/dev/null` else echo "not is null" fi export hosts=${hosts} export cwhostip=${cw_hostip} echo ${cwhostip} export cwapptype=2 hostKeyApi="http://${hosts}:27799/smartagent/getHostKey" hostKeySa=`curl $hostKeyApi 2>/dev/null` sendProxy="http://${hosts}:26789" export hostKey=${hostKeySa} export sendProxy=${sendProxy} java -jar /var/cloudwise/JavaAgent_2.1.1/javaagent-bootstrap.jar startindocker #the '/var/cloudwise/JavaAgent_2.1.1' : Directory for the JavaAgent in the container
5、将AgentService中的Dockerfile_javaagent_demo移动到上一层,并修改名称为Dockerfile,修改命令如下:
cp Dockerfile_javaagent_demo ../Dockerfile
6、修改Dockerfile配置,将JavaAgent文件加入到docker镜像(注意:按截图中的注释修改文件内容)
FROM tomcat:7-jre8 #tomcat:7-jre8为新镜像的基础镜像 ADD ./JavaAgent_2.0.14/ /var/cloudwise/JavaAgent_2.0.14 #./ 为Dockerfile所在目录的相对路径, /var/cloudwise/ 为镜像的绝对路径 ADD ./catalina.sh /usr/local/tomcat/bin/catalina.sh #./catalina.sh 为Dockerfile所在目录的相对路径, #/usr/local/tomcat/bin/catalina.sh为镜像下catalina.sh文件的绝对路径
7、在Dockerfile所在目录(如/data)下运行如下命令,创建新镜像(注意最后有一个点)
docker build -t <new_image> .
8、进入/var/cloudwise/SendProxy目录,启动SendProxy
./SendProxy.sh restart
9、进入/var/cloudwise/AgentService目录,配置License Key
./init_licensekey.sh -c ‘J45Engw88Nc/fR1k7e53nvDuCBhOY1YDQll8UqotxYgsR5VnW1eKWg!!!!’
10、进入/var/cloudwise/AgentService目录,启动AgentService
./AgentService.sh start
11、通过生成的新镜像启动容器
(将本地的8080端口映射到容器的8080端口,实现外部访问容器)
docker run -dit -p 8080:8080 --name test_java_agent <new_image>
安装Java Agent后,您可以在Java Agent conf目录中的agent.properties文件中对JavaAgent进行配置,主要配置项及相关说明见下表,其中动态生效项在修改后不需要重启应用,非动态生效项在修改后需重启应用。
配置项 | 默认值 | 动态生效 | 配置描述 |
HostKey | MyHostKey | 否 | 探针身份识别字符串,探针在执行start命令成功后该值会替换为一长字符串 |
js | 否 | 是否开启web页面用户体验监控,可配置tomcat7,tomcat8,weblogic12,视运行容器而定,开启后将自动注入JS代码至web页面源码 | |
SendProxy | 否 | 数据发送代理地址 | |
jsEnvAdd | portal.toushibao.com/rum/EndUserAgent.js?v=1.2.0 | 否 | js配置项非空时生效,即自动注入js代码中js文件的地址,私有化部署透视宝平台时该值需修改 |
agent.log.level | ERROR | 是 | 探针日志级别 |
http.trace.exclude | ~.*js;~.*jpg;~.*css;~.*png;~.*jpeg;~.*gif | 是 | 配置不监控哪些url性能,例如设置为“~.*js;~.*css;~.*jpg”,则排除所有以js、css、jpg结尾的url,不获取以js、css、jpg结尾的url的数据 |
sqlParam | false | 否 | 是否获取SQL中参数信息 |
param | true | 否 | 是否获取request中的所有参数 |
packg.include | 是 | 配置应用请求执行过程中获取哪些代码的详细耗时,需要设置Java程序的包名,例如"com.aa.service" 。 | |
appname | defaultJVM | 否 | 配置应用实例名称 ,目前仅用于更改JVM名称 |
jvm_period | 60 | 否 | JVM数据发送频率,单位为秒 |
objectTrace | true | 是 | 是否开启对象追踪,默认开启,需配置count_pack 指定包路径 |
count_pack | 是 | 开启对象追踪后,用于指定需要监控的包空间下的对象,例如需要监控com.neu下的所有对象,则将count_pack的值设置为com.neu.*,有多个包时需要以分号分割,如"com.neu*;com.baidu.bean"。 | |
dumpThread | false | 是 | 是否开启线程监控功能 |
debug | false | 是 | 是否开启CPU分析器相关的对象追踪,默认不开启。需配置debugPackage指定包路径 |
debugPackg | 是 | 用于指定需要监控的CPU分析器相关的对象包路径 | |
batch | true | 否 | JavaAgent(2.0.17及以上版本)支持批量及单次两种数据发送方式,bath默认为true,代表采用批量方式发送数据,有助于降低资源占用,false代表采用单次方式发送数据。 批量方式发送数据需配合使用2.2.0及以上版本SendProxy,单次方式无此限制。 |
安装配置Java Agent后,根据Java应用运行的Web容器,您还需要在监控主机中配置对应Web容器的JVM运行参数,配置完成后需重启容器。
如果Java应用运行在Tomcat容器中,需要在Tomcat中配置JVM运行参数。
在Tomcat 的catalina.sh文件中搜索到“Execute The Requested Command”,该文件一般位于Tomcat安装目录的bin目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
if [ "$1" = "start" -o "$1" = "run" ]; then export JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:{javaagent目录名称}/conf/ -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/" fi
配置完成后,重新启动Tomcat。
在Tomcat的catalina.bat文件中搜索到“rem Execute Java”,该文件一般位于Tomcat安装目录的bin目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
if "%1"=="stop" goto end_javaagent set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\" :end_javaagent
配置完成后,需要重新启动Tomcat。
如果Java应用运行在Jboss容器中,需要在Jboss中配置JVM运行参数。
1、配置standalone.sh文件
在standalone.sh文件中搜索到“# Display our environment”,该文件一般位于Jboss安装目录的bin目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
export JAVA_OPTS="$JAVA_OPTS -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/ -Djava.util.logging.manager=org.jboss.logmanager.LogManager" export JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/modules/org/apache/log4j/main/log4j-1.2.16.jar -Xbootclasspath/p:$JBOSS_HOME/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar -Xbootclasspath/p:$JBOSS_HOME/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.2.GA.jar -Xbootclasspath/p:{javaagent目录名称}/conf"
2、配置standalone.conf文件
在standalone.conf文件内搜索“if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then”,该文件一般位于Jboss安装目录的bin目录下。
如果没有,添加如下命令至文件内。
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.cloudwise.agent.core.intercept,org.jboss.logmanager" Fi
如果有,只需将“com.cloudwise.agent.core.intercept”赋值给JBOSS_MODULES_SYSTEM_PKGS即可。
3、配置完成后,重新启动Jboss。
1、配置standalone.bat文件
在standalone.bat文件中搜索到“JBoss Bootstrap Environment”,该文件一般位于Jboss安装目录的bin目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\ -Djava.util.logging.manager=org.jboss.logmanager.LogManager" set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:%JBOSS_HOME%\modules\org\apache\log4j\main\log4j-1.2.16.jar -Xbootclasspath/p:%JBOSS_HOME%\modules\org\jboss\logmanager\log4j\main\jboss-logmanager-log4j-1.0.0.GA.jar -Xbootclasspath/p:%JBOSS_HOME%\modules\org\jboss\logmanager\main\jboss-logmanager-1.2.2.GA.jar -Xbootclasspath/p: {javaagent目录名称}\conf
2、配置standalone.conf.bat文件
在standalone.conf.bat文件中搜索“-Djboss.modules.system.pkgs=”,该文件一般位于Jboss安装目录的bin目录下。
将 “com.cloudwise.agent.core.intercept”赋值给-Djboss.modules.system.pkgs即可。
添加界面如下图所示:
3、配置完成后,重新启动Jboss。
如果Java应用运行在Weblogic容器中,需要在Weblogic中配置JVM运行参数。
1、配置weblogic.policy文件
在weblogic.policy文件中搜索到“Web App default permissions”,该文件在Weblogic安装目录的wlserver/server/lib目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
grant codeBase "file:/{javaagent目录名称}/-" { permission java.security.AllPermission; }
2、配置startWebLogic.sh文件
在startWebLogic.sh文件中搜索到“if [ "${WLS_REDIRECT_LOG}" = "" ] ; then”,该文件在Weblogic安装目录的user_projects/domains/{domain_name}/bin目录下。其中,{domain_name}代表某个域。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
export JAVA_OPTIONS="$JAVA_OPTIONS -Xbootclasspath/p:{javaagent目录名称}/conf -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/"
3、配置完成后,重启weblogic。
1、配置weblogic.policy文件
在weblogic.policy文件中搜索到“Web App default permissions”,该文件在Weblogic安装目录的wlserver/server/lib目录下。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
grant codeBase "file:/{javaagent目录名称}/-" { permission java.security.AllPermission; };
2、配置startWebLogic.cmd文件
在startWebLogic. cmd文件中搜索到“if "%WLS_REDIRECT_LOG%"==""”,该文件在Weblogic安装目录的user_projects\domains\{domain_name}\bin目录下。其中,{domain_name}代表某个域。
在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
set "JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\ -Xbootclasspath/p:{javaagent目录名称}\conf"
3、配置完成后,重启weblogic。
如果Java应用运行在Jetty容器中,需要在Jetty中配置JVM运行参数。
在jetty.sh文件中搜索到“Add jetty properties to Java VM options”,该文件一般位于Jetty安装目录的bin目录下。
在注释下方的JAVA_OPTIONS的下方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
JAVA_OPTIONS="$JAVA_OPTIONS -Xbootclasspath/p:{javaagent目录名称}/conf -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/"
配置完成后,重新启动Jetty。
在Windows下可以采用以下两种方式来配置Jetty:
通过新建脚本配置
在Jetty根目录下新建 jettyStart.bat脚本文件,如下图所示。
如果配置了JAVA_HOME环境变量,在脚本中添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
set JAVA=%JAVA_HOME%\bin\java set JAVA_OPTS=-Xbootclasspath/p:{javaagent目录名称}\conf javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称 }\ "%JAVA%" %JAVA_OPTS% -jar start.jar
如果没有配置JAVA_HOME环境变量,在脚本中添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
set JAVA_HOME=D:\app\Java8_64\jdk1.8.0_60 set JAVA=%JAVA_HOME%\bin\java set JAVA_OPTS=-Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\ "%JAVA%" %JAVA_OPTS% -jar start.jar
配置完成,使用 jettyStart.bat 脚本重新启动Jetty即可。
通过start.ini文件配置
如果Jetty的版本为Jetty7/8/9且作为Windows启动服务时,可配置start.ini文件,该文件一般位于Jetty的根目录下。
在start.ini文件中搜索到“-XX:CMSInitiatingOccupancyFraction=80”,在该行上方添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}
配置完成后,重新启动Jetty。
如果Java应用运行在WebSphere容器中,需要在WebSphere中配置JVM运行参数。
您可以在控制台中配置WebSphere,也可以通过修改配置文件server.xml来配置。
启动服务后,以管理员身份登录到 WebSphere的控制台,在左侧导航栏中选择“服务器→服务器类型→WebSphere Application Server”,在右侧的应用程序服务器列表中选择待监控server,如下图所示。
在应用程序服务器的配置页面,选择“Java和进程管理→进程定义”,如下图所示。
在进程定义的配置页面,选择其他属性中的“Java虚拟机”,如下图所示。
在Java虚拟机的配置页面,找到“通用JVM参数”配置项,在对应的编辑框中输入以下命令(请根据操作系统选择),请将命令中的{javaagent目录名称}替换为Java Agent的目录。
Linux系统中输入以下命令:
-Xbootclasspath/p:{javaAgent目录名称}/conf/ -javaagent:{javaAgent目录名称}/lib/CAgent-1.0.0.jar={javaAgent目录名称}/
Windows系统中输入以下命令:
-Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\
配置完成后,需重新启动WebSphere。
在Linux下配置WebSphere
参考以下目录找到WebSphere待监控服务对应的server.xml配置文件,请将${WebSphere_home}替换为WebSphere的安装目录,将<*-name> 替换为相应的服务器、节点或服务名称:
${WebSphere_home}\profiles\<appsrv-name>\config\cells\<cell-name>\nodes\<node-name>\servers\<server-name>\server.xml
在server.xml文件中搜索到jvmentries配置项,在“genericJvmArguments“中添加以下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaAgent目录名称}/conf/ -javaagent:{javaAgent目录名称}/lib/CAgent-1.0.0.jar={javaAgent目录名称}/
配置完成后,需重新启动WebSphere。
在Windows下配置WebSphere
参考以下目录找到WebSphere待监控服务对应的server.xml配置文件,请将${WebSphere_home}替换为WebSphere的安装目录,将<*-name> 替换为相应的服务器、节点或服务名称:
${WebSphere_home}\profiles\<appsrv-name>\config\cells\<cell-name>\nodes\<node-name>\servers\<server-name>\server.xml
在server.xml文件中搜索到jvmentries配置项,在“genericJvmArguments“中添加以下命令,在请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\
配置完成后,需重新启动WebSphere。
如果Java应用运行在Resin容器中,需要在Resin中配置JVM运行参数。
您可以通过以下两种方式来配置Resin,不同版本的Resin配置方式也有所不同。
配置cluster-default.xml或resin.xml文件
Resin版本为4.x时,需修改cluster-default.xml 文件;Resin版本为3.x时,需修改resin.xml文件。文件一般位于Resin安装目录的conf目录下。
在文件中搜索到“<server-default>”配置项,在该配置项的开头添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
<jvm-arg>-Xbootclasspath/p:{javaagent目录名称}/conf</jvm-arg> <jvm-arg>-javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/</jvm-arg>
配置完成后,需重新启动Resin。
修改resin.properties文件
Resin版本为4.x时,还可以修改resin.properties文件,该文件一般位于Resin安装目录的conf目录下。
在文件中搜索到“jvm_args”,如果该行已被注释掉,请首先删除该行前面的注释符。然后,在该行的最后添加空格及如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaagent目录名称}/conf -javaagent:{javaagent目录名称}/lib/CAgent-1.0.0.jar={javaagent目录名称}/
配置完成后,需重新启动Resin。
您可以通过以下两种方式来配置Resin,不同版本的Resin配置方式也有所不同。
修改cluster-default.xml或resin.xml文件
Resin版本为4.x时,需修改cluster-default.xml 文件;Resin版本为3.x时,需修改resin.xml文件。文件一般位于Resin安装目录的conf目录下。
在文件中搜索到“<server-default>”,在该配置项的开头添加以下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
<jvm-arg>-Xbootclasspath/p:{javaagent目录名称}\conf</jvm-arg> <jvm-arg>-javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\</jvm-arg>
配置完成后,需重新启动Resin。
修改resin.properties文件
Resin版本为4.x时,还可以修改resin.properties文件,该文件一般位于Resin安装目录的conf目录下。
在文件中搜索到“jvm_args”,如果该行已被注释掉,请首先删除该行前面的注释符。然后,在该行的最后添加空格及以下命令,,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaagent目录名称}\conf -javaagent:{javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\
配置完成后,需重新启动Resin。
如果Java应用运行在Karaf容器中,需要在Karaf中配置JVM运行参数。
配置JVM运行参数前,还需要进行安全配置。
安全配置
在config.properties文件中搜索找到“org.osgi.framework.bootdelegation”,该文件一般位于Karaf安装目录的etc目录下。
在该配置项最后添加“,com.cloudwise.*”,或者添加”,\“后换行后再输入“com.cloudwise.*”,如:
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom, com.cloudwise.*
添加界面如下图所示:
启动配置
在karaf文件中搜索到cd "$KARAF_BASE",该文件一般位于Karaf安装目录的bin目录下。
在该行下方,最终执行 JAVA 命令之前的位置添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:{javaAgent目录名称}/conf/ -javaagent:{javaAgent目录名称}/lib/CAgent-1.0.0.jar={javaAgent目录名称}/
重启Karaf
配置完成后,需重新启动Karaf。
配置JVM运行参数前,还需要进行安全配置。
安全配置
在config.properties文件中搜索到“org.osgi.framework.bootdelegation”,该文件一般位于Karaf安装目录的etc目录下。
在该配置项最后添加“,com.cloudwise.*”,或者添加”,\“后换行后再输入“com.cloudwise.*”,如:
org.osgi.framework.bootdelegation=org.apache.karaf.jaas.boot,sun.*,com.sun.*,javax.transaction,javax.transaction.*,javax.xml.crypto,javax.xml.crypto.*,org.apache.xerces.jaxp.datatype,org.apache.xerces.stax,org.apache.xerces.parsers,org.apache.xerces.jaxp,org.apache.xerces.jaxp.validation,org.apache.xerces.dom, \ com.cloudwise.*
添加界面如下图所示:
启动配置
在karaf.bat文件中搜索到cd "%KARAF_BASE%",该文件一般位于Karaf安装目录的bin目录下。
在该行上方,最终执行 JAVA 命令之前添加如下命令,请将命令中的{javaagent目录名称}替换为Java Agent的目录。
set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:{javaagent目录名称}\conf -javaagent: {javaagent目录名称}\lib\CAgent-1.0.0.jar={javaagent目录名称}\"
重启Karaf
配置完成后,需重新启动Karaf。
如果Java应用运行在WildFly容器中,需要在WildFly中配置JVM运行参数。
下面以standalone启动方式,wildfly-8.2.1.Final/bin/standalone.conf为例进行说明。
配置日志相关jar
在wildfly-8.2.1.Final/bin/standalone.conf中配置以下信息:
-Xbootclasspath/p:/root/wxytest/wildfly-8.2.1.Final/modules/system/layers/base/org/jboss/logging/jul-to-slf4j-stub/main/jul-to-slf4j-stub-1.0.1.Final.jar -Xbootclasspath/p:/root/wxytest/wildfly-8.2.1.Final/modules/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.4.GA.jar -Xbootclasspath/p:/root/wxytest/wildfly-8.2.1.Final/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.1.0.Final.jar -Xbootclasspath/p:/root/wxytest/wildfly-8.2.1.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-1.5.2.Final.jar
注意:不同版本的wildfly需要配置的jar版本可能不同。
配置JAVA_OPTS支持参数
-Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,com.cloudwise.agent
配置日志管理器
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
配置Java Agent
请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:{javaAgent目录名称}/conf/ -javaagent:{javaAgent目录名称}/lib/CAgent-1.0.0.jar={javaAgent目录名称}/
下面以standalone启动方式,wildfly-8.2.1.Final/bin/standalone.conf.bat为例进行说明。
配置日志相关jar
在wildfly-8.2.1.Final/bin/standalone.conf.bat中配置以下信息:
-Xbootclasspath/p:D:\wildfly-8.2.1.Final\modules\system\layers\base\org\jboss\logging\jul-to-slf4j-stub\main\jul-to-slf4j-stub-1.0.1.Final.jar -Xbootclasspath/p:D:\wildfly-8.2.1.Final\modules\system\layers\base\org\jboss\logging\main\jboss-logging-3.1.4.GA.jar -Xbootclasspath/p:D:\wildfly-8.2.1.Final\modules\system\layers\base\org\jboss\log4j\logmanager\main\log4j-jboss-logmanager-1.1.0.Final.jar -Xbootclasspath/p:D:\wildfly-8.2.1.Final\modules\system\layers\base\org\jboss\logmanager\main\jboss-logmanager-1.5.2.Final.jar
注意:不同版本的wildfly需要配置的jar版本可能不同。
配置JAVA_OPTS支持参数
-Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,com.cloudwise.agent
配置日志管理器
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
配置Java Agent
请将命令中的{javaagent目录名称}替换为Java Agent的目录。
-Xbootclasspath/p:D:{javaagent目录名称}\conf -javaagent:D:{javaagent目录名称}\lib\CAgent-1.0.0.jar=D:{javaagent目录名称}\
目前,Java Agent支持的JDK、应用框架、应用服务器、数据库等说明如下:
类型 | 支持类型/版本 |
Web/App Server |
|
应用框架 |
|
JDK | JDK 1.5/1.6/1.7/1.8 |
消息中间件 | RabbitMQ |
RPC Service |
|
SQL数据库 JDBC drivers |
|
NoSQL数据库 |
|
Java虚拟机 |
|
JVM语言 | Play |
其他 |
|