分布式日志系统解决方案

分布式日志系统解决方案_第1张图片

一、什么是PlumeLog

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

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

    基于elasticsearch作为查询引擎.

    实现日志报错预警
    分布式日志系统解决方案_第2张图片

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文件,在标签内添加标签 ,同时在标签中也指定输出对象如下:

 
	

            
      
   
   

            

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

你可能感兴趣的:(日志体系,redis,redis,kafka,elasticsearch)