分布式日志方案

作者: 苏打柠檬水 | 来源:发表于2017-08-25 18:09 被阅读58次

我司项目是分布式系统,但没有分布式日志系统。每次排错查看日志极其痛苦,打开N个终端,shell敲的起飞,效率极低,果断引入ELK。

项目用的日志组件是logback(slf4j的实现),引入logstash-logback-encoder实现输出JSON格式的日志

<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>4.10</version>
</dependency>

把logback的配置里的encoder替换为

<encoder class="net.logstash.logback.encoder.LogstashEncoder">
    <includeCallerData>true</includeCallerData>
</encoder>

成功的输出JSON格式的日志文件

运维同学搭好ELK环境,把日志导入到elasticsearch中,可以愉快的使用Kibana来查看日志了。

这时问题又来了,如何查看一次请求的日志,这样可以很好分析一次请求上下文。一直在跟踪Spring的项目,Spring Cloud 中分布式跟踪Spring Cloud Sleuth项目,仔细研究了下发现可以把zipkin系统引进来,引进zipkin.brave

        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-spring-beans</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-context-slf4j</artifactId>
            <version>4.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-instrumentation-spring-webmvc</artifactId>
            <version>4.4.0</version>
        </dependency>

我司是基于Dubbo构架分布式系统,brave没有对应的实现,需要基于Dubbo的Filter来实现传递TraceId

通过过滤traceId,就很方便的实现了查看一个请求的上下文的日志,启用zipkin服务的话还可以很清晰的一个请求每次跨服务调用的耗时,还可查看调用MySQL的耗时

相关文章

  • 91 分布式ELK 日志采集系统

    1,传统日志采集存在哪些问题?2, 分布式+日志采集有哪些方案?3,ElasticSearch+logstash+...

  • 从一份定义文件详解ELK中Logstash插件结构

    概述 当下分布式系统的 日志收集、日志分析、日志处理、可视化 的热门技术栈方案当然非 ELK(ElasticSea...

  • 分布式日志方案

    我司项目是分布式系统,但没有分布式日志系统。每次排错查看日志极其痛苦,打开N个终端,shell敲的起飞,效率极低,...

  • 分布式事务--TCC优化方案

    方案核心:TCC+事务消息+异常日志+人工介入 1 前言 分布式事务是分布式领域一大神坑。架构即取舍、衡量利弊,世...

  • 032 某金服面试题

    分布式事务 分布式锁方案和区别 分布式缓存 分布式选举问题 分库分表的方案 MVCC 方案 MySQL 的事务的实...

  • 分布式事务解决方案

    分布式事务解决方案 分布式事务的主要解决方案 XA方案 - 两阶段提交方案 TCC方案 本地消息表 可靠信息最终一...

  • docker 容器日志清理方案

    本文为转载,原文:docker 容器日志清理方案 docker容器日志清理方案 找出容器日志 在linux上,容器...

  • HDFS Using QJM

    HDFS 使用分布式日志管理,日志管理的是nameNode的fsimages和eidts日志文件。

  • 懒人必备:.NetCore快速搭建ELK分布式日志中心

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logst...

  • 分布式事务实现的几种方案

    参考[Java复习] 分布式事务 Part 2java分布式事务,及解决方案 1.两阶段提交方案/XA方案   这...

网友评论

    本文标题:分布式日志方案

    本文链接:https://www.haomeiwen.com/subject/xoxpdxtx.html