各大厂商服务器导入探针到 JVM 启动参数参考说明书


本文档将介绍如何在特定框架下传递 -javaagent 参数给 JVM。本文的操作步骤能够确保将探针引入到你的应用中去。对于所有的应用服务器,要确认定义的 -javaagent 参数是探针程序包的绝对路径。
本文只针对 -javaagent 参数的传入做一个简要参考,对于探针的详细安装请参考 Java agent installation

译者注:下文中统一使用 *newrelic.jar* 作为探针程序包示例。

Coldfusion

传递 -javaagent 给 Coldfusion:

  1. 启动 ColdFusion 后打开 ColdFusion 管理控制台。
  2. 左侧菜单中,依次选择 SERVER SETTINGS > Java and JVM
  3. 要使用探针 API 的话:在 ColdFusion Class Path 属性里加入 newrelic-api.jar 的路径。
  4. 加入 -javaagent 参数到 JVM Arguments 属性:
-javaagent:/full/path/to/newrelic.jar
  1. 选择 Submit Changes,然后重启 ColdFusion 服务器。

Geronimo

要传递 -javaagent 参数给 Geronimo,执行启动命令的时候在 JAVA_OPTS 环境变量中加入探针程序包:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar" && geronimo run

Glassfish

传递 -javaagent 参数给 Glassfish:

  1. 在 Glassfish 控制台上依次选择 Application Server > JVM Settings > JVM Options
  2. 在打开的 JVM Options 页面中,选择 Add JVM Option
  3. 添加 -javaagent 参数:
-javaagent:/full/path/to/newrelic.jar
  1. 保存并重启 Glassfish。
    如果 Glassfish 启动失败,可能是 -javaagent 参数没有正确设置。这时候你可以通过编辑 domain.xml 文件的方式修改服务器 JVM 参数。

Glassfish 2.1 之前的版本存在 bug:bootstrap 类加载器无法使用 Java logging API。2.1.1 之后的版本修复了这一缺陷。

Grails

传递 -javaagent 参数到 Grails:
run-app

  1. 非绿色版的 Grails。
  2. 执行命令
grails -noreloading -javaagent:/full/path/to/newrelic.jar run-app

run-war

  1. 编辑你的 Grails 应用中的这一文件:
grails-app/conf/BuildConfig.groovy
  1. 添加或编辑以下 JVM 参数行:
grails.tomcat.jvmArgs = ["-javaagent:/full/path/to/newrelic.jar"]

JBoss

传递 -javaagent 参数给 JBoss:
domain 模式的设置 (6.x EAP 及 7.0 AS)
domain 模式下 JBoss 6.x EAP 及 7.0 AS 或以上:

  1. 编辑服务器组的 JVM 属性,该文件位于:
domain/configuration/domain.xml
  1. 加入 -javaagent 参数:
<server-group name="main-server-group" profile="full">
  <jvm name="default">
  <jvm-options>
  <option value="-javaagent:/full/path/to/newrelic.jar"/>
  </jvm-options>
  </jvm>
  ...
</server-group>

JBoss bug in 7.0.2.Final and 7.1.0.Alpha1:不允许在 domain.xml 文件中设置 JVM 参数。如果你遇到了这一问题,请升级你的 JBoss 应用服务器。

standalone 模式的设置 (其他版本)
对于其他平台及版本使用 standalone 模式:

平台指南
Unix / Mac OS,6.x EAP 或 7.0.x AS 及以上版本bin/standalone.conf 文件的尾部添加:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows,6.x EAP 或 7.0.x AS 或更高版本bin/standalone.bat 文件的这一行之前:set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed,添加:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”
Unix / Mac OS,6.x 或更早版本bin/run.conf 尾部添加:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows,6.x 或更早版本bin/run.bat 文件的这一行之前:set JBOSS_CLASSPATH=%RUN_CLASSPATH%,添加:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”

Jetty

