分布式日志系统解决方案

在这里插入图片描述

一、什么是PlumeLog

  • PlumeLog 是一款无入侵的分布式日志系统

    基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志

    基于elasticsearch作为查询引擎.

    实现日志报错预警
    在这里插入图片描述

PlumeLog有什么优点

效率高 免维护 搭建快

高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护 无需修改老项目,引入直接

开源项目地址 : http://www.plumelog.com/#/

二 、如何引入该项目

该项目(PlumeLog)与已有项目的结合逻辑:
将已有项目的日志数据位置指定到redis/kafka中,把redis/kafka当做一个中间件,该项目(PlumeLog)主动到指定的redis/kafka中拉取日志数据,对数据进行逐条处理后同步到elasticsearch中,供前端页面搜索展示。总体来说是将日志从原先的存储位置从磁盘文件换到elasticsearch中,更方便定位问题发现问题。同时也有相应的弊端,毕竟elasticsearch是以内存作为存储的引擎,但庞大的数据量的日志文件最终还是需要落地到磁盘文件,所以如皋想尽可能的扩大搜索范围就需搭建elasticsearch集群环境,这个看所处企业的数据量及日志规划。一般的企业,搜索范围15天内,一台elasticsearch 其余文件落地到磁盘压缩足以应对了。因为改项目(PlumeLog)有完善的日志报警功能,通知到个人手机、邮箱、微信、钉钉都可对接。

1、根据自己系统的日志插件的使用选择指定依赖放到原本系统中
2、以log4j为例子,
1)引入相应的jar包,修改xml文件,在标签内添加标签 ,同时在标签中也指定输出对象如下:

 <appender>
	<RedisAppender name="plumelog_demo" appName="liyu_test" redisHost="127.0.0.1" redisPort="6379"
                       logQueueSize="1000" runModel="1">

            <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
      </RedisAppender>
   </appenders>
   
<root level="debug">
            <appender-ref ref="plumelog_demo"/>
</root>

2、根据日志量的大小选择redis或kafa作为中间件
1)、该项目(PlumeLog)主动从redis中拉取,源码中是while(true)+睡眠的机制实现,不知这种实现机制与spring boot带的定时任务有何区别是否在效率上或是内存占用是会什么不同
2)、以从redis中拉取日志信息为例
使用redis的pipeline 去拉取一条条数据会提高很多,因为redis的性能瓶颈不是硬件问题,而是网络传输,使用pipeline能够集中的将请求批量处理,减少重复的网络传输所产生的耗时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值