SpringCloud分布式⽇志采集⽅案,建议收藏!
由于微服务架构中每个服务可能分散在不同的服务器上,因此需要⼀套分布式⽇志的解决⽅案。
spring-cloud提供了⼀个⽤来trace服务的组件sleuth。它可以通过⽇志获得服务的依赖关系。基于sleuth,可以通过现有的⽇志⼯具实现分布式⽇志的采集。
这⾥使⽤的是ELK,也就是elasticsearch、logstash、kibana。
⼀、sleuth
第⼀步:sleuth管理端
sleuth⼀般单独放在⼀个⼯程中。需要添加如下依赖
配置服务注册中⼼的地址
启动类加⼊服务发现的注解和zipkin的注解,如下
这个时候启动并访问该微服务的地址,可以看到zipkin的管理页⾯了。
第⼆步:被管理的微服务端
在我们的其他微服务端需要简单的配置,纳⼊到zipkin的管理之中
引⼊依赖
加⼊如下配置
:这个参数的意思是抓取100%的⽇志,只有通过抓取⽇志,才能获知依赖关系。但是如果始终抓取⽇志的话对性能会有影响,因此可以⾃⼰配置。⼀般在开发环境,该值设置为1,⽣产环境视情况⽽定。分布式和微服务的关系
:为第⼀步配置的zipkin管理端微服务的地址
现在分别启动服务注册中⼼,⽹关,需要的微服务,以及sleuth。
随便调⽤⼀个微服务
图⽚
然后我们可以看到相关的跟踪⽇志
图⽚
同样我们也可以看到微服务之间的依赖关系,这⾥是通过⽹关调⽤了微服务,然后通过微服务调⽤了微服务
图⽚
⼆、搭建ELK
的安装与配置,由于之前的⽂章已经介绍了elasticsearch的单点,集的安装,head插件的安装。这⾥不1、elasticsearch的安装与配置
再总结。
的安装,没什么好说的,解压,运⾏就可以了
2、kibana的安装
3、logstash的安装
的安装,解压即可
在config下新建配置⽂件
其中port为端⼝号,codec表⽰通过json格式,elasticsearch.hosts表⽰elasticsearch的地址,这⾥是集。index 为⽇志存储的elasticsearch索引。
启动需要调⽤bin下的logstash命令,通过-f指定配置⽂件
4、使⽤kibana
启动elasticsearch、head、kibana、logstash
创建索引applog
图⽚
将applog配置到kibana中,在index pattern中输⼊我们的applog索引
图⽚
图⽚
最后点击create即可
点击菜单中的discover即可查看⽇志
图⽚
三、logback配置
spring-cloud、logstash都是⽀持logback的,因此需要为微服务配置好相应的l
“
这⾥值得注意的是,在spring-boot中,l的加载在l之前。⽽我们需要在l中使⽤。
因此,我们需要把e配置提到l中。
”
加载顺序为l,l,l
相⽐普通的l,我们主要配置这⼏样东西,logstash的appender
这⾥提供⼀个l的例⼦
我们把message信息配置到了rest字段中。
三、查询⽇志
启动服务注册中⼼,⽹关,需要的微服务,以及sleuth。
启动elasticsearch,head,kibana,logstash,随便运⾏⼀个服务,⽐如
图⽚
这⾥会输出⼀⾏⽇志,内容为,通过⽹关调⽤
图⽚
eclipse控制台输出⽇志
图⽚
在kibana中搜索⽇志
图⽚
我们看到⽇志信息在rest字段中。另外,通过trace和span还可以跟踪到整个微服务的调⽤过程。到此为⽌,整个⽇志采集就搭建完成了。
系统上线后只需要在elasticsearch中就能搜索到各个服务器上,各个微服务的⽇志内容了。
“
通关⼿册》,覆盖了Java核⼼技术、JVM、Java并发、SSM、微服务、最近⾯试BAT,整理⼀份⾯试资料《Java⾯试BATJ通关⼿册
数据库、数据结构等等。
PS:因平台更改了推送规则,如果不想错过内容,记得读完点⼀下“在看”,加个“星标”,这样每次新⽂章推送才会第⼀时间出现在你的订阅列表⾥。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论