Fluent
[TOC]
组成
Input:tail, tcp, udp, http, syslog…
Buffer:Memory, File…
Output:Kafka, MongoDB, ES…
插件
Input 输入插件。内置的有 tail、http、tcp、udp 等。
Parser 解析器。自定义解析规则,如解析 nginx, json 日志。
Filter Filter 插件,过滤事件,或增加字段,删除字段。
Input -> filter 1 -> ... -> filter N -> Output # Filter 是按照顺序全部都执行 # match 第一个如果匹配上,后面匹配的将不会再执行Output 输出插件。内置的有 file、hdfs、s3、kafka、elasticsearch、mongoDB、stdout 等。
Formatter Formatter 插件。可自定义输出格式如 json、csv 等。
Storage Storage 插件可将各状态保存在文件或其他存储中,如 Redis、MongoDB 等。
Buffer Buffer 缓冲插件。缓冲插件由输出插件使用。在输出之前先缓冲,然后以如 Kafka Producer Client 的方式批量提交。有 file、memory 两种类型。flush_interval 参数决定了提交的间隔,默认 60 秒刷新一次。
匹配模式
* 用来匹配 tag 的一部分(比如:a.* 可以匹配 a.b,但是不能匹配 a 或者 a.b.c)
** 可以用来匹配 tag 的 0 个或多个部分(比如:a.** 可以匹配 a、a.b 和 a.b.c)
{X,Y,Z} 匹配 X,Y 或者 Z(比如:{a,b} 可以匹配 a 和 b,但是不能匹配 c。他可以和 * 或者 ** 结合起来一起使用)
如果有多个匹配模式写在里面,则可以用空格分开(比如:能够匹配 a 和 b。\能够匹配 a,a.b,a.b.c 和 b.d)
数据类型
string:字符串,最常见的格式,详细支持语法见文档integer:整数float:浮点数size:大小,仅支持整数<INTEGER>k或<INTERGER>K<INTEGER>m或<INTERGER>M<INTEGER>g或<INTERGER>G<INTEGER>t或<INTERGER>T
time:时间<INTEGER>s或<INTERGER>S<INTEGER>m或<INTERGER>M<INTEGER>h或<INTERGER>H<INTEGER>d或<INTERGER>D
array:按照 JSON array 解析,如 [“key1”, “key2”]hash:按照 JSON object 解析,如 {“key1”: “value1”, “key2”: “value2”}
示例
Last updated
Was this helpful?