当前位置: 首页 > 网络应用技术

分布式日志存储架构设计方案

时间:2023-03-08 18:54:55 网络应用技术

  在一个完整的项目中,不仅要完成正常业务发展。同时,为了提高某些因素,例如开发效率,系统异常跟踪,系统功能扩展等,系统在开发和开发和操作经常使用。这要求我们拥有一个完整的日志系统来存储这些数据。本文将分享如何设计高度可用的可扩展分布式日志系统。

  在一个系统中,日志通常在下面的某些场景中起着非常重要的作用:

  相应的日志主要分为以下三种:

  通过以上几点,大致理解了日志系统的重要性。接下来,我们将进一步了解如何设计日志系统。

  在项目的早期,由于项目的特征和同一项目,通常由单个节点部署了一般项目。这次,日志通常存储在相应的服务器上,如下所示:如下所示:

  当客户端向服务器发送请求时,相应的服务器处理业务并记录日志文件。这也是传统的日志记录方法,以及许多Back -End -End框架的默认日志记录方法。例如,HyperF Framework在下面的PHP中,默认情况下将MySQL的操作日志记录到日志文件中。

  根据这种传统的单节节点部署的优势是什么?

  此处的缺点(文件)是指系统服务使用分布式部署时的日志存储。一般逻辑图如下:

  上面提到了分布式系统的缺点,使用文件存储日志。

  优势和缺点已摘要对日志服务的体系结构的演变。下一步,让我们讨论如何设计高度可用和扩展的日志系统。与日志系统相对应,我亲自采取以下几点:

  对于日志系统,我们可以使用自开发方法或开源系统部署。在本文中,我们共享两个简单的日志服务系统。一般逻辑图如下:

  系统日志的最终着陆绝对是磁盘。因此,我们使用mongoDB记录日志的第一个解决方案。为什么使用mongoDB作为日志存储服务器?

  将MongoDB作为日志存储服务,一般逻辑可以使用以下结构:

  麋鹿是Elasticsearch +Logstash +Kibana的缩写。这是开源日志分析平台的结构。Elk是开源的,社区是活动的,有很多用户,并且此结构也被广泛使用。一般的逻辑图是如下:

  麋鹿常用的体系结构