SKywalking Agent配置+Oracle监控插件安装指南
SkyWalking Agent配置与Oracle监控插件安装指南 本文介绍了SkyWalking Agent V9.4.0的配置方法及Oracle监控插件安装步骤。主要内容包括: Agent包下载与准备 两种Java项目集成方式: 非容器化启动:通过修改Java启动脚本添加SkyWalking参数 Docker容器化部署:提供完整Dockerfile配置示例 Oracle监控插件安装:解决默认不
SKywalking Agent
配置+ Oracle
监控插件安装指南
SKywalking Agent
配置+ Oracle
监控插件安装指南
前言:
SkyWalking + Elasticsearch8 容器化部署指南
Skywalking
版本:V10.2.0Skywalking 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 -rvf
echo "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 ]; then
pkill -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 ]; then
find $dir_base -name '*.*.bak*' | xargs rm -rvf
echo "delete bak.jar success!"
fi
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 ]; then
pkill -9 -f ${jar_name}
fi
# 检查SkyWalking agent是否存在
if [ ! -f "$skywalking_agent_path" ]; then
echo "错误: 找不到SkyWalking agent: $skywalking_agent_path"
echo "请确保SkyWalking agent已正确安装在该路径"
exit 1
fi
echo ${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
的数据库信息已经被监测。
更多推荐
所有评论(0)