日志收集工具简单对比( 二 )


Channel:Channel 存储,缓存从source到Sink的中间数据 。可使用不同的配置来做Channel,例如内存,文件,JDBC等 。使用内存性能高但不持久,有可能丢数据 。使用文件更可靠,但性能不如内存 。
Sink:Sink负责从管道中读出数据并发给下一个Agent或者最终的目的地 。Sink支持的不同目的地种类包括:HDFS,HBASE,Solr,ElasticSearch,File,Logger或者其它的Flume Agent 。
优势Flume已经可以支持一个Agent中有多个不同类型的channel和sink,我们可以选择把Source的数据复制,分发给不同的目的端口,比如:

日志收集工具简单对比

文章插图
 
Flume还自带了分区和拦截器功能,因此不是像很多实验者认为的没有过滤功能
缺点Luentd和其插件都是由Ruby开发
日志收集工具简单对比

文章插图
 

日志收集工具简单对比

文章插图
 
Logagent优势可以获取 /var/log 下的所有信息,解析各种格式(Elasticsearch,Solr,MongoDB,Apache HTTPD等等),它可以掩盖敏感的数据信息,例如,个人验证信息(PII),出生年月日,信用卡号码,等等 。它还可以基于 IP 做 GeoIP 丰富地理位置信息(例如,access logs) 。同样,它轻量又快速,可以将其置入任何日志块中 。在新的 2.0 版本中,它以第三方 node.js 模块化方式增加了支持对输入输出的处理插件 。重要的是 Logagent 有本地缓冲,所以不像 Logstash,在数据传输目的地不可用时会丢失日志 。
劣势尽管 Logagent 有些比较有意思的功能(例如,接收 Heroku 或 CloudFoundry 日志),但是它并没有 Logstash 灵活 。
典型应用场景Logagent 作为一个可以做所有事情的传输工具是值得选择的(提取、解析、缓冲和传输) 。
Fluentdfluentd基于CRuby实现,并对性能表现关键的一些组件用C语言重新实现,整体性能不错 。
fluentd设计简洁,pipeline内数据传递可靠性高 。相较于logstash,其插件支持相对少一些 。
开源社区中流行的日志收集工具,所以支持相对较好
rsyslog优势rsyslog 是经测试过的最快的传输工具 。如果只是将它作为一个简单的 router/shipper 使用,几乎所有的机器都会受带宽的限制,但是它非常擅长处理解析多个规则 。它基于语法的模块( 


推荐阅读