忽略 logstash 解剖中字段周围的内容
Ignore content around a field in logstash dissect
我是 elasticsearch 和 logstash 的新手。我写了下面的代码来解析类似于下面的日志数据。
日志日期:
[[[ LOGTS=2020-07-08 19:23:09, RESULT=P, DESTINATION=mb/cad/division/AB/type/ABCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW1 ]]]
Logstash 剖析代码:
mapping => {
"message" => "[[[ LOGTS=%{LOGTS}, RESULT=%{RESULT}, DESTINATION=mb/cad/division/%{devision_id}/type/ABCDEFG01, MSGTYPE=%{MSGTYPE}, MSGORIGIN=%{MSGORIGIN} ]]]%{innerMessage}"
}
通过上面的代码行,我得到了 devision_id 字段。但是如何忽略division_id字段周围的内容,这样无论内容是什么,我都只能得到division_id。因为我不能指定每一种类型的条目。
类似样本日志日期:
[[[ LOGTS=2020-07-08 19:23:10, RESULT=P, DESTINATION=mb/cad/division/BC/type/BVCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW3 ]]]
[[[ LOGTS=2020-07-08 19:23:11, RESULT=P, DESTINATION=mb/cad/division/CD/type/RTCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW9 ]]]
[[[ LOGTS=2020-07-08 19:23:12, RESULT=P, DESTINATION=mb/cad/division/ZZ/type/BCCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCE2 ]]]
非常感谢任何帮助。谢谢。
您可以使用空的跳过字段。
例如,像这样:
DESTINATION=mb/cad/division/%{division_id}/type/%{},
您也可以使用命名的跳过字段。
DESTINATION=mb/cad/division/%{division_id}/type/%{?skipped_field},
两者都会做同样的事情,匹配字符串,但忽略它,如果你想给它起一个名字,第二个只是帮助你知道被跳过的是什么。
我是 elasticsearch 和 logstash 的新手。我写了下面的代码来解析类似于下面的日志数据。
日志日期:
[[[ LOGTS=2020-07-08 19:23:09, RESULT=P, DESTINATION=mb/cad/division/AB/type/ABCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW1 ]]]
Logstash 剖析代码:
mapping => {
"message" => "[[[ LOGTS=%{LOGTS}, RESULT=%{RESULT}, DESTINATION=mb/cad/division/%{devision_id}/type/ABCDEFG01, MSGTYPE=%{MSGTYPE}, MSGORIGIN=%{MSGORIGIN} ]]]%{innerMessage}"
}
通过上面的代码行,我得到了 devision_id 字段。但是如何忽略division_id字段周围的内容,这样无论内容是什么,我都只能得到division_id。因为我不能指定每一种类型的条目。
类似样本日志日期:
[[[ LOGTS=2020-07-08 19:23:10, RESULT=P, DESTINATION=mb/cad/division/BC/type/BVCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW3 ]]]
[[[ LOGTS=2020-07-08 19:23:11, RESULT=P, DESTINATION=mb/cad/division/CD/type/RTCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCW9 ]]]
[[[ LOGTS=2020-07-08 19:23:12, RESULT=P, DESTINATION=mb/cad/division/ZZ/type/BCCDEFG01, MSGTYPE=ABCDEFG01, MSGORIGIN=BCE2 ]]]
非常感谢任何帮助。谢谢。
您可以使用空的跳过字段。
例如,像这样:
DESTINATION=mb/cad/division/%{division_id}/type/%{},
您也可以使用命名的跳过字段。
DESTINATION=mb/cad/division/%{division_id}/type/%{?skipped_field},
两者都会做同样的事情,匹配字符串,但忽略它,如果你想给它起一个名字,第二个只是帮助你知道被跳过的是什么。