為Java應用安裝探針後,ARMS即可開始監控Java應用,您可以查看應用拓撲、調用鏈路、異常事務、慢事務和SQL分析等一系列監控資料。本文介紹如何為Java應用手動安裝探針。
對於部署在Kubernetes環境的應用,不推薦手動安裝探針,建議通過安裝組件的方式接入ARMS。具體操作,請參見Container ServiceACK環境自動安裝探針以及通用Kubernetes環境自動安裝探針。
前提條件
檢查您的網路環境。具體要求,請參見Java應用監控網路設定。
檢查您的JDK版本。具體要求,請參見支援的JDK版本。
進程最大堆記憶體需大於256 MB。
安裝探針
登入ARMS控制台,在左側導覽列選擇 。
在應用列表頁面頂部選擇目標地區,然後單擊接入應用。
在接入中心頁面單擊Java應用監控,然後選擇手動安裝。
下載探針。
方法一:手動下載。在Java應用監控面板根據提示下載對應的探針。
方法二:使用wget命令下載。根據您的地區下載對應的探針安裝包。
解壓探針。
進入探針安裝包所在目錄,並執行以下命令將安裝包解壓到任意工作目錄下。
unzip ArmsAgent.zip -d /{user.workspace}/
說明{user.workspace}是樣本目錄,請替換為真實的目錄。
添加AppName和LicenseKey參數。
在Java應用監控面板擷取到對應的LicenseKey。AppName代表接入到ARMS的哪一個應用中,您可以根據需要自訂您的應用程式名稱,在分布式架構中,同一個應用內可以包含多個對等的執行個體。
請通過下列兩種方式,添加AppName與LicenseKey。
方法一:將接入指令碼中的
{LicenseKey}
與{AppName}
替換為您從控制台獲得的LicenseKey以及該應用對應的AppName。方法二:指令碼中不填寫LicenseKey和AppName的相關資訊,在探針包的arms-agent.config檔案中添加以下配置。
arms.licenseKey={LicenseKey} arms.appName={AppName}
添加接入指令碼。
將
{user.workspace}
替換成實際探針安裝包的解壓目錄,將demoApp.jar替換為真實的JAR包地址。說明如果您使用的探針版本在2.7.3.5以下,請將本文中的aliyun-java-agent.jar替換為arms-bootstrap-1.7.0-SNAPSHOT.jar。建議您儘快將探針升級至最新版本。
在Windows作業系統中,請將指令碼中的
/
替換為\
,並將.sh
檔案替換為.bat
檔案。v2.7.1.4及以上版本探針已支援在接入應用監控時開通應用安全,如果需要開通應用安全,請在指令碼中添加
-Darms.appsec.enable=true
。應用安全的計費規則,請參見計費說明。
運行環境
步驟
Spring Boot或其他通過
java -jar
命令啟動的Java應用在啟動命令後加上-javaagent參數。請確保-javaagent參數寫在-jar參數之前。
java -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -jar demoApp.jar
Tomcat
在{TOMCAT_HOME}/bin/setenv.sh檔案中添加以下配置。
JAVA_OPTS="$JAVA_OPTS -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} "
如果您的Tomcat版本沒有setenv.sh設定檔,請開啟{TOMCAT_HOME}/bin/catalina.sh檔案,並在JAVA_OPTS後添加上述配置,具體樣本,請參見catalina.sh的第256行。
Jetty
在{JETTY_HOME}/start.ini設定檔中添加以下配置。
aliyun-java-agent.jar --exec -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
Resin
啟動Resin進程時,在
conf/resin.xml
或conf/resin.conf
中添加以下標籤。<server-default> <jvm-arg>-javaagent:{user.workspace}/ArmsAgent/aliyun-java-agent.jar</jvm-arg> <jvm-arg>-Darms.licenseKey={LicenseKey}</jvm-arg> <jvm-arg>-Darms.appName={AppName}</jvm-arg> </server-default>
如果您使用的是
conf/resin.properties
配置,也可以在該檔案中添加以下標籤。jvm_args : -javaagent:{user.workspace}/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
在conf/app-default.xml檔案中添加以下標籤。
<library-loader path="{user.workspace}/ArmsAgent/plugin"/>
如需在一台伺服器上部署同一應用的多個執行個體,可以通過-Darms.agentId參數(邏輯編號)來區分接入的JVM進程,例如:
java -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.agentId=001 -jar demoApp.jar
重啟Java應用。
(可選)Docker環境安裝參考
對於Docker環境,可以參考以下Dockerfile樣本修改您的Dockerfile檔案。
# 將{original-docker-image:tag}替換為您的鏡像地址。
FROM {original-docker-image:tag}
# 可以根據需要替換工作目錄。
WORKDIR /root/
# 參考安裝探針的第4步,獲得所在地區的探針下載地址,請注意公網地址和VPC地址的區別。
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
# 解壓探針。
RUN unzip ArmsAgent.zip -d /root/
# 參考安裝探針的第6步,將LicenseKey和AppName寫入環境變數中。
ENV arms_licenseKey={LicenseKey}
ENV arms_appName={AppName}
# 拼接必要的啟動指令碼,追加到JAVA_TOOL_OPTIONS環境變數中。
ENV JAVA_TOOL_OPTIONS ${JAVA_TOOL_OPTIONS} '-javaagent:/root/ArmsAgent/aliyun-java-agent.jar -Darms.licenseKey='${arms_licenseKey}' -Darms.appName='${arms_appName}
### 檢查JAVA_TOOL_OPTIONS環境變數。
RUN env | grep JAVA_TOOL_OPTIONS
### 在下方添加自訂Dockerfile邏輯。
### ......
結果驗證
約一分鐘後,若Java應用出現在應用列表頁面中且有資料上報,則說明接入成功。