elasticsearch - 如果在logstash中以特殊字符开头,如何从输入文件中删除特定行
问题描述
我正在尝试删除logstash中我的输入文件中从<开始的所有行。我尝试了以下过滤器但没有成功。
我是 ELS 堆栈的新手,如果它已经回答,请原谅。
示例输入行
Thread #1: t@-1680123584, lwp=22843, ref=0x1b0f8550, session=9F0071A66D89544155D149CCE2453E9A:mx2135649930e123d964:(WebServiceFacade.java:84), ms=0x78714bc0
<Start Stack Trace>
<1 - ADK Verbose Trace Entry>
<2 - Launching Program Object>
<3 - ADK Verbose Trace Entry>
<4 - Launching Program Object>
<End Stack Trace>
Thread #2: t@-1680123584, lwp=22843, ref=0x1b0f8550, session=9F0071A66D89544155D149CCE2453E9A:mx2135649930e123d964:(WebServiceFacade.java:84), ms=0x78714bc0
<Start Stack Trace>
<1 - ADK Verbose Trace Entry>
<2 - Launching Program Object>
<3 - ADK Verbose Trace Entry>
<4 - Launching Program Object>
<End Stack Trace>
我目前的过滤器就像
if[message =~ "^<.*"] {
drop { }
}
但不知何故它不起作用,我仍然在我的输出中得到这些行
"message" => "Thread #1: t@-1680123584, lwp=22843, ref=0x1b0f8550, session=9F0071A66D89544155D149CCE2453E9A:mx2135649930e123d964:(WebServiceFacade.java:84), ms=0x78714bc0\r\n<Start Stack Trace>\r\n<1 - ADK Verbose Trace Entry>\r\n\r\n <2 - Launching Program Object>\r\n \r\n <3 - ADK Verbose Trace Entry>\r\n\r\n <4 - Launching Program Object>\r\n\r\n<End Stack Trace>\r",
解决方案
您应该在字段名称周围加上方括号。表达式周围的括号是可选的。尝试
if [message] =~ "^<" { drop { } }