skywalking + docker + logback + mysql 实现全链路日志跟踪

1.版本信息

        skywalking-oap-server:9.3.0

        skywalking-ui:9.3.0

        apache-skywalking-java-agent-8.14.0.tgz

2.docker拉取镜像

        2.1.(注意括号内的信息,还有这句话  -v /dev-ops:/skywalking/ext-libs \

                 /dev-ops这个是存放mysql驱动的,不然会报错,去这里下载数据库驱动jar包)

docker run --name oap --restart=always  \
-e JAVA_OPTS="-Xms1G" \
-e SW_STORAGE=mysql \
-e SW_JDBC_URL=jdbc:mysql://(你的ip):3306/swtest \
-e SW_DATA_SOURCE_USER=(你的数据库账号) \
-e SW_DATA_SOURCE_PASSWORD=(你的数据库密码) \
-v /dev-ops:/skywalking/ext-libs \
-dp 11800:11800 \
-dp 12800:12800 \
apache/skywalking-oap-server:9.3.0

docker run --name oap-ui --restart=always \
-dp 8686:8080 \
-e SW_OAP_ADDRESS=http://(你的ip):12800 \
-e TZ=Asia/Shanghai \
apache/skywalking-ui:9.3.0

 3.创建一个dockerfile文件,拉取解压探针

wget https://dlcdn.apache.org/skywalking/java-agent/8.14.0/apache-skywalking-java-agent-8.14.0.tgz

tar -zxvf apache-skywalking-java-agent-8.14.0.tgz

 4.在dockerfile文件夹根目录中创建

        4.1.vi dockerfile

        

        4.2.这里是文件内容

        注意,我是通过openjdk:8来打的镜像,如果你们本地没有就要去拉取一下openjdk:8的镜像

FROM openjdk:8
EXPOSE 8089


ENV HOME_PATH /home

WORKDIR $HOME_PATH

ADD demo1-0.0.1-SNAPSHOT.jar $HOME_PATH/app.jar

ENTRYPOINT ["java","-jar","app.jar"]

 5.打包镜像

docker build -t skywalking-agent:8.14.0 .

6.写springboot项目的dockerfile

skywalking + docker + logback + mysql 实现全链路日志跟踪_第1张图片

         6.1.这里ADD ./target/demo1-0.0.1-SNAPSHOT.jar是基于我的目录来做的

             FROM skywalking-agent:8.14.0这就是第五步打成镜像的名称

             如果是跟着我的目录做到这里的"-javaagent:/agent/skywalking-agent.jar"就不要改变

# 基础镜像
FROM skywalking-agent:8.14.0

#申明一个环境变量
ENV HOME_PATH /home

#指定容器启动时,执行命令会在该目录下执行
WORKDIR $HOME_PATH

#应用构建成功后的jar复制到容器指定目录下
ADD ./target/demo1-0.0.1-SNAPSHOT.jar $HOME_PATH/app.jar

#指定容器内部端口
EXPOSE 8089

ENTRYPOINT ["java","-javaagent:/agent/skywalking-agent.jar","-DSW_AGENT_NAME=hello","-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=(你的ip):11800","-jar","app.jar"]

 7.写logbake.xml,我这里分成两个文件

        7.1.logback-skywalking.xml



    
    
    
    

    
    

    
    
        
            
                ${SKY_WALKING_PATTERN}
            
        
    

    
    
        
            
                %date [%file:%line]-%msg%n
            
        
        
            INFO
        
    
    

        7.2.logback-spring.xml




      # 引入sky日志(也可以写在一个文件中)
    
    
    

    
    
     # 新增sky日志的开关,yml中配置
    
    
    
    

    
    
        
            ${CONSOLE_LOG_PATTERN}
        
    

    
    
        
            ${FILE_LOG_PATTERN}
        
        
        
            ${LOG_PATH}/${applicationName}-%d{yyyy-MM-dd}.%i.log
            ${MAX_FILE_SIZE}
            ${MAX_HISTORY}
            true
        
    

    
    

    
    
        0
        1024
        
    
    

    
        
         # js表达式
            
                
                
            
            
                
            
        
    

8.添加依赖




    org.apache.skywalking
    apm-toolkit-logback-1.x
    8.14.0




    org.apache.skywalking
    apm-toolkit-trace
    8.14.0





    org.codehaus.janino
    janino
    3.0.6

9.开启日志跟踪

#application.yml开启日志追踪
skywalking:
  log:
    enable: true # false是关闭,不配默认关闭

 10.查看日志

        10.1.我通过访问接口打印了一堆日志,如果在有报错,复制TID到skywalking中

skywalking + docker + logback + mysql 实现全链路日志跟踪_第2张图片

         10.2.直接复制你TID进行搜索

skywalking + docker + logback + mysql 实现全链路日志跟踪_第3张图片

 

ok,完美下班!

大部分内容是照搬这个帖子的(90条消息) Linux搭建Skywalking9.3_linux 安装skywalking_猿仁的博客-CSDN博客

我是有配置了jenkins,提交代码就可以自动部署。

你可能感兴趣的:(skywalking,logback,spring,boot,java,docker)