传递 -javaagent 参数给 Jetty:
如果你在 jetty.sh 设置启动信息
在你的 jetty.sh 脚本中编辑 JAVA_OPTIONS

export JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/full/path/to/newrelic.jar"

如果你在 start.ini 设置启动信息
在你的 start.ini 配置文件中添加探针路径:

-javaagent:/full/path/to/newrelic.jar

Play

传递 -javaagent 参数给 Play:
Play 1.2.4
执行 Play 应用时追加 -javaagent 参数:

play run your_app_name -javaagent:/full/path/to/newrelic.jar

Play 2.0

  1. 包含 start 脚本的绿色版:
play clean dist && unzip dist/*.zip
  1. 启动 Play 应用时追加 -javaagent 参数:
cd unzipped/folder; chmod a+x start; ./start -javaagent:/full/path/to/newrelic.jar

Play 2.2

  1. 包含 start 脚本的绿色版:
play clean dist && unzip target/directory/universal/*.zip
  1. 启动 Play 应用时追加 -J-javaagent 参数:
cd unzipped/folder; ./bin/scriptname -J-javaagent:/full/path/to/newrelic.jar

Play 2.3, 2.4 及 2.5

  1. 包含 start 脚本的绿色版:
activator clean dist && unzip target/directory/universal/*.zip
  1. 启动 Play 应用时追加 -J-javaagent 参数:
cd unzipped/folder; ./bin/scriptname -J-javaagent:/full/path/to/newrelic.jar
  1. 如果你使用了 Typesafe Activator (Play 2.4),在 build.sbt 下添加这一行:
javaOptions ++= Seq("-javaagent:/full/path/to/newrelic.jar")

Resin

传递 -javaagent 参数给 Resin,只需将其添加到 resin.confresin.xml 文件的 jvm-args 标签下即可:

<jvm-arg>-javaagent:/full/path/to/newrelic.jar</jvm-arg>

Solr

传递 -javaagent 参数给 Solr:
Standalone Solr 5.x 或更高版本
添加 -javaagent 属性到 bin/solr.in.sh

SOLR_OPTS="$SOLR_OPTS -javaagent:/full/path/to/newrelic.jar"

Standalone Solr 4.x 或更低版本
启动命令中在 start.jar 前添加 -javaagent

java -javaagent:/full/path/to/newrelic.jar -jar start.jar

服务器模式 Solr
当 Solr 运行于一个应用服务器下时,遵循本文档相关应用服务器添加 -javaagent 参数的指示。还要确认该应用服务器是否启用 JMX。如果你在 APM UI 的 Solr 页面下看不到数据,请参考 troubleshooting procedures for Solr data

Sring Boot

要传递 -javaagent 参数到 Spring Boot,只需要将其添加到启动应用的命令行里即可。但要确保在 -jar 参数前添加:

java -javaagent:/full/path/to/newrelic.jar -jar app.jar

Tanuki Wrapper

要传递 -javaagent 参数给 Tanuki Wrapper,需要在 wrapper.conf 文件中添加一个 wrapper 选项。在以下示例行中,将 XXX 替换为一个未使用的数字即可:

wrapper.java.additional.XXX=-javaagent:/full/path/to/newrelic.jar

在 Linux 系统中不需要为这些设定值标使用引号进行标记。其他操作系统中可能会有所不同。

Tomcat

要传递 -javaagent 参数给 Tomcat:
catalina.sh 方式
使用 JAVA_OPTS 环境变量来配置探针:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"

catalina.bat 方式
如果你使用 catalina.bat 来启动 Tomcat,在该文件的前面部分设置 JAVA_OPTS 变量:

SET JAVA_OPTS=%JAVA_OPTS% -javaagent:/full/path/to/newrelic.jar

Windows 下

  1. 依次选择 Start > Apache Tomcat X.Y.Z. > Configure Tomcat > Java
  2. Java Options 文本框中添加该参数。注意要使用正斜杠来做路径分隔符。此外对于 Tomcat 6 还要在 -javaagent 参数后多加一个换行符。
-javaagent:/full/path/to/newrelic.jar
  1. 选择 Apply,然后重启 Tomcat。
    Apache Commons daemon
    Tomcat 6 版本的 Apache Commons Daemon (jsvc) 不支持 -javaagent 参数。尽管如此,一个基于 trunk 构建的包能够通过 -X 前缀来支持 -javaagent 参数。参考 Apache bug tracking the issue
    此外 Apache Commons 源码库中对此也有修复。更多信息:

Weblogic

要传递 -javaagent 给 Weblogic:
Linux 或 MacOS 上的管理端

  1. 在该 domain 下的 bin 目录中编辑 startWebLogic.sh 文件。
  2. 在文件的前边部分,添加:
export JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:/full/path/to/newrelic.jar"

Windows 上的管理端

  1. 在该 domain 下的 bin 目录中编辑 startWebLogic.bat 文件。
  2. 在文件的前边部分,添加:
set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:"C:\full\path\to\newrelic.jar"

被管理端
对于管理端实例要遵循上述 Linux/MacOS 或 Windows 指示。不可以使用管理端控制台来安装管理端实例。
对于被管理端服务器实例,使用管理端控制台:

  1. 在管理端控制台上,依次切换 Environments > Servers > (select a server) > Server Start > Arguments
  2. Arguments 项中添加:
-javaagent:/full/path/to/newrelic.jar
  1. 保存该页面配置,然后重启该服务实例。

WebSphere

要传递 -javaagent 参数给 WebSphere:

  1. 在管理控制台,依次选择 Servers > Application servers > (select a server) > Configuration > Service Infrastructure > Java and Process Management
  2. 选择 Process Definition > Additional Properties,然后选择 Java Virtual Machine
  3. Generic JVM arguments 属性中,添加 -javaagent 变量:
-javaagent:/full/path/to/newrelic.jar
  1. 选择 Apply,然后选择 Save
  2. 重启服务器。
    更多信息,参考文档 collecting WebSphere PMI metrics

WebSphere Community

要传递 -javaagent 参数给 WebSphere Community 版本,只需要在运行 startup 命令前将其包含于 JAVA_OPTS 环境变量即可:

export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar" && startup

WebSphere Liberty Profile

传递 -javaagent 参数给 WebSphere Liberty Profile:

  1. 编辑 ${server.config.dir}/jvm.options
  2. 添加 -javaagent 参数以指向你的探针文件:
-javaagent:/full/path/to/newrelic.jar
  1. 重启服务器。

Wildfly

传递 -javaagent 参数给 Wildfly (如果使用 Wildfly 11 或更高版本,请参考 additional install instructions):
domain 模式

  1. 为服务器组修改 JVM 属性,该文件为:
domain/configuration/domain.xml
  1. 加入 -javaagent 参数:
<server-group name="main-server-group" profile="full">
  <jvm name="default">
  <jvm-options>
  <option value="-javaagent:/full/path/to/newrelic.jar"/>
  </jvm-options>
  </jvm>
  ...
</server-group>

standalone 模式

平台指南
Unix 或 OS在 bin/standalone.conf 的尾部添加:JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/newrelic.jar"
Windows在 bin/standalone.bat 中找到这一行:rem Setup JBoss specific properties,然后在其后添加:set “JAVA_OPTS=-javaagent:C:/full/path/to/newrelic.jar %JAVA_OPTS%”

其他应用服务器

Java 探针可以运行于任何 supported app server。如果你的应用服务器没有在这个列表中,请遵循标准添加步骤,即在应用 jar 前将这一参数传递给 JVM:
-javaagent:/full/path/to/newrelic.jar

更多帮助

进一步学习推荐:

原文链接:Include the Java agent with a JVM argument

posted @ 2018-11-05 11:26  Defonds  阅读(83)  评论(0编辑  收藏  举报