是否可以通过 logstash 中的先前值更改字段
Is it possible to change a field by a previous value in logstash
我正在 Internet 上搜索一种将变量放入 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|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-memorize 的插件,它可以通过命令安装:
logstash-plugin 安装 logstash-filter-memorize
所以我的过滤器是这样的:
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" ]
}
希望对其他人有用。
我正在 Internet 上搜索一种将变量放入 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|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-memorize 的插件,它可以通过命令安装:
logstash-plugin 安装 logstash-filter-memorize
所以我的过滤器是这样的:
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" ]
}
希望对其他人有用。