SpringCloud Sleuth&ELK&Zipkin

一、Sleuth

1.1)Sleuth概述

订单服务有orderId,库存服务有stockId,支付服务有paymentId,作为这一整套流程Sleuth用traceId作为全链路唯一标识进行跟踪,链路中每一个小的调用单元称Span(记录日志)

1.2)普通日志输出

1.3)引入Sleuth的日志输出

一个TraceId对应一个或多个SpanId

1.4)跟踪原理

SpanId可以用来统计某个单元花费的时长
ParentSpanId表示当前SpanId的上一个工作单元的SpanId

1.5)抽样收集

一般来说日志会全部收集到数仓中,然后针对业务信息和重点日志信息进行提取存储到我们的NoSQL(比如ES)

二、Elastic Stack

2.1)概述

ES负责存储搜索,Logstash根据配置将指定路径的日志收集起来,Kibana负责展示(大部分公司不用Kibana按自己想要的方式去展示)

2.2) Elastic Stack的产生历史

2.3) Elastic Stack的应用方式

Filebeat选择将采集日志输出到Kafka是因为直接采集到Logstash和ES容易压力过大,中间加一个弹性较大的异步MQ

Zookeeper配置概述

Kafka配置概述

演示1:下载、启动、配置Filebeat

Ps:最新版本中已移除输出到Kafka
win启动
查看Kafka是否成功创建名为filebeat的Topic
监听名为filebeat的Topic
修改采集日志路径下的log文件
Kafka的consumer端已经获取到了

演示2:下载、启动、配置Elasticsearch

演示3:下载、启动、配置Kibana

演示4:下载、启动、配置Logstash

启动Logstash


修改日志文件
ElasticSearch-head插件中查看ES已经存储了日志的修改信息

演示5:配置服务日志输出

三、Zipkin

3.1)概述

3.2)Zipkin基础架构

3.3)重要组件解释

3.4)Zipkin的使用

jar包启动Zipkin


点击show查看详情
查看请求时间

3.5)Zipkin配置外部MySQL

下载mysql.sql文件在本地数据库中引入相关表
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容