Spring Cloud ,Spring Boot 和 Docker 搭建的一个分布式日志系统

    Spring Cloud ,Spring Boot 和 Docker 搭建的一个分布式日志系统

    • 商品编号:
      #21115828_802
      • 原价:
        免费
      • 会员价:
        免费
    • 版本:
      • V1.0.0
    • 数量:
      库存(不限)

    购物车中已存在此商品,请在购物车中操作单击跳转购物车

    • 开发语言:Java
    • 开发环境:Idea
    • 开源协议:BSD协议
    • 编码格式:UTF-8
    • 开发者: leoChaoGlut
    • 源码架构:B/S
    • 版本工具管理:GitHub
    • 数据库:无

    说明

    功能简介

    • 多余信息过滤
    • 规范日志打印格式
    • 微服务应用日志采集
    • 高效日志查询,问题定位
    • 精确定位关键词所处上下文
    • 精确定位关键词所处业务跨应用日志链

    工程模块简介

    • log-common: ☞整个工程的common包.所有需要被采集日志的应用,都需要引用这个包.(使用logback来打印日志)
    • log-component: ☞功能组件
      • log-component-aggregator: ☞日志内容聚合器,索引聚合.
      • log-component-common: ☞功能组件的common包
      • log-component-filter: ☞过滤"非目标关键词的日志内容"
      • log-component-index:☞ 基础索引数据结构:[上下文索引,key value索引,keyword索引]
      • log-component-scanner: ☞日志扫描器,索引扫描器.
      • log-component-search-engine: ☞把关键词等信息交给搜索引擎,它能帮你找到你想要的日志
    • log-front-end: ☞前端代码
    • log-resource: ☞相关资源文件,如sql,shell,redis,服务配置等.
    • log-service: ☞日志系统所有服务
      • log-service-collector: ☞最重要的服务->采集器 每一台服务器上,只需要配置一个采集器,它可以采集这台服务器上的多个应用的日志.它还提供[实时日志,历史日志,跨应用日志,定时任务]等功能
      • log-service-collector-service: ☞"采集器服务",顾名思义:为采集器而服务..它的功能:[注册采集器,让采集器获取数据]
      • log-service-common: ☞日志系统服务的common包
      • log-service-tracer: ☞与Spring Cloud 的 tracer类似,用于收集跨应用日志.如果应用日志量很多,可以考虑将该服务器拆为一读一写的2个实例.
    • log-service-center: ☞Spring Cloud的核心组件
      • log-service-center-config-center: ☞配置中心
      • log-service-center-gateway: ☞统一入口网关
      • log-service-center-registry: ☞注册中心

    开发环境

    • intellj idea
    • jdk1.7
    • maven3.3.9
    • nodejs6.9.2

    相关技术

    日志规范

    • Logback配置: 请使用logback作为日志打印,并将配置文件logback.xml修改如下.[STDOUT,ALL]是必须的Appender.
    <configuration>
        <property name="log.path" value="./log"></property>
        <property name="log.context" value="appName"></property>
    
        <contextName>${log.context}</contextName>
    
        <!--控制台输出-->
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%thread][%class.%method:%line]:%m%n</pattern>
            </encoder>
        </appender>
    
        <!--每分钟打印一个log, yyyy/MM/dd/HH/mm 树形目录-->
        <appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${log.path}/%d{yyyy/MM/dd/HH/mm, aux}/%d{yyyyMMddHHmm}.log</fileNamePattern>
            </rollingPolicy>
            <encoder>
                <pattern>[%d{yyyy-MM-dd HH:mm:ss}][%-5level][%thread][%class.%method:%line]:%m%n</pattern>
            </encoder>
        </appender>
    
        <!--打印任意包日志-->
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="ALL"/>
        </root>
    </configuration>
    • 日志打印:

    1.引入依赖:  

    <dependency>
      <groupId>cn.yunyichina.log</groupId>
      <artifactId>log-common</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

    2.使用LoggerWrapper替代Logger打印日志:

    LoggerWrapper wrapper = LoggerWrapper.getLogger(Target.class);
    wrapper.info("hello");
    wrapper.getLogger().info("world"); 

    3.定义上下文:

    /**
     * User类,有如下方法
     */
    public String getUserBy(Integer userId){
      //...
    }

    /**
     * UserAspect类,是User类的一个切面,切点'userPointCut'可切取User类的'getUserBy'方法.
     */
    @Around("userPointCut()")
    public Object aroundUserPointCut(ProceedingJoinPoint pjp) throws Throwable {
      //为getUserBy方法生成一个上下文,上下文的开始就是方法被调用之前.此时会利用Mongodb的ObjectId,生成一个id,作为getUserBy这个方法调用的上下文id.
      wrapper.contextBegin("获取用户开始");
      Object returnValue = pjp.proceed();//调用getUserBy()
      wrapper.contextEnd("获取用户结束");//上下文的结束,就是getUserBy返回之后,或者异常捕获之后.
    }

    基础架构图


    权利声明:本站所有商品信息、客户评价等信息是初心商城重要的数据资源,未经许可,禁止非法转载使用。 注:本站商品信息均来自初心商城,其真实性、准确性和合法性由初心商城负责。

                    初心源说明:初心商城主要为程序员提供开发基础的代码源以及成熟项目,网站中所有的商品有提供收费版本的, 也有提供免费版本的,按照大家各自不同的需求进行购买。实实在在的让程序员只用专注于自己的业务实现你的小梦想, 如果您对我们的成果表示认同并且觉得对你有所帮助我们愿意接受来自各方面的支持^_^。

                    支持:用手机扫描二维码支付

                    支付宝支持我们 微信支持我们

                    您的支持将被用于:
                    1、持续深入的上传更多更好的源代码
                    2、建立更加完善的技术社区
                    3、完善现在系统出现各种问题
                    4、购买域名和租赁服务器

                    1、交易规则

                    2、发货方式

                    1、自动:在上方保障服务中标有自动发货的商品,拍下后,将会自动收到来自卖家的商品获取(下载)链接

                    2、手动:在上方保障服务中标有手动发货的商品,拍下后,卖家会收到邮件,也可通过QQ或订单中的电话联系对方。

                    3、退款说明

                    1、描述:源码描述(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、版本不符等)

                    2、演示:有演示站时,与实际源码小于95%一致的(但描述中有"不保证完全一样、有变化的可能性"类似显著声明的除外)

                    3、发货:手动发货源码,在卖家未发货前,已申请退款的

                    4、服务:卖家不提供安装服务或需额外收费的(但描述中有显著声明的除外)

                    5、其它:如质量方面的硬性常规问题等

                    备注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法对描述进行修改!

                    4、注意事项

                    1、客户买完之后未确认收货,将不会收到下载地址和下载码,确认收货之后才能收到下载地址和下载码。

                    2、在未拍下前,双方在QQ上所商定的内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准);

                    3、在商品同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外);

                    4、在没有"无任何正当退款依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;

                    5、虽然交易产生纠纷的几率很小,但请尽量保留如聊天记录这样的重要信息,以防产生纠纷时出现问题不明确的情况。

                    5、交易声明

                    1、本站作为直卖平台,依据交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;

                    2、非平台线上交易的商品,出现任何后果均与本站无关;无论卖家以何理由要求线下交易的,请联系管理举报。

                    初心Logo

                    初心商城| 初心系列| 初心博客| 版本历史| 通知公告| 系统反馈

                    © 2016-2019 上海吾永网络科技有限公司 保留所有权利 沪ICP备19028491号
                    违法和不良信息举报电话:186-2950-9347,本网站所列数据,除特殊说明,所有数据均出自我工作室
                    本网站兼容所有主流浏览器,不支持手机自适应

                    返回顶部小火箭