Filebeat之多行匹配模式理解记忆方式

1. 概述

官方文档关于多方匹配英文比较绕,这里翻译成中文,总结后便于记忆,点击此处查看官方原文

1.1 翻译及记忆方式

multiline.pattern: '^test #匹配以“test”开始的行
multiline.negate: true | false
multiline.match: after | before

  • negate false: 双重否定为肯定–匹配pattern;true:否定,不匹配pattern;
  • negate 中匹配与否作 主语,理解这点就好记忆了;
  • match 意为negate中在未匹配到的之前或者之后;或者未匹配到的在匹配到的之前或者之后

如下图所示:

negatematchResult
falseafter匹配到的(主语negate)在未匹配到的的后面
falsebefore匹配到的(negate)在未匹配到的前面
trueafter未匹配到的(negate)在匹配到的后面
truebefore未匹配到的在匹配到的前
1.2 案例

一般来说,Java日志报错不规则的行在规则的行下面,需要把下面的合并到最上面规则的一行上,match为after,如下面:

[beat-logstash-some-name-832-2015.11.28] IndexNotFoundException[no such index]
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)
    at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)
    at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)

针对上面的日志:

1.2.1 匹配行首规则的日志:

multiline.pattern: ‘^\[’
multiline.negate: true #未匹配到的在下面
multiline.match: after

1.2.2 匹配下面几行不规则的日志:

multiline.pattern: ‘^[[:space:]]’
multiline.negate: false #匹配到的在下面
multiline.match: after

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值