Logstash 使用grok filter插件跳过日志的前几行

Logstash 使用grok filter插件跳过日志的前几行,logstash,elastic-stack,logstash-grok,Logstash,Elastic Stack,Logstash Grok,是否可以删除以下日志中以日期时间开始的整个第一行?我只对第二行感兴趣 Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch INFO: agent launched for ci-vd6 如何使用grok filter插件执行上述操作?您可以跳过这样的行: if [message] =~ /2019/ { drop { } } \b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)

是否可以删除以下日志中以日期时间开始的整个第一行?我只对第二行感兴趣

Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
INFO: agent launched for ci-vd6


如何使用grok filter插件执行上述操作?

您可以跳过这样的行:

if [message] =~ /2019/ {
  drop { }
}
\b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|[Mm](?:a|ä)?r(?:ch|z)?|[Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|[Oo](?:c|k)?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b \d{2}, \d{4}
现在,您需要将正则表达式更改为仅在需要时删除行

编辑:例如,baudsp建议正则表达式可以如下所示:

if [message] =~ /2019/ {
  drop { }
}
\b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|[Mm](?:a|ä)?r(?:ch|z)?|[Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|[Oo](?:c|k)?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b \d{2}, \d{4}
我的意思是,当您逐行接收消息时,您会收到:

2019年12月9日下午12:55:22哈德逊.黑奴.命令发射器发射

你放下它

您将收到以下信息:

信息:为ci-vd6启动了代理

你留着吧

编辑:要分割线:

如果可能,拆分有关例如换行符的消息。 在logstash.yml中启用特殊标志: config.support\u转义:true 并添加过滤器

filter {
  split {
  field => "message"
  terminator => "\n" 
 }
}

现在一个接一个地处理它们。

我不认为在每年的变化中都有配置中断是个好主意。比较应该是在一个更一般的regex上进行的,比如这一个,比较应该是在一个更一般的regex上进行的,比较应该是在一个更一般的regex上进行的,比如这样这样的,比较应该是在一个更一般的regex上进行的,比如以下这一个:以下以下这一个::以下以下以下这一个::::以下以下以下以下这一::::::b?::[Jj[Jj]an[Jj]an[Jj]安安安安安安安:[124,,,[bi[[[[[[[[[[[KJ]ua]安]安]ua,,,[[[[[[[ffffffff[[[[[[[[[[[[[[[fffffffff[[[[[[[[[[[[[[[[[[[[[[KJ]]]]]]]]]]]]]第一部分检查所有不同的月份,从原木储藏室拿走的patterns@baudsp当然,这只是一个例子。正如我现在写的,当您只需要正则表达式时,您需要将其更改为删除行。我编辑了答案,并提供了您的正则表达式示例。@KamilWitkowski抱歉,我忘了提及。这两行组合成一条消息,然后,我需要过滤或删除第一行。如何做到这一点?@sourav19在可能的情况下拆分有关例如newline的消息。我编辑了答案。对不起,我忘了提。这两行组合成一条消息,然后,我需要过滤或删除第一行。如何做到这一点?