elasticsearch 是否可以通过logstash中的前一个值更改字段
我正在互联网上搜索一种方法,将一个变量放入logstash,如果一个术语对应于一个模式,则使用或修改该值 以下是我的数据源示例:elasticsearch 是否可以通过logstash中的前一个值更改字段,elasticsearch,logstash,logstash-grok,elasticsearch,Logstash,Logstash Grok,我正在互联网上搜索一种方法,将一个变量放入logstash,如果一个术语对应于一个模式,则使用或修改该值 以下是我的数据源示例: 2017-04-12 15:49:57,641|OK|file1|98||| 2017-04-12 15:49:58,929|OK|file2|1387|null|msg_fils| 2017-04-12 15:49:58,931|OK|file3|2|msg_pere|msg_fils| 2017-04-12 15:50:17,666|OK|
2017-04-12 15:49:57,641|OK|file1|98|||
2017-04-12 15:49:58,929|OK|file2|1387|null|msg_fils|
2017-04-12 15:49:58,931|OK|file3|2|msg_pere|msg_fils|
2017-04-12 15:50:17,666|OK|file1|25|||
2017-04-12 15:50:17,929|OK|file2|1387|null|msg_fils|
我正在使用这个grok代码来解析我的源代码
grok {
match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'}
}
但事实上,我想用包含file1的行的前一个值修改第一个字段
你能告诉我这是否可能吗
谢谢我找到了解决问题的方法。我要和你分享解决我问题的方法。 我使用的插件名为logstash filter memory,可以通过以下命令安装: logstash插件安装logstash过滤器记忆 所以我的过滤器是这样的:
grok {
match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'}
}
if [component] =~ "file1" {
mutate {
add_field => [ "msg_id", "%{msgdates}" ]
}
memorize {
fields => [ "msg_id" ]
default => { "msg_id" => "NOTFOUND" }
} }
memorize {
fields => [ "msg_id9" ]
}
我希望它能对其他人有用。我已经找到了解决我问题的方法。我要和你分享解决我问题的方法。 我使用的插件名为logstash filter memory,可以通过以下命令安装: logstash插件安装logstash过滤器记忆 所以我的过滤器是这样的:
grok {
match => {"message" => '%{TIMESTAMP_ISO8601:msgdates:date}\|%{WORD:verb}\|%{DATA:component}\|%{NUMBER:temps:int}\|%{DATA:msg_pere}\|%{DATA:msg_fils}\|'}
}
if [component] =~ "file1" {
mutate {
add_field => [ "msg_id", "%{msgdates}" ]
}
memorize {
fields => [ "msg_id" ]
default => { "msg_id" => "NOTFOUND" }
} }
memorize {
fields => [ "msg_id9" ]
}
我希望它能对其他人有用