docker部署Skywalking,Springboot并引入日志收集

docker部署Skywalking,Springboot并引入日志收集

首先拉取Skywalking和Skywalking-ui镜像

docker pull apache/skywalking-oap-server:9.2.0
docker pull apache/skywalking-ui:9.2.0

启动skywalking-oap-server和 skywalking-ui

docker run --name oap --restart always -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 --link elasticsearch:elasticsearch -e SW_STORAGE=elasticsearch -d -e SW_STORAGE_ES_CLUSTER_NODES=ip:9200 apache/skywalking-oap-server:9.2.0  #ip修改为部署es的ip地址
docker run -d --name skywalking-ui \
 --restart=always \
 -e TZ=Asia/Shanghai \
 -p 8700:8080 \
 --link oap:oap \
 -e SW_OAP_ADDRESS=http://oap:12800 \
 apache/skywalking-ui:9.2.0
  • https://hub.docker.com/r/apache/skywalking-ui 镜像安装地址,有详细说明

启动成功后,访问地址,页面如下:

docker部署Skywalking,Springboot并引入日志收集_第1张图片

使用skywalking-agent 使skywalking对微服务进行链路追踪

  • 下载地址 https://skywalking.apache.org/downloads/

  • 可自行选择使用docker镜像,或者使用tar包,两者都可以(只不过在编写微服务jar包的DockerFile时有调整,下面会说明) 本次使用tar包

  • 下载完成后解压缩放到服务器上
    docker部署Skywalking,Springboot并引入日志收集_第2张图片

    • 目录如上,修改config包下的 agent.config文件

      • 找到 agent.service_name 修改
        docker部署Skywalking,Springboot并引入日志收集_第3张图片

        agent.service_name=${SW_AGENT_NAME:SkywalkingDemoTest}	#给你要监听的java项目设置一个名字,会在SkyWalking的UI界面中以你设置的名字显示该项目;	
        

      docker部署Skywalking,Springboot并引入日志收集_第4张图片

      collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.1.1:11800}		#修改为你部署SkyWalking的那台机器的IP。 
      

      切记,启动Skywalking时要做好端口映射,否则agent探针会报错,拒绝访问Skywalking地址

添加项目依赖,以及编写配置文件

  • 添加skywaking日志相关依赖,可开启日志追踪功能。版本号要对应下载的agent版本
    docker部署Skywalking,Springboot并引入日志收集_第5张图片

  • 官网找个logback-spring.xml文件

    • 
      <configuration scan="false">
          
          <property name="CONSOLE_LOG_PATTERN"
                    value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%X{tid}]){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
      
          
          <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
          <conversionRule conversionWord="wex"
                          converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
          <conversionRule conversionWord="wEx"
                          converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
      
          
          <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
              <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                  <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                      <Pattern>${CONSOLE_LOG_PATTERN}Pattern>
                  layout>
              encoder>
          appender>
      
          
          
          
          
          
          
          
      
          
          <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
              <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                  <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                      <Pattern>%msg%nPattern>
                  layout>
              encoder>
          appender>
      
          <root level="INFO">
              <appender-ref ref="CONSOLE"/>
              <appender-ref ref="grpc-log"/>
          root>
      
      configuration>
      
  • 打包后,上传服务器。

对jar包编写DockerFile文件

  • FROM java:8
    MAINTAINER anhe
    ADD service-system.jar service-system2.jar
    EXPOSE 1800
    ENTRYPOINT ["java","-javaagent:/ah/agent/skywalking-agent.jar", "-jar","service-system2.jar"]
    

docker部署Skywalking,Springboot并引入日志收集_第6张图片

  • 如果agent使用的是镜像,第一行修改为下面,修改版本号,对应拉取的镜像

    • FROM apache/skywalking-java-agent:8.5.0-jdk8
      

    You can start your Java application with CMD or ENTRYPOINT, but you don’t need to care about the Java options to enable SkyWalking agent, it should be adopted automatically.

    (不需要在启动时,添加引入探针的命令了,会自动配置)

  • 编写完成后,启动jar包

    docker build -t service-system2 .
    

docker部署Skywalking,Springboot并引入日志收集_第7张图片

  • 启动镜像

    • docker run -d --restart=always -v /ah/agent:/ah/agent --name service-system2 -p 1800:1800 service-system2    #如果agent在宿主机,要挂载宿主机目录,到容器中目录,-v /ah/agent:/ah/agent,否则启动会找不到目录。
      
      
  • 启动成功后,日志若有加载探针,则成功
    docker部署Skywalking,Springboot并引入日志收集_第8张图片

访问SKywalking地址

docker部署Skywalking,Springboot并引入日志收集_第9张图片

  • 可以看到有服务存在
    docker部署Skywalking,Springboot并引入日志收集_第10张图片

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