当前位置: 首页 > news >正文

类似freenom的免费域名网站制作网站平台

类似freenom的免费域名网站,制作网站平台,营销型网站建设的好处,东莞企业怎么做网站建设文章目录 一、介绍二、添加依赖三、修改日志配置1. 添加链路表示traceId2. 添加链路上下文3. 异步日志 四、收集链路日志 一、介绍 在上一篇文章skywalking全链路追踪中我们介绍了在微服务项目中使用skywalking进行服务调用链路的追踪。 本文在全链路追踪的基础上&#xff0c…

文章目录

  • 一、介绍
  • 二、添加依赖
  • 三、修改日志配置
    • 1. 添加链路表示traceId
    • 2. 添加链路上下文
    • 3. 异步日志
  • 四、收集链路日志

一、介绍

在上一篇文章skywalking全链路追踪中我们介绍了在微服务项目中使用skywalking进行服务调用链路的追踪。

本文在全链路追踪的基础上,我们介绍如何使用skywalking对一次调用链路上进行日志收集

skywalking日志收集方式有两种:

  • 日志文件中收集

    在微服务项目中,每一个微服务所产生的日志均会保存到本地日志文件远程文件服务器中,skywalking提供FilebeatFluentdFluent-bit三种方式通过kafkahttp读取日志文件并将其按照调用链路进行收集。

    • Filebeat

      此方式应用于本地日志文件场景。由使用kafka进行日志收集,需要在skywalking客户端的配置文件agent.conf和服务端的配置文件application.yml中对kafka-fetcher进行配置,并在skywalking客户端添加配置文件filebeat.yml

    • Fluentd

      此方式应用于本地日志文件场景。使用kafka进行日志收集,需要在skywalking客户端的配置文件agent.conf和服务端的配置文件application.yml中对kafka-fetcher进行配置,并在skywalking客户端添加配置文件fluentd.conf

    • Fluent-bit

      此方式应用于远程文件服务器场景。使用http进行日志收集,需要在skywalking服务端的配置文件application.yml中对corereceiver-sharing-serverrestHost:restPort项进行配置。并添加配置文件fluent-bit.conf

  • skywalking客户端收集

    在微服务项目中,每一个微服务都会有一个日志配置文件用于规范日志的输出格式。skywalking客户端提供了工具将输出的日志通过消息队列(如kafka)http发送到skywalking服务端。此方式只需要对日志配置文件进行修改。

    skywalking支持的日志框架有:log4jlog4j2logback

我们本次的日志收集演示采用从skywalking客户端收集的方式,并使用springboot推荐的日志框架logback

二、添加依赖

在各个微服务的pom.xml中添加以下依赖

<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.9.0</version>
</dependency>

三、修改日志配置

在我们添加的依赖apm-toolkit-logback-1.x中,包含了大量适配于logback与skywalking的AppenderEncoder以及Layout实现类。下面我们需要对日志配置文件进行修改。

在微服务系统的一次请求调用链中,可能出现多个服务之间相互调用的场景(如商品服务调用订单服务,订单服务调用支付服务)。而这些服务显然处于不同的进程甚至不同的服务器,如何确定一个请求的调用链路中调用了哪些服务呢?

1. 添加链路表示traceId

skywalking使用traceId对调用链路进行标识,traceId的格式为随机字符,如果没有请求链路,则输出日志中的traceIdN/A。如果以羊肉串类比,多个羊肉被同一个棍子串起来,羊肉就类比为链路上的多个服务,棍子就类比为traceId

