Filebeat Filter - Dissect/DNS Reverse

本文介绍了如何利用Filebeat的Dissect过滤器从日志中提取IP信息,并通过DNS Reverse将其转换为域名。由于在Ingest Node上无法进行DNS转换操作,因此选择了在Filebeat端进行处理。Dissect是一种轻量级的过滤器,适用于数据格式固定的情况,而DNS Reverse则用于客户端进行DNS解析,避免在ES端增加额外负担。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用Filebeat替代Logstash的时候遇到需要从log中摘取数据的case,比如解析access log,最开始的方案是使用Filebeat module功能,把所有load都转移到Elasticsearch的Ingest Node上面。
之后遇到的case是文件路径中带有IP信息,需要把ip摘取出来之后通过DNS域名解析服务器转变成域名。如果依然使用module方式在Ingest node上面抓取的话没法后续做DNS转换的操作,遂考虑在Filebeat上面使用Dissect+DNS Reverse的方案。

  • Dissect:

Dissect是一款轻量级的匹配过滤器,相比于Grok,不做过多的正则匹配。如若数据格式相对固定并且有明显的分割边界,使用Dissect会比Grok消耗更少的资源。

  - dissect:
      when:
        equals:
          type: 'XXX'
      tokenizer: "/%{}/%{}/%{}/%{}/%{}/%{IP}/"
      field: "path"
      target_prefix: "ip"

target_prefix 表示新生成了一个叫ip object字段,所有匹配到的字段名都会在这个字段之下

%{IP}表示生成的字段会位于IP这个字段内,结合target_prefix,则位于ip.IP 字段下

%{} 可以用于跳过匹配

%{?test}用于匹配到之后不生成新字段

%{+test}用于多个匹配都追加到test字段中

 

  • DNS Reverse

DNS Reverse 用于DNS域名解析,因为每个事件都需要一次request查询匹配,不适宜放在中央的ES端处理,遂在client端可以进行如下配置

  - dns:
      when:
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值