-6ren">
gpt4 book ai didi

Logstash 检查子字段是否存在并解析

转载 作者:行者123 更新时间:2023-12-02 21:55:28 24 4
gpt4 key购买 nike

在 Logstash 中,我有一个 JSON 有效负载,我已将其解码如下:

filter 
{
json
{
source => "payload"
target => "payloadData"
}
}

现在我想检查payloadData._extraData是否存在,然后将其反序列化。

我已经尝试过这种方法,按照 this related question 中给出的示例进行操作:

filter 
{
json
{
source => "payload"
target => "payloadData"
}
if [payloadData._extraData] =~ /.+/
{
sourcce => "payloadData._extraData"
target => "payloadData.extraData"
}
}

但它没有做任何事情(没有崩溃,没有错误消息,只是没有做任何事情)

最佳答案

正确的语法是:

if [payloadData][_extraData] =~ /.+/   { }

输入示例:

{"foo":"bar","spam":"eggs","abc":"xyz","one":"two","three":"four","five":"six","seven":{"eight":"nine"}}

配置:

filter {
json { source => message }
if [seven][eight] =~ /.+/ {
# do something
}
}

除此之外,if 语句中的代码不执行任何操作。您需要指定应执行的过滤器。例如:

if [payloadData][_extraData] =~ /.+/  { 
json {
source => "payloadData[_extraData]"
target => "payloadData[extraData]"
}
}

您想在 if 语句中反序列化什么?第一个 json 过滤器应该识别嵌套对象。

关于Logstash 检查子字段是否存在并解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com