为Docker中的Java应用安装ARMS Agent后,ARMS即可开始监控Java应用,且ARMS将自动适配该应用运行的环境,不需要针对Tomcat、Jetty或Spring Boot等应用单独配置运行环境。本文介绍如何为Docker中的Java应用安装Agent。
前提条件
-
您已在Docker中部署Java应用。
-
检查您的JDK版本。ARMS应用监控支持的JDK版本如下:
-
JDK 1.7.0+
重要 ARMS应用监控将于3.0.X探针版本终止支持Java 7,如果您还在使用Java 7,请尽快升级Java版本。更多信息,请参见 ARMS应用监控终止支持Java 7的说明 。
-
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.7.0+
背景信息
对于Java应用镜像 {original-docker-image:tag} ,可以通过编辑 Dockerfile 文件来集成已有镜像,然后构建和启动新的镜像,即可将Java应用接入ARMS应用监控。
步骤一:获取License Key
- 登录 ARMS控制台 ,在左侧导航栏选择 。
- 在 应用列表 页面顶部选择目标地域,然后单击 接入应用 。
-
在
接入中心
面板单击
Java
,然后在
STEP2
区域获取License Key。
步骤二:集成已有镜像
参考以下 Dockerfile 示例修改您的 Dockerfile 文件。
如果您使用的探针版本在2.7.3.5以下,请将本文中的aliyun-java-agent.jar替换为arms-bootstrap-1.7.0-SNAPSHOT.jar。建议您尽快将探针升级至最新版本。
###################################
## ###
## ARMS APM DEMO Docker ###
## For Java ###
## withAgent V0.1 ###
## ###
###################################
# 将{original-docker-image:tag}替换为您的镜像地址。
FROM {original-docker-image:tag}
WORKDIR /root/
# 根据所在地域替换Agent的下载地址。
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
RUN unzip ArmsAgent.zip -d /root/
# 按照步骤一的说明获取License Key。
# {AppName}为自定义ARMS监控应用名称,不可包含中文字符。
# 若所有镜像都接入同一个应用监控任务,配置此处的arms_licenseKey和arms_appName即可。
ENV arms_licenseKey={LicenseKey}
ENV arms_appName={AppName}
ENV JAVA_TOOL_OPTIONS ${JAVA_TOOL_OPTIONS} '-javaagent:/root/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey='${arms_licenseKey}' -Darms.appName='${arms_appName}
### for check the args
RUN env | grep JAVA_TOOL_OPTIONS
### 可在下方添加自定义Dockerfile逻辑。
### ......
请按照以下说明替换上述配置文件中的示例值。
-
将
{original-docker-image:tag}
替换为您的镜像地址。若您没有自定义镜像,可使用系统镜像。 -
根据所在地域替换Agent的下载地址。
说明 请使用公网地址,如无法下载则使用VPC地址。 -
将
{LicenseKey}
替换成您的License Key。将{AppName}
替换成您的应用名称(应用名不可包含中文字符)。
步骤三:构建并启动新镜像
-
运行
docker build
命令来构建镜像。docker build -t registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 -f /{workspace}/Dockerfile /{workspace}/
说明将
registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
替换为真实镜像名称。 -
运行
docker run
命令来启动镜像。docker run -d -p 8081:8080 registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
说明将
registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
替换为真实镜像名称。
结果验证
约一分钟后,若您的应用名称出现在 应用列表 页面中且有数据上报,则说明接入成功。
卸载Agent
当您不需要再监控Docker集群中的Java应用时,请按照以下步骤卸载Agent。
-
删除按照 步骤二:集成已有镜像 的说明添加的 Dockerfile 内容。
-
运行
docker build
命令来构建镜像。 -
运行
docker run
命令来启动镜像。