阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Flunetd 用于统一日志记录层的开源数据收集器

571次阅读
没有评论

共计 3996 个字符,预计需要花费 10 分钟才能阅读完成。

传统的日志查看方式
Flunetd 用于统一日志记录层的开源数据收集器

使用 fluentd 之后
Flunetd 用于统一日志记录层的开源数据收集器

一、介绍

Fluentd 是一个开源的数据收集器,可以统一对数据收集和消费,以便更好地使用和理解数据。
几大特色:
使用 JSON 统一记录

简单灵活可插拔架构

最小的资源需求

内置可靠性

1. JSON 统一记录

Fluentd 尽可能地将数据结构转化为 JSON 格式,这样可以使 Fluentd 统一处理日志数据的各个方面:收集,过滤,缓冲和输出多个源和目的地(Unified Logging Layer)的日志。JSON 格式对于下游数据处理容易得多,因为它具有足够的结构可访问,同时保留灵活的模式。(在我们的日志集群架构中,fluentd 担任了一个转发者角色。)

2. 可插拔架构

Fluentd 有一个灵活的插件系统,允许社区扩展其功能。社区提供了 500 多个的插件连接数十个 data sources 和 data outputs,利用这些插件,我们可以更好的处理日志消息流。

3. 最小的资源需求

Fluentd 是用 C 语言和 Ruby 语言编写的,需要很少的系统资源。一个运行实例 使用 30-40MB 的内存,可以处理 13,000 个事件 / 秒 / 核心。Fluentd 以 Ruby 编写,具有灵活性,性能敏感部分用 C 编写。(另外 Fluentd 还有一个 mini 版本叫 Fluent Bit io。程序只有几十 kb 的大小,由于暂不支持输出消息到 kafka。所以暂未考虑使用。)

4. 内置可靠性

Fluentd 支持基于内存和文件的缓冲(推荐配置文件中可添加 buffer 选项为 file/production、memory/test),以防止节点间数据丢失。Fluentd 还支持强大的故障切换功能(standby),可以设置高可用性。

二、插件介绍

Fluentd 有 6 种类型的插件:input,Parser,Filter,Output,Formatter 和 Buffer。

1. Input Plugins

概述:Fluentd 从外部来源检索和拉取日志事件,input 插件通常会创建一个线程 socket 和一个监听 socket,它也可以从被定期写入的数据源中提取数据(如 tail file_name)。
支持的 input 插件列表:

in_udp
in_tcp
in_forward
in_secure_forward
in_http
in_unix
in_tail
in_exec
in_syslog
in_scribe
in_multiprocess
in_dummy
2. Output Plugins

概述:输出插件又可分为三种类型:非缓冲、缓冲和时间切片(time sliced)
Non-Buffered 输出插件不会缓冲数据并立即写出结果
Buffered 输出插件维护一个队列(一个 chunk 是一个事件的集合),并且它的行为可以通过“chunk limit”和“queue limit”参数进行调整
Time Sliced 输出插件实际上是一种 Bufferred 插件,但是这些块是按时间键入的

Flunetd 用于统一日志记录层的开源数据收集器

输出插件的缓冲区行为(如果有),可以由一个单独的缓冲区插件定义。即为每个输出插件可以选择不同的缓冲区插件。有一些输出插件是完全定制的,不要使用缓冲区。
Non-Buffered 输出插件列表

out_copy
out_null
out_roundrobin
out_stdout

Buffered 输出插件列表

out_exec_filter
out_forward
out_mongo or out_mongo_replset

Time Sliced 输出插件列表 (我们用到了 kafka)

out_splunk
out_file
out_forward
out_secure_forward
out_exec
out_exec_filter
out_copy
out_geoip
out_roundrobin
out_stdout
out_null
out_s3
out_splunk
out_kafka
out_mongo
out_mongo_replset
out_relabel
out_rewrite_tag_filter
out_webhdfs
3. Buffer Plugins

概述:Buffer plugins 被缓冲输出插件使用,如 out_file, out_forward 等等。用户可以选择最适合系统架构性能和可靠性需求的缓冲区插件。
Buffer 结构

queue
+---------+
|         |
|  chunk <-- write events to the top chunk
|         |
|  chunk  |
|         |
|  chunk  |
|         |
|  chunk --> write out the bottom chunk
|         |
+---------+

