regex - 日志文件中的Logstash可选字段

标签 regex logstash logstash-grok

我正在尝试使用grok解析日志文件

日志文件的每一行都有以逗号分隔的字段:

13,home,ABC,Get,,Private, Public,1.2.3 ecc...

我正在使用这样的比赛:match => [ "message", "%{NUMBER:requestId},%{WORD:ServerHost},%{WORD:Service}, ...

我的问题是:我可以允许可选字段吗?
有时某些文件可能为空,,
是否存在与2.3.5这样的字符串匹配的模式?
(一种版本号)

最佳答案

从根本上讲,grok基于正则表达式,因此您可以用()?包围模式以使其成为可选模式,例如(%{NUMBER:requestId})?,
如果没有适合您的grok模式,则始终可以创建这样的命名提取:(?<version>[\d\.]+),它将提取到版本中的字符串中,其中包含任意数量的数字和点。

关于regex - 日志文件中的Logstash可选字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083719/

相关文章:

elasticsearch - 如何填充 Logstash 输出变量而不从输入获取它?

logstash - 当 URL 包含无效字符时,有什么方法可以解析 URIPATHPARAM

rspec - 使用 rspec 的 Logstash grok 测试有不同的行为吗?

elasticsearch - Logstash:如何使用syslog_pri插件

Nginx stub 状态到 Logstash

python - Regex sub 仅删除某些表达式

r - 如何在 R 中提取这些多个正则表达式组

regex - 如何为具有字母数字字符但不仅仅由数字组成的单词编写正则表达式?

input - 具有多个 kafka 输入的 Logstash

sql - 如何从postgres的文本列中获取第n行