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\":\"ver3 - Requested for recommended,verified handle information\",\"data\":\"\",\"content_id\":\"\",\"channel_id\":\"\"}" 我已经为其编写了日志存储配置 input { beats {
"{\"user_id\":\"79\",\"timestamp\":\"2016-12-28T11:10:26Z\",\"operation\":\"ver3 - 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对象的键值。不知道出了什么问题。