使用 grok 过滤器插件跳过前几行日志
Skip first few lines of log using grok filter plugin
是否可以删除以下日志中以日期时间开头的整个第一行?我只对第二行感兴趣。
Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
INFO: agent launched for ci-vd6
如何使用 grok 过滤器插件执行上述操作?
你可以跳过这样的行:
if [message] =~ /2019/ {
drop { }
}
现在您需要将 regex
更改为仅在您需要时删除行。
编辑: 例如 baudsp
建议正则表达式如下所示:
\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}
我的意思是当您逐行接收消息时的情况,因此您收到:
Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
你放下它。
您收到线路:
INFO: agent launched for ci-vd6
你保留它。
编辑: 分割线:
如果可能,拆分有关例如换行符的消息。
在 logstash.yml
中启用特殊符号:
config.support_escapes: true
并添加过滤器
filter {
split {
field => "message"
terminator => "\n"
}
}
现在一一处理。
是否可以删除以下日志中以日期时间开头的整个第一行?我只对第二行感兴趣。
Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
INFO: agent launched for ci-vd6
如何使用 grok 过滤器插件执行上述操作?
你可以跳过这样的行:
if [message] =~ /2019/ {
drop { }
}
现在您需要将 regex
更改为仅在您需要时删除行。
编辑: 例如 baudsp
建议正则表达式如下所示:
\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}
我的意思是当您逐行接收消息时的情况,因此您收到:
Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
你放下它。
您收到线路:
INFO: agent launched for ci-vd6
你保留它。
编辑: 分割线:
如果可能,拆分有关例如换行符的消息。
在 logstash.yml
中启用特殊符号:
config.support_escapes: true
并添加过滤器
filter {
split {
field => "message"
terminator => "\n"
}
}
现在一一处理。