为Java应用安装Agent后,ARMS即可开始监控Java应用,您可以查看应用拓扑、调用链路、异常事务、慢事务和SQL分析等一系列监控数据。您可以选择以手动方式或脚本方式安装Agent,本文介绍如何为Java应用手动安装Agent。

前提条件

  • 确保您使用的云服务器ECS实例的安全组已开放8442、8443、8883、9092或9093端口的TCP出方向权限。为云服务器ECS开放出方向权限的方法,请参见添加安全组规则
    说明 ARMS不仅可接入阿里云ECS上的应用,还能接入其他能访问公网的服务器上的应用。
  • 确保您使用的第三方组件或框架在应用监控兼容性列表范围内,请参见应用监控兼容性列表
  • 检查您的JDK版本。ARMS应用监控支持的JDK版本如下:
    • JDK 1.7.0+
    • JDK 1.8.0_25+
      说明
      • Kubernetes集群应用部署建议:JDK 1.8.0_191+。
      • 如果JDK版本为1.8.0_25或者1.8.0_31,可能会出现无法安装探针的情况,请升级至1.8.X最新版本。
    • JDK 11.0.8+
    • JDK 17
    说明 JDK 1.8及以下版本、JDK 11和JDK 17版本对应的探针安装包不同,请根据不同的JDK版本下载对应的探针安装包或调整应用监控组件ack-onepilot的配置。

