是否可以在以下日志中删除从日期时间开始的第一行?我只对第二行感兴趣。
Dec 09, 2019 12:55:22 PM hudson.slaves.CommandLauncher launch
INFO: agent launched for ci-vd6
如何使用grok过滤器插件执行上述操作?
答案 0 :(得分:2)
您可以跳过这样的行:
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}
我的意思是当您逐行接收消息时,您会收到以下消息:
2019年12月9日下午12:55:22 hudson.slaves.CommandLauncher启动
您放下它。
您收到一行:
INFO:为ci-vd6启动的代理程序
您保留它。
编辑:以分隔行:
如果可能,请分割有关例如换行符的消息。
在logstash.yml
中启用特殊符号:
config.support_escapes: true
并添加过滤器
filter {
split {
field => "message"
terminator => "\n"
}
}
现在一个接一个地处理它们。