怎么用Fluentd进行简单流处理

发布时间:2021-08-12 14:12:31 作者:chen
来源:亿速云 阅读:153

这篇文章主要讲解了“怎么用Fluentd进行简单流处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Fluentd进行简单流处理”吧!

在某些日志采集场景中,我们需要对数据流进行一些转换。比如,我们可能需要从日志记录中提取某些字段以进行错误告警,或向日志记录中插入新的字段用以后续的分析。

本文简单介绍一下使用Fluentd进行数据操作的技术细节。

  1. 根据日志字段取值来过滤事件
    谈到过滤,我们通常会想到正则表达式,在linux中通常使用grep来进行文本查找和过滤。Fluentd内置了filter_grep过滤插件,可对数据流进行正则过滤。

     
    假设我们正在使用一个web服务,比如Apache,我们需要对其访问日志进行监控。由输入插件产生的事件类似如下结构:
     
    {  "host": "192.168.1.1",  "method": "GET",  "path": "/index.html",  "code": 200,  "size": 2344,  "referer": null}
     

    这其中的code字段表示用户请求状态,我们可能对状态为2xx的请求不太关心,这样就可以将这类事件过滤掉,专门处理用户请求可能发生的异常情况。

    我们可以通过在Fluentd中增加如下<filter>配置来实现事件过滤。

    <filter apache.**>  @type grep  <exclude>    key code    pattern ^2\d\d$  </exclude></filter>
     

    使用grep过滤插件,通过key指定code字段为过滤字段,通过pattern匹配code值为2xx的事件,将这些事件排除(exclude)掉。


    filter_grep还可以对多个字段进行过滤。比如,保留状态码为5xx的事件,但过滤掉url中以/test/开头的请求。如下所示:

    <filter apache.**>  @type grep  <regexp>    key code    pattern ^5\d\d$  </regexp>  <exclude>    key path    pattern ^/test/  </exclude></filter>
     


  2. 向事件中插入定制字段
    我们可以在某个处理阶段向日志记录中插入一些字段,供后续使用。这可以通过Fluentd内置的filter_record_transformer过滤器插件来实现。
    假设我们是以集群的方式来部署web服务的,我们可能需要标记用户请求是由哪台服务器来处理的。
    在Fluentd中进行如下配置即可实现此类需求:
    <filter apache.**>  @type record_transformer  <record>    server "${hostname}"  </record></filter>
     

    这里,record_transformer插件向事件record中插入了一个server字段,其值为web服务器的主机名。新的日志record就更新为如下格式:

    {  "host": "192.168.1.1",  "method": "GET",  "path": "/index.html",  "code": 200,  "size": 2344,  "referer": null,  "server": "app1"}
     

    filter_record_transformer除了可以直接插入预定义的一些变量,如${hostname},还可以插入其他变量或者使用ruby表达式来计算字段值。具体可参考此插件的使用说明,我们也会在后续的插件系列中进行介绍。


感谢各位的阅读,以上就是“怎么用Fluentd进行简单流处理”的内容了,经过本文的学习后,相信大家对怎么用Fluentd进行简单流处理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. fluentd 解析httpd日志
  2. storm流处理的简单例子的一些问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

fluentd

上一篇:pycharm运行程序时如何在Python console窗口中运行

下一篇:python如何使用turtle库画一个方格和圆

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》