安装Agent

  1. 登录ARMS控制台,在左侧导航栏选择应用监控 > 应用列表
  2. 应用列表页面顶部选择目标地域,然后单击接入应用
  3. 接入应用面板单击Java,然后选择手动安装
  4. 下载Agent。
    • 方法一:手动下载。在接入Java面板的STEP1区域根据JDK版本下载对应的Agent。
    • 方法二:使用wget命令下载。根据您的地域下载对应的Agent安装包。
      说明 请使用公网地址,如无法下载则使用VPC地址。
      查看各地域对应的Agent(JDK 8及以下版本)安装包下载命令
      地域公网地址VPC地址
      华东1(杭州)
      wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华东2(上海)
      wget "http://arms-apm-cn-shanghai.oss-cn-shanghai.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-shanghai.oss-cn-shanghai-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华北1(青岛)
      wget "http://arms-apm-cn-qingdao.oss-cn-qingdao.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-qingdao.oss-cn-qingdao-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华北2(北京)
      wget "http://arms-apm-cn-beijing.oss-cn-beijing.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-beijing.oss-cn-beijing-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华北3(张家口)
      wget "http://arms-apm-cn-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-zhangjiakou.oss-cn-zhangjiakou-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华北5(呼和浩特)
      wget "http://arms-apm-cn-huhehaote.oss-cn-huhehaote.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-huhehaote.oss-cn-huhehaote-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华北6(乌兰察布)
      wget "http://arms-apm-cn-wulanchabu.oss-cn-wulanchabu.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华南1(深圳)
      wget "http://arms-apm-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-shenzhen.oss-cn-shenzhen-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华南2(河源)
      wget "http://arms-apm-cn-heyuan.oss-cn-heyuan.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-heyuan.oss-cn-heyuan-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华南3(广州)
      wget "http://arms-apm-cn-guangzhou.oss-cn-guangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-guangzhou.oss-cn-guangzhou-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      西南1(成都)
      wget "http://arms-apm-cn-chengdu.oss-cn-chengdu.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-chengdu.oss-cn-chengdu-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      中国(香港)
      wget "http://arms-apm-cn-hongkong.oss-cn-hongkong.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-hongkong.oss-cn-hongkong-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      新加坡
      wget "http://arms-apm-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-southeast-1.oss-ap-southeast-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      亚太东南2(悉尼)
      wget "http://arms-apm-ap-southeast-2.oss-ap-southeast-2.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-southeast-2.oss-ap-southeast-2-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      亚太东南3(吉隆坡)
      wget "http://arms-apm-ap-southeast-3.oss-ap-southeast-3.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-southeast-3.oss-ap-southeast-3-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      亚太东南5(雅加达)
      wget "http://arms-apm-ap-southeast-5.oss-ap-southeast-5.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-southeast-5.oss-ap-southeast-5-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      亚太东北1(东京)
      wget "http://arms-apm-ap-northeast-1.oss-ap-northeast-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-northeast-1.oss-ap-northeast-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      欧洲中部1(法兰克福)
      wget "http://arms-apm-eu-central-1.oss-eu-central-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-eu-central-1.oss-eu-central-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      欧洲西部1(伦敦)
      wget "http://arms-apm-eu-west-1.oss-eu-west-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-eu-west-1.oss-eu-west-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      美国东部1(弗吉尼亚)
      wget "http://arms-apm-us-east-1.oss-us-east-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-us-east-1.oss-us-east-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      美国西部1(硅谷)
      wget "http://arms-apm-us-west-1.oss-us-west-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zipwget "http://arms-apm-us-west-1.oss-us-west-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-us-west-1.oss-us-west-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      亚太南部1(孟买)
      wget "http://arms-apm-ap-south-1.oss-ap-south-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-ap-south-1.oss-ap-south-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华东1金融云
      wget "http://arms-apm-cn-hangzhou-finance.oss-cn-hzjbp-b-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华东2金融云
      wget "http://arms-apm-cn-shanghai-finance-1.oss-cn-shanghai-finance-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      华南1金融云
      wget "http://arms-apm-cn-shenzhen-finance-1.oss-cn-shenzhen-finance-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      政务云
      wget "http://arms-apm-cn-north-2-gov-1.oss-cn-north-2-gov-1.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
      wget "http://arms-apm-cn-north-2-gov-1.oss-cn-north-2-gov-1-internal.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  5. 安装Agent。
    1. 进入Agent安装包所在目录,并执行以下命令来解压安装包到任意工作目录下。
      unzip ArmsAgent.zip -d /{user.workspace}/ 
      说明 {user.workspace}是示例目录,请替换为真实的目录。
    2. 添加AppNameLicenseKey参数。
      Section LicenseKey
      说明 将示例代码中的{LicenseKey}替换成STEP2区域获取License Key,{AppName}替换为您实际的应用名称(应用名不可包含中文字符),{user.workspace}替换成实际Agent安装包的解压目录,将demoApp.jar替换为真实的JAR包地址。
      • 方法一:根据您的应用运行环境修改JVM参数。
        运行环境步骤
        Tomcat(Linux或macOS操作系统)

        {TOMCAT_HOME}/bin/setenv.sh文件中添加以下配置。

        JAVA_OPTS="$JAVA_OPTS -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} " 

        如果您的Tomcat版本没有setenv.sh配置文件,请打开{TOMCAT_HOME}/bin/catalina.sh文件,并在JAVA_OPTS后添加上述配置,具体示例,请参见catalina.sh的第256行。

        Tomcat(Windows操作系统){TOMCAT_HOME}/bin/catalina.bat文件中添加以下配置。
        set "JAVA_OPTS=%JAVA_OPTS% -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}" 

        如果以上配置未生效,可以尝试在{TOMCAT_HOME}/bin/catalina.bat文件中添加以下配置。

        set "CATALINA_OPTS=-javaagent:/{user.workspace}/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}"
        Jetty

        {JETTY_HOME}/start.ini配置文件中添加以下配置。

        --exec
        -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar
        -Darms.licenseKey={LicenseKey}
        -Darms.appName={AppName} 
        Spring Boot

        启动Spring Boot进程时,在启动命令后加上-javaagent参数。

        java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -jar demoApp.jar 
        Resin

        启动Resin进程时,在conf/resin.xml配置文件中添加以下标签。

        <server-default>
            <jvm-arg>-javaagent:{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar</jvm-arg>
            <jvm-arg>-Darms.licenseKey={LicenseKey}</jvm-arg>
            <jvm-arg>-Darms.appName={AppName}</jvm-arg>
        </server-default> 

        conf/app-default.xml文件中添加以下标签。

        <library-loader path="{user.workspace}/ArmsAgent/plugin"/> 
        Windows

        使用CMD启动Java进程时,在挂载Agent路径中使用反斜线(\)作为分隔符。

        java -javaagent:\{user.workspace}\ArmsAgent\arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -jar {user.workspace}\demoApp.jar 

        如需在一台服务器上部署同一应用的多个实例,可以通过-Darms.agentId参数(逻辑编号)来区分接入的JVM进程,例如:

        java -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.agentId=001 -jar demoApp.jar
      • 方法二:在arms-agent.config文件中添加以下配置。
        arms.licenseKey={LicenseKey} arms.appName={AppName}
  6. 在Java应用的启动脚本中添加以下参数。
    -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar 
    v2.7.1.4及以上版本探针已支持在接入应用监控时开通应用安全,如果需要开通应用安全,请添加-Darms.appsec.enable=true
    说明 应用安全的计费规则,请参见计费规则
  7. 重启Java应用。

结果验证

约一分钟后,若Java应用出现在应用列表页面中且有数据上报,则说明接入成功。

卸载Agent

当您不需要使用ARMS监控您的Java应用时,请按照以下步骤卸载Agent。

  1. 删除安装操作步骤5中添加的{AppName}{LicenseKey}等所有参数。
  2. 重启Java应用。