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 镜像安装地址,有详细说明

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

在这里插入图片描述

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

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

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

  • 下载完成后解压缩放到服务器上
    在这里插入图片描述

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

      • 找到 agent.service_name 修改
        在这里插入图片描述

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

      在这里插入图片描述

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

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

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

  • 添加skywaking日志相关依赖,可开启日志追踪功能。版本号要对应下载的agent版本
    在这里插入图片描述

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

    • <?xml version="1.0" encoding="UTF-8"?>
      <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="ASYNC" class="ch.qos.logback.classic.AsyncAppender">-->
          <!--        <discardingThreshold>0</discardingThreshold>-->
          <!--        <queueSize>1024</queueSize>-->
          <!--        <neverBlock>true</neverBlock>-->
          <!--        <appender-ref ref="CONSOLE"/>-->
          <!--    </appender>-->
      
          <!--配置通过grpc传输到skywalking中的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%n</Pattern>
                  </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"]
    

在这里插入图片描述

  • 如果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 run -d --restart=always -v /ah/agent:/ah/agent --name service-system2 -p 1800:1800 service-system2    #如果agent在宿主机,要挂载宿主机目录,到容器中目录,-v /ah/agent:/ah/agent,否则启动会找不到目录。
      
      
  • 启动成功后,日志若有加载探针,则成功
    在这里插入图片描述

访问SKywalking地址

在这里插入图片描述

  • 可以看到有服务存在
    在这里插入图片描述
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值