elasticsearch - 忽略logstash剖析中字段周围的内容
问题描述
我是 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 字段周围的内容,这样无论内容是什么,我都只能得到 partition_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},
两者都会做同样的事情,匹配字符串,但忽略它,如果你想给它一个名字,第二个只是帮助你知道被跳过的内容。
推荐阅读
- javascript - Gutenberg - 希望在保存时将块数据注入 wp_head
- r - 如何自动启动我的 ec2 实例、运行命令然后将其关闭?
- ruby - 如果我希望代码允许所有子域我应该怎么做?
- javascript - “!”是什么意思 在 7.2.14 ecmascript 规范的抽象相等比较
- django - 如何在我已经创建的用户和 user_type 中添加相应的用户表
- python - 功能中的 10 个骰子的总和滚动不起作用?只有返回第一卷
- python - 如何在亚马逊 pinpoint 中创建端点和发送消息
- c - 生成的汇编代码包含一系列跳转到下一个内存位置的命令,目的是什么
- python - UnboundLocalError: 赋值前引用的局部变量——除了不是吗?全局/本地范围的问题
- rust - 如何添加绑定到引用私有类型的公共类型的特征?