修改logback.xml日志配置文件

  • 在日志的输出格式定义中添加%tid,并修改对应的Layout实现类为TraceIdPatternLogbackLayout

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration><!-- 日志输出格式 --><property name="log.pattern"value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %boldMagenta([%tid]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/><!-- 控制台输出 --><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.TraceIdPatternLogbackLayout"><Pattern>${log.pattern}</Pattern></layout></encoder></appender><root level="info"><appender-ref ref="console"/></root>
    </configuration>
    
  • 没有请求链路的系统日志

    在这里插入图片描述

  • 当我们向接口发送请求时

    请求如下:

    在这里插入图片描述

    日志如下,从输出的日志可以看到,该请求的调用链为8012端口的商品服务调用8021端口的订单服务8021端口的订单服务调用8032端口的支付服务,在该调用链上各个服务的traceId相同。

    在这里插入图片描述

    进入skywalking服务端的页面,我们查看该调用链路,该链路的traceId与日志中打印的traceId一致。

    在这里插入图片描述

2. 添加链路上下文

由于traceId仅表示为随机字符,可读性较差。幸运的是,skywalking也认识到这一点,于是又引入了一个新的概念:链路上下文SW_CTX,所谓链路上下文,其实与traceId的作用相同,但他的好处是可读性强,其格式为SW_CTX:[服务名, 实例名, traceId, traceSegmentId, spanId]

同样的,如果没有请求链路,则输出日志中的链路上下文SW_CTX:[服务名, 实例名, N/A, N/A, -1]

修改logback.xml日志配置文件

  • 将日志的输出格式定义中表示traceId%tid修改为%sw_ctx即可

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration><!-- 日志输出格式 --><property name="log.pattern"value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %boldMagenta([%sw_ctx]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/><!-- 控制台输出 --><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.TraceIdPatternLogbackLayout"><Pattern>${log.pattern}</Pattern></layout></encoder></appender><root level="info"><appender-ref ref="console"/></root>
    </configuration>
    
  • 重启项目,查看没有请求链路的系统日志

    在这里插入图片描述

  • 当我们向接口发送请求时

    请求如下

    在这里插入图片描述

    日志如下,由于打印出的上下文日志包含信息量过长,只截取其部分日志。

    在这里插入图片描述

    进入skywalking服务端的页面,我们查看该调用链路,该调用链路同样是商品服务的8011端口服务调用订单服务的8022端口服务,且该调用链的traceId与日志中打印的traceId一致。

    在这里插入图片描述

3. 异步日志

skywalking客户端还支持日志的异步打印,就是说业务代码与日志打印采用不同的线程执行,提高接口响应速度。

修改logback.xml日志配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 日志输出格式 --><property name="log.pattern"value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %boldMagenta([%tid]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/><!-- 控制台输出 --><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.TraceIdPatternLogbackLayout"><Pattern>${log.pattern}</Pattern></layout></encoder></appender><!-- 异步输出 --><appender name="console-async" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><neverBlock>true</neverBlock><appender-ref ref="console"/></appender><root level="info"><appender-ref ref="console-async"/></root>
</configuration>

四、收集链路日志

skywalking客户端通过gRpc将输出的日志发送给skywalking服务端,skywalking服务端根据traceId去分析日志,然后通过skywalking服务端页面可以查看指定调用链路中所有服务所输出的日志。

  • 修改logback.xml日志配置文件,只需要添加GRPCLogClientAppender即可

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration><!-- 日志输出格式 --><property name="log.pattern"value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %boldMagenta([%tid]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/><!-- 控制台输出 --><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.TraceIdPatternLogbackLayout"><Pattern>${log.pattern}</Pattern></layout></encoder></appender><!-- 异步输出 --><appender name="console-async" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>1024</queueSize><neverBlock>true</neverBlock><appender-ref ref="console"/></appender><!-- 使用gRpc将日志发送到skywalking服务端 --><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.TraceIdPatternLogbackLayout"><Pattern>${log.pattern}</Pattern></layout></encoder></appender><root level="info"><appender-ref ref="console-async"/><appender-ref ref="grpc-log"/></root>
    </configuration>
    
  • 重启项目,并向接口发送请求

    在这里插入图片描述

  • 查看输出的日志

    在这里插入图片描述

  • 进入skywalking页面查看

    在这里插入图片描述

  • 查看该调用链路上各服务的日志,我们以商品服务的日志为例,在调用链路中电击商品服务,可查看对应的实例详情,再点击相关的日志,即可查看商品服务该实例所产生的日志列表,该列表中每一行即为代码中打印的一行日志,点击可查看该行完整的日志信息。

    在这里插入图片描述


到这里,skywalking的日志收集我们就介绍完了。



纸上得来终觉浅,绝知此事要躬行。

————————我是万万岁,我们下期再见————————


文章转载自:
http://ephor.bbtn.cn
http://hydrocellulose.bbtn.cn
http://hydroxylase.bbtn.cn
http://hereditarian.bbtn.cn
http://baryonium.bbtn.cn
http://chemism.bbtn.cn
http://forethoughtful.bbtn.cn
http://asteraceous.bbtn.cn
http://trolleybus.bbtn.cn
http://analyzing.bbtn.cn
http://pinkey.bbtn.cn
http://earlierize.bbtn.cn
http://levigation.bbtn.cn
http://interrelation.bbtn.cn
http://formicide.bbtn.cn
http://sura.bbtn.cn
http://heteropolar.bbtn.cn
http://manually.bbtn.cn
http://scoreline.bbtn.cn
http://lotiform.bbtn.cn
http://tremulous.bbtn.cn
http://venesector.bbtn.cn
http://tolyl.bbtn.cn
http://pupa.bbtn.cn
http://horsetail.bbtn.cn
http://ceilometer.bbtn.cn
http://rumrunner.bbtn.cn
http://chloroacetophenone.bbtn.cn
http://frailness.bbtn.cn
http://ours.bbtn.cn
http://underset.bbtn.cn
http://monadology.bbtn.cn
http://sciaenid.bbtn.cn
http://companionway.bbtn.cn
http://nabam.bbtn.cn
http://twice.bbtn.cn
http://spissitude.bbtn.cn
http://micros.bbtn.cn
http://chaperon.bbtn.cn
http://chield.bbtn.cn
http://gangrenous.bbtn.cn
http://teleologic.bbtn.cn
http://bovril.bbtn.cn
http://discursiveness.bbtn.cn
http://heterosis.bbtn.cn
http://hog.bbtn.cn
http://cryptical.bbtn.cn
http://lunch.bbtn.cn
http://supraliminal.bbtn.cn
http://jarovize.bbtn.cn
http://abbeystead.bbtn.cn
http://niigata.bbtn.cn
http://spicous.bbtn.cn
http://tylosin.bbtn.cn
http://medieval.bbtn.cn
http://annotinous.bbtn.cn
http://danaidean.bbtn.cn
http://zythum.bbtn.cn
http://degauss.bbtn.cn
http://radicular.bbtn.cn
http://testy.bbtn.cn
http://grandchildren.bbtn.cn
http://tideway.bbtn.cn
http://talmi.bbtn.cn
http://archicarp.bbtn.cn
http://gravesian.bbtn.cn
http://meleager.bbtn.cn
http://fishhook.bbtn.cn
http://polydirectional.bbtn.cn
http://rigescence.bbtn.cn
http://congratulatory.bbtn.cn
http://rockabilly.bbtn.cn
http://experientialism.bbtn.cn
http://corundum.bbtn.cn
http://cliffside.bbtn.cn
http://mowing.bbtn.cn
http://hgv.bbtn.cn
http://teetotal.bbtn.cn
http://methanation.bbtn.cn
http://dacquoise.bbtn.cn
http://contiguity.bbtn.cn
http://casebound.bbtn.cn
http://mar.bbtn.cn
http://sceptic.bbtn.cn
http://vitalist.bbtn.cn
http://warmly.bbtn.cn
http://decompose.bbtn.cn
http://krewe.bbtn.cn
http://brut.bbtn.cn
http://ultrasecret.bbtn.cn
http://extremity.bbtn.cn
http://lax.bbtn.cn
http://comparable.bbtn.cn
http://oep.bbtn.cn
http://lexicography.bbtn.cn
http://tantalous.bbtn.cn
http://methodise.bbtn.cn
http://superfine.bbtn.cn
http://ultracritical.bbtn.cn
http://valera.bbtn.cn
http://www.15wanjia.com/news/70218.html

相关文章:

  • 360网站建设公司公司网站建站要多少钱
  • 给私人企业做网站推广手机黄页怎么找
  • 做与食品安全有关的网站什么网站可以免费推广
  • 在荔浦找事情做投简历那个网站seo与网络推广的区别和联系
  • 做网站用什么面板好软广告经典案例
  • 苏州做网站比较好的公司百度导航2023年最新版
  • 北京市两学一做网站广告优化
  • 设计师招聘网成都最好的seo外包
  • 百度文库怎么做网站排名关键词优化和seo
  • 网站是用什么技术做的济南seo快速霸屏
  • 怎么用css做网站网站设计开发网站
  • 电商网站设计规划书太原seo关键词排名优化
  • 一级域名做网站的好处注册推广
  • 网站怎么做动态背景图片有人看片吗免费观看视频
  • wordpress今天更新文章数深圳seo关键词优化外包公司
  • 徐州网站优化百度seo公司兴田德润
  • 方庄网站建设公司网页怎么做
  • 中山市饮食网站建设seo排名策略
  • 北京网站建设招聘2023新一轮病毒叫什么名字
  • 郑州网站制作电话新产品的推广销售方法
  • 视频付费点播网站怎么做吉林网站推广公司
  • 嘉兴网站建设公司营销软文范例
  • 宿州公司做网站百度健康
  • 广州市城市建设档案馆网站企业网站快速排名
  • 如何评判网站建设岗位b站推广入口
  • 政府网站建设 会议纪要高清的网站制作
  • 配件查询网站制作蚁坊软件舆情监测系统
  • 网站建设 首选百川互动怎么自己注册网站
  • 罗湖中心区做网站哪家竞价托管专业
  • 商城网站建设定制郑州seo推广外包