现主流的日志分析系统有 logstash 和 flume,结合好多网上前辈的说法,汇总了一下,希望和大家分享与探讨,有不同的想法欢迎留言。
Flume
Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统;
支持定制各类数据发送方,便于收集数据,一般和 kafka 订阅消息系统搭配较多;
目前有两个版本,OG和NG,区别很大,感兴趣的可以去研究一下;
特点:
1、侧重数据传输,有内部机制确保不会丢数据,用于重要日志场景;
2、由java开发,没有丰富的插件,主要靠二次开发;
3、配置繁琐,对外暴露监控端口有数据。
logstash
elastic.co的一个开源的数据收集引擎,可动态的统一不同的数据源的数据至目的地;
目的处理并收集日志格式,搭配elasticsearch进行分析,kibana进行页面展示;
目前最新版本5.3,集成了上述两个搭档,参考官网详解。
特点:
1、内部没有一个persist queue,异常情况可能会丢失部分数据;
2、由ruby编写,需要ruby环境,插件很多;
3、偏重数据前期处理,分析方便。
flume | logstash | |
结构上 | Source、Channel、Sink | Shipper、Broker、Indexer |
简易程度 | 很繁琐,要分别作source、channel、sink的手工配置,而且涉及到复杂的数据采集环境 | 简洁清晰,三个部分的属性都定义好了,只需选择就好,而且可以自行开发插件 |
历史背景 | 最初设计的目的是为了把数据传入HDFS中,侧重传输(多路由),重稳定性 | 侧重对数据的预处理,因为日志的字段需要大量的预处理,为解析做铺垫 |
对比 | 像是散装的台式机,使用较麻烦,工具繁多,需要根据业务选择 | 更像是组装好的台式机,使用简单方便,搭配ELK更高效 |
时间: 2024-10-29 10:55:55