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日志收集系统的知识点可以详细划分为以下几个方面: 1. 分布式系统I/O子系统的研究背景: 随着信息技术的快速发展,存储系统变得越来越复杂,尤其在分布式计算环境中。对于I/O子系统的研究可以帮助我们...
【基于Storm的日志收集系统】是一种利用Apache Storm技术构建的实时大数据处理解决方案,主要用于收集、分析和存储应用程序的日志数据。在现代企业中,日志数据对于监控系统性能、诊断问题以及进行业务分析至关重要...
ELK(Elasticsearch, Logstash, Kibana)日志收集系统是一种广泛使用的日志管理和分析解决方案。它由三个核心组件组成,分别是Elasticsearch(一个强大的分布式搜索引擎),Logstash(一个数据处理管道),以及...
《ELK日志收集系统搭建详解》 在现代IT环境中,日志管理是不可或缺的一环。日志数据包含了系统的运行状态、错误信息以及各种诊断数据,对于故障排查、性能优化和安全监控至关重要。ELK(Elasticsearch, Logstash, ...
本文对基于 Flume 的美团日志收集系统进行了详细的介绍和分析,包括日志收集系统的架构设计、Flume-NG 与 Scribe 的比较、美团日志收集系统的架构和设计、美团日志收集系统的设计和优化等方面。同时,本文还对 Flume...
在构建一个基于Golang的日志收集系统时,我们通常会关注如何高效地处理大量日志数据,实现集群的动态扩展,并提供实时分析能力。在这个项目中,采用了多种技术组件来实现这一目标。以下是对这些技术及其应用的详细...
ELK(Elasticsearch, Logstash, Kibana)日志收集系统是一种广泛使用的日志管理和分析解决方案。它能够高效地收集、解析、存储和展示应用程序及系统的日志数据,帮助运维人员监控系统状态,排查问题,进行数据分析。...
### Facebook大量相似高速数据实时日志收集系统Data Freeway #### 概述 Facebook大量相似高速数据实时日志收集系统(Data Freeway)是Facebook为了处理海量数据而设计的一个高效、可靠的日志收集与处理系统。该...
在IT行业中,日志收集系统是至关重要的工具,它能够帮助开发者和运维人员监控应用程序的运行状态,定位问题,以及进行性能分析。本项目采用Go语言实现,结合了多个先进的技术组件,构建了一个高效且全面的日志处理...
该项目是一款基于Spring Boot框架,融合Elasticsearch、Kafka及缓冲队列技术的日志收集系统源码。该系统采用Java语言开发,辅以CSS、JavaScript和HTML进行界面设计,共包含37个文件,其中Java文件19个,图片文件3个...
### ELK日志收集系统详解 #### 一、系统背景 在大数据时代,日志数据作为重要的业务数据来源之一,在企业运维、业务分析等方面扮演着至关重要的角色。ELK(Elasticsearch、Logstash、Kibana)是当前非常流行的一套...
《基于Flume的美团日志收集系统》是一个深入解析美团如何利用Apache Flume构建高效、稳定、可扩展的日志收集解决方案的文档。日志收集在大数据领域扮演着至关重要的角色,因为它为离线分析和实时处理提供了基础数据...
ELK日志收集系统操作手册 ELK(日志收集系统)是三个开源软件的缩写,分别表示Elasticsearch、Logstash、Kibana,它们都是开源软件。下面是对ELK日志收集系统操作手册的详细介绍: 一、ELK简介 Elasticsearch是开源...
此日志收集系统的优势在于其灵活性和可扩展性,能够适应多平台和多系统的日志管理需求,同时利用开源工具如 Flume 和 Morphline 降低了实施成本。通过这样的系统,组织能够有效地监控和分析日志数据,从而提升运维...
ELK日志收集系统架构图
在构建一个前端错误、性能和安全日志收集系统时,我们通常会利用一系列技术来确保数据的有效捕获、存储和分析。在这个项目中,我们看到了关键的三个技术:Node.js、MongoDB和WebSocket。以下是对这些技术及其在系统...