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?