Filebeat实现简单格式化数据dissect

在使用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模式

只需要配置filebeat.yml即可:

详细内容参见:

http://120.203.18.89:6969/123/filebeat%e5%ae%9e%e7%8e%b0%e7%ae%80%e5%8d%95%e6%a0%bc%e5%bc%8f%e5%8c%96%e6%95%b0%e6%8d%aedissect/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
filebeat中的正则表达式可以用于对日志文件进行过滤和解析。filebeat支持多种正则表达式语法,例如PCRE、Golang和Oniguruma等。在filebeat中,常见的正则表达式应用包括: 1. 在输入文件路径中使用正则表达式,以匹配多个文件; 2. 在filebeat配置文件中使用正则表达式,以从日志中提取特定字段; 3. 在filebeat处理器中使用正则表达式,以将字段重命名或删除。 下面是一个使用正则表达式从Nginx日志中提取字段的示例: ``` # filebeat.yml filebeat.inputs: - type: log paths: - /var/log/nginx/access.log processors: - dissect: tokenizer: "%{[@metadata][nginx][access]}" field: "message" target_prefix: "nginx.access" - grok: match: message: '%{IPORHOST:[nginx][access][remote_ip]} - %{DATA:[nginx][access][user_name]} \[%{HTTPDATE:[nginx][access][time]}\] "%{WORD:[nginx][access][http_method]} %{DATA:[nginx][access][http_version]}" %{NUMBER:[nginx][access][http_response_code]} %{NUMBER:[nginx][access][body_sent][bytes]} "%{DATA:[nginx][access][referrer]}" "%{DATA:[nginx][access][agent]}"' - date: match_formats: ["dd/MMM/YYYY:H:m:s Z"] target_field: "@timestamp" source_field: "[nginx][access][time]" fields_under_root: true fields: type: nginx output.elasticsearch: hosts: ["localhost:9200"] ``` 以上配置文件中使用了grok处理器,其中的正则表达式可以从Nginx日志中提取remote_ip、user_name、time、http_method、http_version、http_response_code、body_sent、referrer和agent等字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcl119xxcl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值