数据采集
fluentd

Fluentd是一个开源的数据收集器,专为处理数据流设计

商务合作
4
(1)

Fluentd是一个开源的数据收集器,专为处理数据流设计,有点像 syslogd(syslogd可以负责记录系统运作中,kernel或应用程式产生的各种讯息。这些讯息被写入到系统的纪录档中,让管理人员,进行故障排除、追踪尝试非法入侵的使用者) ,但是使用JSON作为数据格式。它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发。

据 分(Y)析(Y),Fluentd是由Fluent+d得来,d生动形象地标明了它是以一个守护进程的方式运行。官网上将其描述为data collector,在使用上,我们可以把各种不同来源的信息,首先发送给Fluentd,接着Fluentd根据配置通过不同的插件把信息转发到不同的 地方,比如文件、SaaS Platform、数据库,甚至可以转发到另一个Fluentd。

其采用Ruby编写,比较注重性能的地方采用C编写,Ruby的创始人松本老师这样评价Fluentd:

Fluentd proves you can achieve programmer happiness and performance at the same time. A great example of Ruby beyond the Web.

Heroku的联合创始人Adam Wiggins说的挺有道理:

Logs are streams, not files. I love that Fluentd puts this concept front-and-center, with a developer-friendly approach for distributed systems logging.

 

Fluentd的作用

官网给出的两张张图能让你很直观的了解Fluentd的作用。

使用Fluentd前,日志系统的状态:

fluentd

使用Fluentd后,日志系统的状态:

fluentd

Fluentd的功能

1)安装方便

2)占用空间小

3)半结构化数据日志记录

4)灵活的插件机制

5)可靠的缓冲

6)日志转发

Fluentd的部署和构架

Fluentd的部署和Flume非常相似:

fluentd

——————————————————————————————–

Fluentd的架构设计和Flume如出一辙:

fluentd

Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。

Input

Input负责接收数据或者主动抓取数据。支持syslog,http,file tail等。

Buffer

Buffer负责数据获取的性能和可靠性,也有文件或内存等不同类型的Buffer可以配置。

Output

Output负责输出数据到目的地例如文件,AWS S3或者其它的Fluentd。

Fluentd的技术栈

fluentd

Fluentd的结构

由于其简单的结构,Fluentd的核心只包含3000行Ruby。Fluentd收集各种输入源的事件并将它们写入输出接收器。 eg:输入源:HTTP, Syslog, Apache Log输出源:Files, Mail, RDBMS databases, NoSQL storages

下图显示了输入和输出的基本思想:

fluentd

FLuentd 的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。 Fluentd从各方面看都很像Flume,区别是使用Ruby开发,Footprint会小一些,但是也带来了跨平台的问题,并不能支持Windows 平台。另外采用JSON统一数据/日志格式是它的另一个特点。相对于Flumed,配置也相对简单一些。

 

这个大数据组件是否好用呢?

点击星号为它评分!

平均评分 4 / 5. 投票数: 1

到目前为止还没有投票!成为第一位评论此组件。

相关导航

暂无评论

暂无评论...