核心概念
以下关键概念对于理解 Fluent Bit 的工作方式非常重要
在开始使用 Fluent Bit 之前,最好先了解一些服务的关键概念。本文档对这些概念和通用 Fluent Bit 术语进行了简要介绍。我们列出了所有术语的清单,但建议您从头到尾阅读本文档,以更全面地了解日志或数据流处理器。
Event or Record(事件或记录)
Filtering(过滤)
Tag(标签)
Timestamp(时间戳)
Match(匹配)
Structured Message(结构化消息)
事件或记录
传入 Fluent Bit 的每条日志或指标数据都被视为时间或记录。
例如,一个 Syslog 文件的内容如下:
它包含四行,并且它们代表四个独立的事件。
在内部,事件通常由两部分组成(以数组形式表示):
过滤
在某些情况下,我们需要对事件内容进行修改。修改,丰富或删除事件的过程被称为过滤
过滤过程由需要应用场景,例如:
将特定的信息(如 IP 地址或元数据)添加到事件
选择特定的事件内容
删除与某些模式匹配的事件
标签
每个进入 Fluent Bit 的事件都会分配一个标签。此标签是一个内部字符串,它由路由器在以后的阶段中使用,以确定该事件必须经过哪个过滤器或路由到哪个输出。
大多数的标签是在配置中手动指定的。如果未指定标签,Fluent Bit 将自动分配为生成该事件的输入插件的名称
唯一不分配的标签的输入插件是 Forward 输出插件。该插件使用被称为 "Forward"(转发) 的 Fluentd 网络协议,其中每个事件都已带有相关联的标签。Fluent Bit 将始终使用客户端设置的传入标签。
时间戳
时间戳表示事件创建的 时刻。每个事件都包含一个时间戳。时间戳是数字形式的小数,格式如下:
Seconds
自 Unix 纪元以来经过的秒数
Nanoseconds
小数秒或纳秒
时间戳始终存在,可以通过输入插件设置,也可以通过数据解析过程发现。
(标签)匹配
Fluent Bit 允许将收集和处理的事件传递到一个或多个目的地,这是通过路由阶段完成的。匹配表示一个简单的规则,用于选择标签与定义规则相匹配的事件
要了解有关标签和匹配的更多信息,请查看路由部分.
结构化消息
源事件可以有或没有结构。结构在事件消息中定义了一组 keys 和 values(键值对)。作为示例,请参考如下两条消息:
非结构化消息
结构化消息
在底层结构上,它们都是一个字节数组,但是结构化消息定义了键值对。结构有助于实现对数据修改的更快操作。
Fluent Bit 总是将每个消息作为结构化消息处理。出于高性能性能的考虑,我们使用被称为 MessagePack 的二进制序列化数据格式。
可以将 MessagePack 视为 JSON 的二进制版本
Last updated