`

日志收集系统

 
阅读更多

copy from :https://www.jianshu.com/p/63d7d4d0e598

常用的日志收集系统有Syslog-ng,Scribe,Flume,当然还有ELK的LogStash.而目前互联网公司最长用的时Scribe和Flume,Scibe是Facebook开源的,但是现在已经不维护,所以不推荐使用

 

Scribe

Scribe是Facebook开源的日志收集系统,在facebook内部已经得到大量的应用。Scribe是基于一个非阻断C++服务的实现。它能够从各种日志源上收集日志,存储到一个中央存储系统。

三个角色:

  • 日志服务器
    • 为了收集日志,每一台日志服务器上都会部署一个scribe客户端,它包含两个模块agent 和 local_server
    • Agent是以tail的方式读取本地目录下的日志文件,并将数据写到本地的Local_server
    • local_server通过zookeeper定位到Center_server
  • 中心服务器
    • 中心服务器作用就是把散落在各个机器的日志统一收集起来
    • Center_server和Local_server一样,只是配置不同,通过thrift进行通信
    • center_server收到数据后,根据配置将各个category的数据发向不同的方向,比如写到HDFS或者发到Kafka等
  • 存储服务器
    • 最终存储日志的地方
    • 供计算框架以及搜索引擎框架计算使用

LogStash

Logstash是ELK中的一个工具,在ELK中起到的作用是对日志进行收集、分析、过滤。

 

上图所示,由三个组件组成:

  • 数据来源,支持较多输入源的插件
    • beats
    • file
    • http
    • jdbc
    • kafka
    • log4j
    • ...
  • 过滤器
    • json
    • csv
    • ...
  • 输出目的地
    • file
    • mongodb
    • rabbitmq
    • kafka

Flume

Flume是分布式的、可靠的、高性能、可扩展的的日志收集框架。

Flume的Agent

 

Agent由三部分组成:

  • Source: 数据源
  • Channel:包括两种fileChannel和Memorychannel
  • Sink:输出目的地三个角色:
  • 客户端日志收集层
    • 在每个客户端部署一个Agent进程,负责对单机的日志手机工作
  • 中心服务器
    • Collector层部署在中心服务器上,负责接收Agent层发送的日志,并且将日志根据路由规则写到响应的Store层
  • 存储层

对比

  • Scribe:C++编写,现在已经不再维护,不推荐使用

  • Logstash: 针对日志收集,搜索,计算,可视化有一系列的产品,并且可使用的插件以及社区较为活跃推荐使用

  • Flume: Java编写,较为灵活,并且吞吐量高。业界已经验证过,建议使用。

总结

从上面可以看出日志收集框架基本都是三个组件:

  • Agent : 部署在各个应用服务器,来收集应用的日志

  • Collector: 日志收集中心,把分散在Agent的统一统一收集到日志中心

  • Storage: 存储层,日志收集之后的存储

注:
这里的日志收集框架只是最简单的,如果数据量过大,以及考虑数据收集的可靠。可以在中间添加kafka或者redis等中间件,保证可靠以及缓冲等作用。

分享到:
评论

相关推荐

    分布式I_O日志收集系统的设计与实现

    ### 分布式I/O日志收集系统的设计与实现 #### 一、引言 随着信息技术的飞速发展,存储系统已成为计算机系统的核心组成部分之一。在实际应用环境中,对存储系统的数据处理速度、可靠性和安全性等方面提出了更为严格...

    分布式I/O日志收集系统的设计与实现

    分布式I/O日志收集系统的知识点可以详细划分为以下几个方面: 1. 分布式系统I/O子系统的研究背景: 随着信息技术的快速发展,存储系统变得越来越复杂,尤其在分布式计算环境中。对于I/O子系统的研究可以帮助我们...

    基于Storm的日志收集系统

    【基于Storm的日志收集系统】是一种利用Apache Storm技术构建的实时大数据处理解决方案,主要用于收集、分析和存储应用程序的日志数据。在现代企业中,日志数据对于监控系统性能、诊断问题以及进行业务分析至关重要...

    ELK日志收集系统.docx

    ELK(Elasticsearch, Logstash, Kibana)日志收集系统是一种广泛使用的日志管理和分析解决方案。它由三个核心组件组成,分别是Elasticsearch(一个强大的分布式搜索引擎),Logstash(一个数据处理管道),以及...

    ELK日志收集系统搭建

    《ELK日志收集系统搭建详解》 在现代IT环境中,日志管理是不可或缺的一环。日志数据包含了系统的运行状态、错误信息以及各种诊断数据,对于故障排查、性能优化和安全监控至关重要。ELK(Elasticsearch, Logstash, ...

    基于Flume的美团日志收集系统.pdf

    本文对基于 Flume 的美团日志收集系统进行了详细的介绍和分析,包括日志收集系统的架构设计、Flume-NG 与 Scribe 的比较、美团日志收集系统的架构和设计、美团日志收集系统的设计和优化等方面。同时,本文还对 Flume...

    Golang日志收集项目(采用taillog收集+etcd注册集群+kafka作为开源流处理平台+ES)

    在构建一个基于Golang的日志收集系统时,我们通常会关注如何高效地处理大量日志数据,实现集群的动态扩展,并提供实时分析能力。在这个项目中,采用了多种技术组件来实现这一目标。以下是对这些技术及其应用的详细...

    ELK日志收集系统完全实现

    ELK(Elasticsearch, Logstash, Kibana)日志收集系统是一种广泛使用的日志管理和分析解决方案。它能够高效地收集、解析、存储和展示应用程序及系统的日志数据,帮助运维人员监控系统状态,排查问题,进行数据分析。...

    Facebook大量相似高速数据实时日志收集系统

    ### Facebook大量相似高速数据实时日志收集系统Data Freeway #### 概述 Facebook大量相似高速数据实时日志收集系统(Data Freeway)是Facebook为了处理海量数据而设计的一个高效、可靠的日志收集与处理系统。该...

    采用Go语言的日志收集系统.zip

    在IT行业中,日志收集系统是至关重要的工具,它能够帮助开发者和运维人员监控应用程序的运行状态,定位问题,以及进行性能分析。本项目采用Go语言实现,结合了多个先进的技术组件,构建了一个高效且全面的日志处理...

    基于Spring Boot、Elasticsearch、Kafka及缓冲队列的日志收集系统设计源码

    该项目是一款基于Spring Boot框架,融合Elasticsearch、Kafka及缓冲队列技术的日志收集系统源码。该系统采用Java语言开发,辅以CSS、JavaScript和HTML进行界面设计,共包含37个文件,其中Java文件19个,图片文件3个...

    ELK日志收集系统讲析

    ### ELK日志收集系统详解 #### 一、系统背景 在大数据时代,日志数据作为重要的业务数据来源之一,在企业运维、业务分析等方面扮演着至关重要的角色。ELK(Elasticsearch、Logstash、Kibana)是当前非常流行的一套...

    基于Flume的美团日志收集系统方案.doc

    《基于Flume的美团日志收集系统》是一个深入解析美团如何利用Apache Flume构建高效、稳定、可扩展的日志收集解决方案的文档。日志收集在大数据领域扮演着至关重要的角色,因为它为离线分析和实时处理提供了基础数据...

    ELK日志收集系统操作手册.docx

    ELK日志收集系统操作手册 ELK(日志收集系统)是三个开源软件的缩写,分别表示Elasticsearch、Logstash、Kibana,它们都是开源软件。下面是对ELK日志收集系统操作手册的详细介绍: 一、ELK简介 Elasticsearch是开源...

    基于Apache,Flume,的大数据日志收集系统.docx

    此日志收集系统的优势在于其灵活性和可扩展性,能够适应多平台和多系统的日志管理需求,同时利用开源工具如 Flume 和 Morphline 降低了实施成本。通过这样的系统,组织能够有效地监控和分析日志数据,从而提升运维...

    ELK日志收集系统架构图.png

    ELK日志收集系统架构图

    前端错误、性能、安全日志收集系统,涉及到nodejs、mongodb、websocket等等内容.zip

    在构建一个前端错误、性能和安全日志收集系统时,我们通常会利用一系列技术来确保数据的有效捕获、存储和分析。在这个项目中,我们看到了关键的三个技术:Node.js、MongoDB和WebSocket。以下是对这些技术及其在系统...

Global site tag (gtag.js) - Google Analytics