SKywalking Agent
配置+Oracle
監控插件安裝指南
SKywalking Agent
配置+Oracle
監控插件安裝指南前言:
SkyWalking + Elasticsearch8 容器化部署指南
Skywalking
版本:V10.2.0
Skywalking Agent
版本:V9.4.0
Skywalking Agent
下載地址:Downloads | Apache SkyWalking
插件下載地址:Releases · SkyAPM/java-plugin-extensions
插件版本:apm-oracle-10.x-plugin-2.3.1.jar
一.Agent
包準備
打開下載地址,在如下地方下載需要版本的Agent
包

二.配置Java
項目并連接Skywalking
1.非容器化啟動Java
把agent
包上傳至jar
包目錄后解壓,如圖:
tar -zxvf apache-skywalking-java-agent-9.4.0.tgz
修改Java
的啟動命令:
#!/bin/bash
var=$(date +%Y%m%d%H%M)
dir_base=/opt/app/trpms-api
jar_name='trpms-0.0.1-SNAPSHOT.jar'
filename=/opt/app/trpms-api/trpms-0.0.1-SNAPSHOT.jar
if [ $(find $dir_base -name '*.*.bak*' | wc -l) -gt 6 ]; then#刪除以.bak2結尾的備份jar包find $dir_base -name '*.*.bak*' | xargs rm -rvfecho "delete bak.jar success!"
fi
#重命名備份jar包
cp $filename $filename.bak$var
echo "cp name success!"export JAVA_HOME=/opt/java/jdk-11.0.12
echo ${JAVA_HOME}
cd ${dir_base}
echo 'deploying...'if [ $(pgrep -f ${jar_name} | wc -l) -gt 0 ]; thenpkill -9 -f ${jar_name}
fi
echo ${dir_base}/${jar_name}
nohup ${JAVA_HOME}/bin/java -Xms512m -Xmx1024m -jar ${dir_base}/${jar_name} --spring.profiles.active=prd-scfai s>${dir_base}/out.log 2>&1 &
echo 'ok!'
以上原本的Java
啟動腳本,綁定 Skywakling
需要在Java啟動參數中添加如下命令:
#!/bin/bash
var=$(date +%Y%m%d%H%M)
dir_base=/opt/app/trpms-api
jar_name='trpms-0.0.1-SNAPSHOT.jar'
filename=/opt/app/trpms-api/trpms-0.0.1-SNAPSHOT.jar# 添加SkyWalking agent路徑變量
skywalking_agent_path="/opt/app/trpms-api/skywalking-agent/skywalking-agent.jar"if [ $(find $dir_base -name '*.*.bak*' | wc -l) -gt 6 ]; thenfind $dir_base -name '*.*.bak*' | xargs rm -rvfecho "delete bak.jar success!"
ficp $filename $filename.bak$var
echo "cp name success!"export JAVA_HOME=/opt/java/jdk-11.0.12
echo ${JAVA_HOME}
cd ${dir_base}
echo 'deploying...'if [ $(pgrep -f ${jar_name} | wc -l) -gt 0 ]; thenpkill -9 -f ${jar_name}
fi# 檢查SkyWalking agent是否存在
if [ ! -f "$skywalking_agent_path" ]; thenecho "錯誤: 找不到SkyWalking agent: $skywalking_agent_path"echo "請確保SkyWalking agent已正確安裝在該路徑"exit 1
fiecho ${dir_base}/${jar_name}
echo "使用SkyWalking agent: $skywalking_agent_path"# 使用絕對路徑而不是相對路徑
nohup ${JAVA_HOME}/bin/java -Xms512m -Xmx1024m \-javaagent:"$skywalking_agent_path" \-Dskywalking.agent.service_name=trpms-api \-Dskywalking.collector.backend_service=<your ip>:11800 \-jar ${dir_base}/${jar_name} \--spring.profiles.active=prd-scfai \>${dir_base}/out.log 2>&1 &echo 'ok!'
命令解釋:
-javaagent:"$skywalking_agent_path"
:指定 SkyWalking Java Agent 的路徑
-Dskywalking.agent.service_name=trpms-api
:設置當前應用在 SkyWalking 中的服務名稱
-Dskywalking.collector.backend_service=172.20.23.66:11800
:指定 SkyWalking 收集器(OAP Server)的地址和端口
啟動成功后,就可以在Skywalking
管理頁面看見該系統的監控信息。
2.Docker
容器化部署
以下是一個完整配置的Dockerfile打包文件:
# 配置了sky-walking的dockerfile
#此處任意Java鏡像即可
FROM <鏡像地址>/java:corretto11-font
MAINTAINER shanyoufusu
WORKDIR /usr/app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ARG APP_NAME="app"
ARG PROFILE
ENV JAVA_OPTS="-Xms512m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/app/log" \SPRING_PROFILES_ACTIVE=$PROFILE \APPLICATION_NAME=$APP_NAME \AGENT_ADDRESS="<your ip>:11800"
ADD target/${APPLICATION_NAME}.jar ${APPLICATION_NAME}.jar
# 將agent文件夾放入容器,jenkins配置里,docker build前一步,cp到target文件夾下的
ADD target/agent/ /usr/local/agent
EXPOSE ${EXPORT}
ENTRYPOINT exec java ${JAVA_OPTS} \-javaagent:/usr/local/agent/skywalking-agent.jar \-Dskywalking.agent.service_name=$APPLICATION_NAME \-Dskywalking.collector.backend_service=${AGENT_ADDRESS} \-jar ${APPLICATION_NAME}.jar
注意文件中:
ADD target/agent/ /usr/local/agent
這一步是通過Jenkinsfile
提前對skywalking-agent
包進行了預處理,skywalking-agent
已被提前拷貝至Jenkins
的/var/jenkins_home/
目錄并命名為agent
dir("$buildDir") {// 復制Skywalking包sh 'cp -r /var/jenkins_home/agent target/'sh 'ls ./target' echo "開始打包docker鏡像:$imageName"
請按照實際情況修改
ADD target/agent/ /usr/local/agent
命令
依照此Dockerfile
打包文件,可把skywalking-agent
包copy
至容器內部,在容器運行時就可以把數據傳輸至Skywalking OAP
三.Oracle
監控插件安裝
1.簡要說明
Skywalking
默認是不帶Oracle
數據庫監控的功能,所以需要安裝對應的插件去實現對Oracle
數據庫的監控,以此去排查數據庫中存在的慢sql
如上圖,5342
是Pgsql
的默認端口1521
是Oracle
的默認端口。進入后就可以分別看到數據庫的監控信息
2.插件安裝和命令配置
進入下載頁面后,點擊下載我們需要的安裝包。
下載后傳入之前解壓的skywalking-agent
目錄,如下圖:
然后再運行Java
應用的時候需要添加如下命令:
-Dskywalking.plugin.jdbc.trace_sql_parameters=true
如下:
# 配置了sky-walking的dockerfile
#此處任意Java鏡像即可
FROM <鏡像地址>/java:corretto11-font
MAINTAINER shanyoufusu
WORKDIR /usr/app
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ARG APP_NAME="app"
ARG PROFILE
ENV JAVA_OPTS="-Xms512m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/app/log" \SPRING_PROFILES_ACTIVE=$PROFILE \APPLICATION_NAME=$APP_NAME \AGENT_ADDRESS="<your ip>:11800"
ADD target/${APPLICATION_NAME}.jar ${APPLICATION_NAME}.jar
# 將agent文件夾放入容器,jenkins配置里,docker build前一步,cp到target文件夾下的
ADD target/agent/ /usr/local/agent
EXPOSE ${EXPORT}
ENTRYPOINT exec java ${JAVA_OPTS} \-javaagent:/usr/local/agent/skywalking-agent.jar \-Dskywalking.agent.service_name=$APPLICATION_NAME \-Dskywalking.collector.backend_service=${AGENT_ADDRESS} \-Dskywalking.plugin.jdbc.trace_sql_parameters=true \-jar ${APPLICATION_NAME}.jar
啟動后就能再虛擬數據庫處,看到Oracle
的數據庫信息已經被監測。