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日志收集系统的设计与实现
基于Fluentd和HDFS的日志收集系统设计与实现,刘富源,王春露,日志系统是信息系统里的重要组成部分,常用的日志收集工具都是以单机环境为基础,要进行多机日志收集时操作复杂,获得的日志集也
ELK日志收集系统架构图
Linux下安装配置rsyslog,前端展示系统为LogAnalyzer,搭建日志收集系统安装配置。windows日志通过evtsys外发到SYSLOG服务器配置。 LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络...
天融信日志收集与分析系统用户手册
Facebook大量相似高速数据实时日志收集系统Data Freeway Large-scale near real-time log collection system at Facebook
ELK日志收集系统操作手册,详细讲解了elk组件使用方式
ELK日志收集系统讲析,ELK+filebeat+Kafka,多组件结合
Loki日志收集系统简介与应用
基于Flume的美团日志收集系统.pdf
随着存储系统的快速发展,以及实际应用中对存储系统的要求日益苛刻,为了研究存储系统I/O子系统的运行形态,设计并实现了一种分布式I/O日志收集系统,该系统能够通过总控制台同时控制分布式系统的多个节点并行收集...
采用Go语言,配置中心etcd、消息中间件Kafka、搜索引擎ElasticSearch、时序数据库、InfluxDB以及可视化平台Kibana、Grafana开发的日志收集系统
自己制作的基于flume的日志收集系统概念介绍,非常浅显,不算是资源,拿出来与大家讨论
基于Flume的美团日志收集系统方案.doc
04、日志收集系统Flume-flume配置案例
基于Apache,Flume,的大数据日志收集系统.docx
采用Go语言,配置中心etcd、消息中间件Kafka、搜索引擎ElasticSearch、时序数据库、InfluxDB以及可视化平台Kibana、Grafana开发的日志收集系统 【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、...
基于实时日志收集系统在运维的实践.pdf
基于实时日志收集系统在运维的实践.pptx