手動安裝探針
為Java應(yīng)用安裝探針后,ARMS即可開始監(jiān)控Java應(yīng)用,您可以查看應(yīng)用拓?fù)洹⒄{(diào)用鏈路、異常事務(wù)、慢事務(wù)和SQL分析等一系列監(jiān)控數(shù)據(jù)。本文介紹如何為Java應(yīng)用手動安裝探針。
對于部署在Kubernetes環(huán)境的應(yīng)用,不推薦手動安裝探針,建議通過安裝組件的方式接入ARMS。具體操作,請參見容器服務(wù)ACK環(huán)境自動安裝探針以及通用Kubernetes環(huán)境自動安裝探針。
前提條件
檢查您的網(wǎng)絡(luò)環(huán)境。具體要求,請參見Java應(yīng)用監(jiān)控網(wǎng)絡(luò)配置。
檢查您的JDK版本。具體要求,請參見支持的JDK版本。
進程最大堆內(nèi)存需大于256 MB。
安裝探針
登錄ARMS控制臺,在左側(cè)導(dǎo)航欄單擊接入中心。
單擊Java應(yīng)用監(jiān)控卡片,然后單擊手動安裝。
下載探針。
方法一:手動下載。在Java應(yīng)用監(jiān)控面板根據(jù)提示下載對應(yīng)的探針。
方法二:使用wget命令下載。根據(jù)您的地域下載對應(yīng)的探針安裝包。
地域
公網(wǎng)地址
VPC地址
華東1(杭州)
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華東2(上海)
wget "http://arms-apm-cn-shanghai.oss-cn-shanghai.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-shanghai.oss-cn-shanghai-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華北1(青島)
wget "http://arms-apm-cn-qingdao.oss-cn-qingdao.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-qingdao.oss-cn-qingdao-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華北2(北京)
wget "http://arms-apm-cn-beijing.oss-cn-beijing.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-beijing.oss-cn-beijing-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華北3(張家口)
wget "http://arms-apm-cn-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-zhangjiakou.oss-cn-zhangjiakou-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華北5(呼和浩特)
wget "http://arms-apm-cn-huhehaote.oss-cn-huhehaote.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-huhehaote.oss-cn-huhehaote-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華北6(烏蘭察布)
wget "http://arms-apm-cn-wulanchabu.oss-cn-wulanchabu.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華南1(深圳)
wget "http://arms-apm-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-shenzhen.oss-cn-shenzhen-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華南2(河源)
wget "http://arms-apm-cn-heyuan.oss-cn-heyuan.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-heyuan.oss-cn-heyuan-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華南3(廣州)
wget "http://arms-apm-cn-guangzhou.oss-cn-guangzhou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-guangzhou.oss-cn-guangzhou-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
西南1(成都)
wget "http://arms-apm-cn-chengdu.oss-cn-chengdu.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-chengdu.oss-cn-chengdu-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
中國(香港)
wget "http://arms-apm-cn-hongkong.oss-cn-hongkong.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-hongkong.oss-cn-hongkong-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
新加坡
wget "http://arms-apm-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-ap-southeast-1.oss-ap-southeast-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
亞太東南3(吉隆坡)
wget "http://arms-apm-ap-southeast-3.oss-ap-southeast-3.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-ap-southeast-3.oss-ap-southeast-3-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
亞太東南5(雅加達)
wget "http://arms-apm-ap-southeast-5.oss-ap-southeast-5.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-ap-southeast-5.oss-ap-southeast-5-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
亞太東北1(東京)
wget "http://arms-apm-ap-northeast-1.oss-ap-northeast-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-ap-northeast-1.oss-ap-northeast-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
歐洲中部1(法蘭克福)
wget "http://arms-apm-eu-central-1.oss-eu-central-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-eu-central-1.oss-eu-central-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
歐洲西部1(倫敦)
wget "http://arms-apm-eu-west-1.oss-eu-west-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-eu-west-1.oss-eu-west-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
美國東部1(弗吉尼亞)
wget "http://arms-apm-us-east-1.oss-us-east-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-us-east-1.oss-us-east-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
美國西部1(硅谷)
wget "http://arms-apm-us-west-1.oss-us-west-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-us-west-1.oss-us-west-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華東1金融云
無
wget "http://arms-apm-cn-hangzhou-finance.oss-cn-hzjbp-b-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華東2金融云
無
wget "http://arms-apm-cn-shanghai-finance-1.oss-cn-shanghai-finance-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
華南1金融云
無
wget "http://arms-apm-cn-shenzhen-finance-1.oss-cn-shenzhen-finance-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
政務(wù)云
wget "http://arms-apm-cn-north-2-gov-1.oss-cn-north-2-gov-1.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
wget "http://arms-apm-cn-north-2-gov-1.oss-cn-north-2-gov-1-internal.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
解壓探針。
進入探針安裝包所在目錄,并執(zhí)行以下命令將安裝包解壓到任意工作目錄下。
unzip AliyunJavaAgent.zip -d /{user.workspace}/
說明{user.workspace}是示例目錄,請?zhí)鎿Q為真實的目錄。
添加AppName和LicenseKey參數(shù)。
在Java應(yīng)用監(jiān)控面板獲取到對應(yīng)的LicenseKey。AppName代表接入到ARMS的哪一個應(yīng)用中,您可以根據(jù)需要自定義您的應(yīng)用名,在分布式架構(gòu)中,同一個應(yīng)用內(nèi)可以包含多個對等的實例。
請通過下列兩種方式,添加AppName與LicenseKey。
方法一:將接入腳本中的
{LicenseKey}
與{AppName}
替換為您從控制臺獲得的LicenseKey以及該應(yīng)用對應(yīng)的AppName。方法二:腳本中不填寫LicenseKey和AppName的相關(guān)信息,在探針包的arms-agent.config文件中添加以下配置。
arms.licenseKey={LicenseKey} arms.appName={AppName}
將接入命令添加到啟動命令中。
將
{user.workspace}
替換成實際探針安裝包的解壓目錄,將demoApp.jar替換為真實的JAR包地址。說明如果您使用的探針版本在2.7.3.5以下,請將本文中的AliyunJavaAgent/aliyun-java-agent.jar替換為ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar。建議您盡快將探針升級至最新版本。
在Windows操作系統(tǒng)中,請將腳本中的
/
替換為\
,并將.sh
文件替換為.bat
文件。v2.7.1.4及以上版本探針已支持在接入應(yīng)用監(jiān)控時開通應(yīng)用安全,如果需要開通應(yīng)用安全,請在腳本中添加
-Darms.appsec.enable=true
。應(yīng)用安全的計費規(guī)則,請參見計費說明。
運行環(huán)境
步驟
Spring Boot或其他通過
java -jar
命令啟動的Java應(yīng)用在啟動命令后加上-javaagent參數(shù)。請確保-javaagent參數(shù)寫在-jar參數(shù)之前。
java -javaagent:/{user.workspace}/AliyunJavaAgent/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}/AliyunJavaAgent/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}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
Resin
啟動Resin進程時,在
conf/resin.xml
或conf/resin.conf
中添加以下標(biāo)簽。<server-default> <jvm-arg>-javaagent:{user.workspace}/AliyunJavaAgent/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
配置,也可以在該文件中添加以下標(biāo)簽。jvm_args : -javaagent:{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
在conf/app-default.xml文件中添加以下標(biāo)簽。
<library-loader path="{user.workspace}/AliyunJavaAgent/plugin"/>
如需在一臺服務(wù)器上部署同一應(yīng)用的多個實例,可以通過-Darms.agentId參數(shù)(邏輯編號)來區(qū)分接入的JVM進程,例如:
java -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.agentId=001 -jar demoApp.jar
重啟Java應(yīng)用。
(可選)Docker環(huán)境安裝參考
對于Docker環(huán)境,可以參考以下Dockerfile示例修改您的Dockerfile文件。
# 將{original-docker-image:tag}替換為您的鏡像地址。
FROM {original-docker-image:tag}
# 可以根據(jù)需要替換工作目錄。
WORKDIR /root/
# 參考安裝探針的第4步,獲得所在地域的探針下載地址,請注意公網(wǎng)地址和VPC地址的區(qū)別。
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
# 解壓探針。
RUN unzip AliyunJavaAgent.zip -d /root/
# 參考安裝探針的第6步,將LicenseKey和AppName寫入環(huán)境變量中。
ENV arms_licenseKey={LicenseKey}
ENV arms_appName={AppName}
# 拼接必要的啟動腳本,追加到JAVA_TOOL_OPTIONS環(huán)境變量中。
ENV JAVA_TOOL_OPTIONS ${JAVA_TOOL_OPTIONS} '-javaagent:/root/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey='${arms_licenseKey}' -Darms.appName='${arms_appName}
### 檢查JAVA_TOOL_OPTIONS環(huán)境變量。
RUN env | grep JAVA_TOOL_OPTIONS
### 在下方添加自定義Dockerfile邏輯。
### ......
結(jié)果驗證
約一分鐘后,若Java應(yīng)用出現(xiàn)在
頁面中且有數(shù)據(jù)上報,則說明接入成功。