如上面所示,当顶部块超过指定的大小或时间限制时(分别为 buffer_chunk_limit 和 flush_interval),一个新的空块将被推到队列的顶部。当新的块被推出时,底部块被立即写出。
如果底部的块未能写出,它将保留在队列中,并且 Fluentd 将在等待几秒钟后重试(等待时间,根据 retry_wait 参数设置)。如果重试限制尚未禁用(disable_retry_limit is false),并且重试次数超过指定的限制(retry_limit),这个块将被删除。每次重试等待时间加倍(1.0 秒, 2.0 秒, 4.0 秒, …),直到达到 max_retry_wait。如果队列长度超过指定的限制(buffer_queue_limit),则新事件将被拒绝。

所有的缓冲输出插件都支持以下参数:

<match pattern>
  # omit the part about @type and other output parameters
  buffer_type memory
  buffer_chunk_limit 256m
  buffer_queue_limit 128
  flush_interval 60s
  disable_retry_limit false
  retry_limit 17
  retry_wait 1s
  max_retry_wait 10s # default is infinite
</match>

buffer_type 指定要使用的缓冲区插件, 默认情况下使用内存缓冲区插件。您还可以将缓冲区类型指定为 file,使用 buffer_path 指定 file 路径. 生产环境建议使用 file
Flunetd 用于统一日志记录层的开源数据收集器

Secondary output:当重试计数超过 retry_limit 时就使用备份的目的地。目前,当 primary 插件类型为 file 插件时可以工作。这是很有用的,当 primary 目的地或网络条件不稳定时。相当于 B 方案。

buff 可用的插件列表

buf_memory
buf_file
4. Filter Plugins

概述:Filter 插件使 Fluentd 可以修改事件流,例如下面的场景:

  • 通过刷新一个或多个字段的值来过滤事件。
  • 通过添加新的字段丰富事件。
  • 删除或屏蔽某些字段的隐私和合规性。 拓展:“脱敏”
<filter foo.bar>
  @type grep
  regexp1 message cool
</filter>

上面的意思就是:将事件与 tag(标签)为“foo.bar”进行匹配,并且如果 message 字段的值包含 cool,则事件将通过其余的配置。
像 output 插件中的指令一样,对标签进行匹配。一旦事件被 filter 处理,事件将从上到下进行配置,因此,如果同一个标签有多个过滤器,则按降序应用。通过下面的例子看下:

<filter foo.bar>
  @type grep
  regexp1 message cool
</filter>

<filter foo.bar>
  @type record_transformer
  <record>
    hostname "#{Socket.gethostname}"
  </record>
</filter>

一旦 messages 字段中有包含 cool 的事件,将会继续匹配。将以机器的主机名作为其值来获取新字段“hostname”。

filter 过滤插件可用的列表

grep
record-transformer
filter_stdout
5. Parser Plugins

概述:有时,用于输入插件的 format 参数(如:in_tail,in_syslog,in_tcp 和 in_udp)无法解析用户的自定义数据格式.(例如,上下文相关语法不能用正则表达式来解析)。为了解决这种情况,Fluentd 有一个可插拔系统,使用户能够创建自己的解析器格式。
内置的 Parsers 列表

regexp
apache2
apache_error
nginx
syslog
csv
tsv
ltsv
json
multiline
none

支持使用 Parsers 核心的 Input plugins 列表 (带 format 参数的)

in_tail
in_tcp
in_udp
in_syslog
in_http
6. Formatter Plugins

概述:有时,输出插件的输出格式不能满足自己的需要。Fluentd 有一个名为 Text Formatter 的可插拔系统,使用户可以扩展和重新使用自定义的输出格式。
对于支持 Text Formatter 的输出插件,format 参数可用于更改输出格式。
内置 Formatters 列表

out_file
json
ltsv
csv
msgpack
hash
single_value

支持文本格��化程序支持的输出插件列表 (很遗憾,暂不支持 kafka)

out_file
out_s3

三、生产环境的建议

1. high-availability

高可用配置参考链接:http://docs.fluentd.org/v0.12/articles/high-availability

2. performance-tuning

性能优化配置参考链接:http://docs.fluentd.org/v0.12/articles/performance-tuning

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-08/146013.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3996字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991108
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...