elasticsearch 将值转换为Json后添加_字段logstash,elasticsearch,logstash,logstash-grok,logstash-configuration,filebeat,elasticsearch,Logstash,Logstash Grok,Logstash Configuration,Filebeat" /> elasticsearch 将值转换为Json后添加_字段logstash,elasticsearch,logstash,logstash-grok,logstash-configuration,filebeat,elasticsearch,Logstash,Logstash Grok,Logstash Configuration,Filebeat" />

elasticsearch 将值转换为Json后添加_字段logstash

elasticsearch 将值转换为Json后添加_字段logstash,elasticsearch,logstash,logstash-grok,logstash-configuration,filebeat,elasticsearch,Logstash,Logstash Grok,Logstash Configuration,Filebeat,我有这个表格中包含日志的日志文件 "{\"user_id\":\"79\",\"timestamp\":\"2016-12-28T11:10:26Z\"‌​,\"operation\":\"ver‌​3 - Requested for recommended,verified handle information\",\"data\":\"\",\"content_id\":\"\",\"channel_id‌​\":\"\"}" 我已经为其编写了日志存储配置 input { beats {

我有这个表格中包含日志的日志文件

"{\"user_id\":\"79\",\"timestamp\":\"2016-12-28T11:10:26Z\"‌​,\"operation\":\"ver‌​3 - Requested for recommended,verified handle information\",\"data\":\"\",\"content_id\":\"\",\"channel_id‌​\":\"\"}"
我已经为其编写了日志存储配置

input {
beats {
    port => "5043"
}
}
filter{
    grok {
       match => { "message" => "%{QS:mydata}"}
    }
    json {
       source => "message"
       target => "parsedJson"
    }
    mutate {
       add_field =>{
        "user_id" => "%{[parsedJson.user_id]}"
        "operation" => "%{[parsedJson][operation]}"
        "data"=> "%{[parsedJson][operation]}"
       }
     }
}
output {
    elasticsearch {
       hosts => [ "localhost:9200" ]
    }
}
基本上,我尝试了许多排列来获取值,但在elasticsearch中,数据如下图所示。我无法从JSON获取数据并分配给新值。 请帮忙。

如果您尝试在
json
过滤器中包含
add_字段
,并将
mydata
作为
源代码
,在
json
中该怎么办。另外,请确保不要将
add_字段
值与
点分开:

json {
     source => "mydata"
     target => "parsedJson"
     add_field => {
      "user_id" => "%{[parsedJson][user_id]}}"
      "operation" => "%{[parsedJson][operation]}}"
      "data" => "%{[parsedJson][data]}}"
     }
     remove_field=>["mydata"] <-- you can ignore this if you really don't want to remove
}
json{
source=>“mydata”
target=>“parsedJson”
添加字段=>{
“用户\u id”=>“%{[parsedJson][user\u id]}”
“操作”=>“%{[parsedJson][operation]}”
“数据”=>“%{[parsedJson][data]}”
}

remove_field=>[“mydata”]operation%{[parsedJson][operation]}user_id%{[parsedJson][user_id]}这些值未被解析,而我正在从中提取parsedJson@YatenderSingh您好,我已经更新了答案,如果您尝试在
json
过滤器本身中添加字段,会怎么样?还有一点需要注意的是,当我向任何新字段添加parsedJson引用时,它会获取它的值user_id{“user_id”:“79”,“timestamp”:“2016-12-28811:10:26Z”‌​,“操作”:“版本”‌​3-请求提供建议的、经验证的句柄信息、“数据”:“内容id”:“频道id”‌​":""} 但是,当我尝试在parsedJson中获取值时,它没有获取并将其值设置为字符串。我尝试使用ruby代码运行并使用事件api。但它也无法获取JSON对象的键值。不知道出了什么问题。