fluentd简介

Catalogue
  1. 1. 一个Fluentd 事件的生命周期
    1. 1.0.1. 基本设定
  • 2. 参考资料
  • Fluentd是用于统一日志记录层的开源数据收集器。 Fluentd允许您统一数据收集和使用,以更好地使用和理解数据。

    一个Fluentd 事件的生命周期

    下面的文章使用示例描述Fluentd如何处理事件的全局概述。它涵盖了完整的周期,包括设置,输入,过滤器,匹配和标签。

    基本设定

    配置文件是将所有事物连接在一起的基础部分,因为它允许定义Fluentd将拥有哪些输入或监听器,并设置通用的匹配规则以将事件数据路由到特定的输出。

    我们将使用in_http和out_stdout插件作为示例来描述事件周期。以下是配置文件中用于指定http输入的基本定义,简而言之:我们将监听HTTP请求:

    1
    2
    3
    4
    5
    <source>
    @type http
    port 8888
    bind 0.0.0.0
    </source>

    该定义指定HTTP服务器将侦听TCP端口8888。现在让我们定义一个Matching规则和一个所需的输出,该输出将仅将到达每个请求的数据打印到标准输出:

    1
    2
    3
    <match test.cycle>
    @type stdout
    </match>

    Match设置了一个规则,其中每个带有Tag等于test.cycle的传入事件都将匹配并使用称为stdout的Output插件类型。此时,我们有一个输入类型,一个匹配项和一个输出。让我们使用Curl测试设置:

    1
    2
    3
    4
    5
    $ curl -i -X POST -d 'json={"action":"login","user":2}' http://localhost:8888/test.cycle
    HTTP/1.1 200 OK
    Content-type: text/plain
    Connection: Keep-Alive
    Content-length: 0

    在Fluentd服务器端,输出应如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ bin/fluentd -c in_http.conf
    2015-01-19 12:37:41 -0600 [info]: reading config file path="in_http.conf"
    2015-01-19 12:37:41 -0600 [info]: starting fluentd-0.12.3
    2015-01-19 12:37:41 -0600 [info]: using configuration file: <ROOT>
    <source>
    @type http
    bind 0.0.0.0
    port 8888
    </source>
    <match test.cycle>
    @type stdout
    </match>
    </ROOT>
    2015-01-19 12:37:41 -0600 [info]: adding match pattern="test.cycle" type="stdout"
    2015-01-19 12:37:41 -0600 [info]: adding source type="http"
    2015-01-19 12:39:57 -0600 test.cycle: {"action":"login","user":2}

    参考资料