2 logstash
在Logstash中,我有一个JSON有效负载,我已经解码过如下:
filter
{
json
{
source => "payload"
target => "payloadData"
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想检查payloadData._extraData是否存在,然后再反序列化.
我试过这个方法,从这个相关问题给出的例子开始:
filter
{
json
{
source => "payload"
target => "payloadData"
}
if [payloadData._extraData] =~ /.+/
{
sourcce => "payloadData._extraData"
target => "payloadData.extraData"
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有做任何事情(没有崩溃,没有错误信息,只是没有做任何事情)
正确的语法是:
if [payloadData][_extraData] =~ /.+/ { }
Run Code Online (Sandbox Code Playgroud)
输入示例:
{"foo":"bar","spam":"eggs","abc":"xyz","one":"two","three":"four","five":"six","seven":{"eight":"nine"}}
Run Code Online (Sandbox Code Playgroud)
配置:
filter {
json { source => message }
if [seven][eight] =~ /.+/ {
# do something
}
}
Run Code Online (Sandbox Code Playgroud)
除此之外,if语句中的代码不执行任何操作.您需要指定应执行的过滤器.例如:
if [payloadData][_extraData] =~ /.+/ {
json {
source => "payloadData[_extraData]"
target => "payloadData[extraData]"
}
}
Run Code Online (Sandbox Code Playgroud)
你想在if语句中反序列化什么?第一个json过滤器应该识别嵌套对象.
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |