学习 Fluentd(一):初识 Fluentd

更新至 Fluentd 1.8.1 版本

Fluentd 是一个开源的数据收集器用于构建统一的日志层。

Fluentd 使用 C 和 Ruby 语言编写。

Fluentd 是 CNCF 项目,并于 2019 年 4 月 11 日毕业。

Fluentd 支持的商业公司:Treasure Data

和 Fluentd 相似的项目还有 Logstash

Fluentd

Fluentd 特性:

  1. 使用 JSON 作为日志格式;
  2. 可插拔的架构设计和丰富的插件(Ruby Gem);
  3. 使用 C 和 Ruby 编写,吞吐高且资源占用低;
  4. 内置的可靠性,支持基于内存或文件的缓存,支持故障转移和高可用。

事件

Fluentd 中的事件由三部分构成:

  • Time 事件发生的时间(精度为纳秒);
  • Tag 用于路由;
  • Record JSON Object。

Fluentd 时间处理的一般流程如下所示:

Event Processing

  • Input 读取或接收数据;
  • Parser 解析数据;
  • Filter 过滤或转换数据;
  • Buffer 缓存数据;
  • Formatter 格式化数据;
  • Output 写入或发送数据。

安装

需要 Ruby >= 2.1,执行 ruby -v 查看 Ruby 版本。

安装 Fluentd:

gem install fluentd --no-ri --no-rdoc  

安装 Fluentd 插件:

fluent-gem install <plugin>  

启动 Fluentd,配置文件默认路径为 /etc/fluent/fluent.conf:

fluentd -c <config file>  

参考