日志存储系统经常使用技术方案介绍

      日志存储系统经常使用技术方案有两种:一是log4j/logback+mongodb的方式,一种是基于ELK的日志存储系统。前端

      日志通常存储在数据库和文件系统中。日志数据要和生产正式库分开存储,不然会影响正式库的运行,带来隐患。另外,为了防止日志存储性能问题,后期能够考虑采用异步的消息队列形式进行存储。java

      下面详细讲解。web

  1.便捷的日志存储方式log4j+mongodbmongodb

  1)安装和配置简介数据库

  须要引入的jar包有:Mongo Java driver、Log4J(1.2.16以上版本)、log4mongo-java,经过log4j.properties属性文件配置,整合log4j和mongodb。log4j可直接写数据到mongodb中。服务器

  2)日志分析和查看异步

  可经过mongovision这个web客户端进行日志的查看和分析。mongovision,使用extjs做为前端,体验较好,须要java7及以上版本。性能

 

  2.基于ELK的日志系统日志

  ELK=ElasticSearch+LogStash+Kibana对象

  日志数据流以下:应用将日志落地在本地文件,部署在每台服务器上的FileBeat负责收集日志,而后将日志发送给LogStash;LogStash对日志进行处理解析等操做;而后将处理后的Json对象传递给ElasticSearch,进行落地并进行索引处理;最后经过Kibana来提供web界面,来查看日志等。

  对于日志数据流特别大的状况,LogStash会形成拥堵,这个时候能够使用消息队列来进行缓冲,好比kafka。新的流程以下:

--------------------------------------------------------------------

PS: 欢迎关注公众号"Devin说",会不按期更新Java相关技术知识。

--------------------------------------------------------------------

相关文章
相关标签/搜索