多行 filebeat 模式匹配 miltiple 词
multiline filebeat pattern to match miltiple word
这里有些混乱,我必须使用 filebeat 多行模式来收集数据。
问题是如何使用多重模式?
这是我现在用的
multiline.pattern : '^Select'
所以对于上面的模式,我们可以看到所有从 select 开始的单词都会被匹配。所以我的问题是插入、更新和删除单词怎么样?
还有一个问题,我可以使用下面的模式来表示多行匹配的结束吗?
multiline.flush_pattern: ';'
非常感谢任何想法或帮助
第一个问题:
您可以在单个正则表达式中为消息的开头指定多个词。因此,如果我理解正确的话,您想要包括所有以 Select
、INSERT
、UPDATE
和 DELETE
开头的日志行。为此,您将定义一组有效值,如下所示:
multiline.pattern : '^(Select|INSERT|UPDATE|DELETE)
管道字符 ( |
) 充当 OR 运算符。请注意,默认情况下正则表达式区分大小写。所以例如在上面的示例中,将忽略以大写 SELECT 开头的消息。
关于你的第二个问题:
除了multiline.pattern你必须指定设置multiline.match和multiline.negate:
multiline.match 确定模式之前或之后的日志行是否应放入单个事件中。
multiline.negate 确定以下行是否必须匹配模式。
因此,您无需指定特定的结束字符,而是告诉 Filebeat 匹配该模式并且在该行之后的每个日志行都应该聚合,直到下一行再次匹配该模式。
(有关完整参考和说明,请参阅 https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html)。
示例:
假设您的日志文件结构如下:
Select foo from bar\n where baz = 1\n and id =4711;\n\n
DELETE from bar\n where baz = null;\n\n
INSERT ...
以下配置应该可以完成工作:
multiline.pattern : '^(Select|INSERT|UPDATE|DELETE)'
multiline.match: after
multiline.negate: true
希望能帮到你
这里有些混乱,我必须使用 filebeat 多行模式来收集数据。 问题是如何使用多重模式? 这是我现在用的
multiline.pattern : '^Select'
所以对于上面的模式,我们可以看到所有从 select 开始的单词都会被匹配。所以我的问题是插入、更新和删除单词怎么样?
还有一个问题,我可以使用下面的模式来表示多行匹配的结束吗?
multiline.flush_pattern: ';'
非常感谢任何想法或帮助
第一个问题:
您可以在单个正则表达式中为消息的开头指定多个词。因此,如果我理解正确的话,您想要包括所有以 Select
、INSERT
、UPDATE
和 DELETE
开头的日志行。为此,您将定义一组有效值,如下所示:
multiline.pattern : '^(Select|INSERT|UPDATE|DELETE)
管道字符 ( |
) 充当 OR 运算符。请注意,默认情况下正则表达式区分大小写。所以例如在上面的示例中,将忽略以大写 SELECT 开头的消息。
关于你的第二个问题:
除了multiline.pattern你必须指定设置multiline.match和multiline.negate:
multiline.match 确定模式之前或之后的日志行是否应放入单个事件中。
multiline.negate 确定以下行是否必须匹配模式。
因此,您无需指定特定的结束字符,而是告诉 Filebeat 匹配该模式并且在该行之后的每个日志行都应该聚合,直到下一行再次匹配该模式。
(有关完整参考和说明,请参阅 https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html)。
示例:
假设您的日志文件结构如下:
Select foo from bar\n where baz = 1\n and id =4711;\n\n
DELETE from bar\n where baz = null;\n\n
INSERT ...
以下配置应该可以完成工作:
multiline.pattern : '^(Select|INSERT|UPDATE|DELETE)'
multiline.match: after
multiline.negate: true
希望能帮到你