首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codec不向elasticsearch发送数据

Codec不向elasticsearch发送数据
EN

Stack Overflow用户
提问于 2018-10-19 14:21:07
回答 2查看 450关注 0票数 0

投入: json

代码语言:javascript
复制
{"userid": 125,"type": "SELL"}
{"userid": 127,"type": "SELL"}

LOGSTASH CONF文件:

代码语言:javascript
复制
input {
kafka {
bootstrap_servers => ""
topics => ["topic1"]
codec => "json"
}
}
output {
amazon_es {
hosts => [""]
region => ""
aws_access_key_id => ''
aws_secret_access_key => ''
index => "indexname"
}

stdout { codec => rubydebug }
}

标准输出:

代码语言:javascript
复制
{
"userid" => 127,
"@version" => "1",
"@timestamp" => 2018-10-18T13:54:37.641Z,
"type" => "SELL"
}

输出结果和我想要的完全一样。但这不会进入elasticsearch的主题。如果我不使用json过滤器,整个json将作为“message”进入ES。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 23:59:10

我想出了问题。我使用了一个名为输入json文件数据的字段,这导致了这个问题。logstash将它作为_type存储在ES中,新版本的elasticsearch不允许这样做。这就是为什么如果我的类型是‘买入’,它将接受条目,如果它是‘出售’,它将拒绝它。谢谢你的帮助!

票数 0
EN

Stack Overflow用户

发布于 2018-10-19 15:34:08

你试过用json过滤器吗?

代码语言:javascript
复制
input {
    kafka {
        bootstrap_servers => ""
        topics => ["topic1"]
    }
}

filter {
    json {
        source => "message"
    }
}
output {
    amazon_es {
        hosts => [""]
        region => ""
        aws_access_key_id => ''
        aws_secret_access_key => ''
        index => "indexname",
        custom_headers => {'Content-Type': 'application/json'}
    }

    stdout { codec => rubydebug }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52894305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档