全部產品
Search
文件中心

Data Transmission Service:採集部署

更新時間:Jul 06, 2024

本文介紹了採集部署的流程。

1.預檢查

  • 確保collector部署在沒有線上應用的獨立伺服器上。

  • 確保已配置JAVA_HOME,JDK版本1.6+。

2.啟動

 Unix系統,在collector目錄下執行:
 `./run.sh`
 Windows系統, 在collector目錄下執行:
 `start /b java -jar javaagent-collector.jar`
                        

驗證:查看collector/logs/collector.log日誌,顯示啟動成功即部署成功。

如有報錯,請參見應用採集器常見問題

採集器javaagent

1.啟動前的配置

  • 確保環境變數已配置JAVA_HOME,否則設定 attach.sh 中 JAVA_HOME 地址為jdk的絕對路徑(注意:如客戶使用jre而非jdk,需要自己將tools.jar拷貝到${JAVA_HOME}/lib/目錄下)。

  • 配置javaagent.config: profiler.collector.ip = 11.23.45.67 # collector的ip profiler.collector.port = 9996 # collector的連接埠 profiler.app.name = adamApp #應用程式名稱,少於20個字元的字母、數字組合 。profiler.app.port = 8080 #應用啟動連接埠,應用有很多個不同功能的連接埠,只配請求的那個連接埠即可,一個JVM下無論是否一個應用都只配置一個 profiler.applicationservertype = TOMCAT # 應用中介軟體容器類型,TOMCAT\JBOSS\WEBLOGIC等。

以下非必選配置

        配置應用需要檢測的Java代碼的目錄首碼。替換下面樣本,多個目錄用英文逗號分隔,每個至少2級目錄,建議不超過5個;
        應用採集時根據精準的調用棧資訊,在資料庫改動時能同步給出明確的應用改動建議。
        如不能全部提供則可以不寫,後續在阿里雲Adam分析頁面進行過濾設定。
        `profiler.classpath.whitelist = com.alibaba.javaagent,com.alibaba.adam`
        如上面白名單已填寫,此處可忽略;如果不清楚白名單列表,填寫黑名單也可過濾無用的調用棧資訊。
        `profiler.classpath.blacklist =org.apache,net.sf`
        配置當cpu達到多少時暫停資料擷取。
        `profiler.cpu.threshold = 85`
        系統資訊收集間隔,預設15分鐘。
        `profiler.sys.send.interval = 15`
        sql動態資訊收集間隔,預設15分鐘。
        `profiler.sql.dynamic.send.interval = 15`
                        

2.啟動方式

啟動方式一:不重啟應用,agent單次臨時監控

javaagent目錄增加操作許可權;確保agent啟動的帳號和應用啟動帳號一致;找到應用的進程號PID,在javaagent目錄執行(將${pid}整體替換為應用的進程號):

Unix系統,執行:
`./attach.sh -p ${pid}`
Windows系統,執行:
`java -cp "%JAVA_HOME%\lib\tools.jar;%cd%\javaagent-bootstrap.jar" com.alibaba.adam.javaagent.bootstrap.AgentAttacher -p ${pid}`
                        

查看javaagent目錄下log檔案,提示啟動成功,應用有流量進入後,查看collector的目錄下有data目錄且有資料,說明agent啟動成功且正確發送資料到collector。如有報錯,請參見應用採集器常見問題

  • 確保應用的PID擷取正確。

  • 啟動agent的帳號和應用啟動帳號保持一致,且許可權也要一致,否則無法監控。(windows下註冊表SYSTEM啟動的應用無法通過啟動方式一啟動,原因是帳號許可權不一致)。

啟動方式二:隨應用一起啟動監控(推薦)

應用增加javaagent配置重啟即可(${javaagent_path}整體替換為javaagent的目錄)。

Unix系統

Tomcat:在catalina.sh開機檔案最後一個CATALINA_OPTS配置後面增加:
        CATALINA_OPTS="$CATALINA_OPTS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Jboss:在run.conf開機檔案最後一個JAVA_OPTS配置後面增加:
        JAVA_OPTS="$JAVA_OPTS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Weblogic:在startWebLogic.sh開機檔案最後一個JAVA_OPTIONS配置後面增加:
        JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Websphere:
        方式1 設定檔增加: JAVA_OPTS="$JAVA_OPTS -javaagent:/home/admin/javaagent/javaagent-bootstrap.jar"
        方式2 頁面配置: 通用JVM參數(Java Virtual Machine)加上:
        name:javaagent  value:/home/admin/javaagent/javaagent-bootstrap.jar
k8s叢集docker容器:
        將javaagent目錄放入docker鏡像中並對應增加-javaagent配置,一起打包鏡像部署。
                        

Windows系統

Tomcat:在catalina.bat開機檔案最後一個CATALINA_OPTS配置後面增加:
        CATALINA_OPTS="$CATALINA_OPTS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Jboss:在run.conf開機檔案最後一個JAVA_OPTS配置後面增加:
        JAVA_OPTS="$JAVA_OPTS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Weblogic:在startWebLogic.cmd開機檔案最後一個JAVA_OPTIONS配置後面增加:
        JAVA_OPTIONS="$JAVA_OPTIONS -javaagent:${javaagent_path}/javaagent-bootstrap.jar"
Websphere:
        方式1 設定檔增加: JAVA_OPTS="$JAVA_OPTS -javaagent:/home/admin/javaagent/javaagent-bootstrap.jar"
        方式2 頁面配置: 通用JVM參數(Java Virtual Machine)加上:
        name:javaagent  value:/home/admin/javaagent/javaagent-bootstrap.jar
                        

應用啟動後查看應用的日誌,顯示Java Agent load successfully! 表示啟動成功,如報錯根據錯誤原因進行修改,如未顯示任何agent資訊表示配置路徑不對導致未載入。

優缺點

啟動方式

優點

缺點

適用情境

啟動方式一

對全新應用無須重啟即可設定agent監控。

每次應用重啟agent需手動啟動; 啟動agent的帳號必須和應用保持一致。

應用長期不重啟且重啟會造成業務影響。

啟動方式二

應用重啟agent自動啟動,應用採集連續;不用考慮帳號許可權問題。

第一次需重啟應用。

應用可重啟、持續採集(大多數情境)。

其他說明

  • 當應用停止:無論方式一、二啟動的監控,應用停止則agent停止。

  • agent主動停止監控:

    • 方式一:重啟應用或通過命令./attach.sh -p ${pid} -s。

    • 方式二:去掉配置的javaagent後重啟應用。

  • agent停止監控後想再次做監控,必須重啟應用。

    • 方式一:待應用重啟後手動啟動agent。

    • 方式二:agent隨應用重啟而啟動。

  • Jboss區分社區版和企業版,如果有jboss.modules.system.pkgs配置項,則無論用方式一、二,都需要先增加com.alibaba.adam.javaagent目錄並重啟應用才會生效。

資料收集(一般收集1-7天資料)

  • 進入collector目錄,將data/下的檔案按appname打zip包,分別獨立上傳ADAM-應用畫像,切記一個應用對應一個應用畫像,一個應用下不同IP的資料可以打包到一起,但不同appname的資料不能打包到一起,否則上傳會報錯。