gpt4 book ai didi

elasticsearch - Logstash 代理不再编制索引

转载 作者:行者123 更新时间:2023-11-29 02:44:44 26 4
gpt4 key购买 nike

我有一个作为服务运行的 Logstash 实例,它从 Redis 读取数据并输出到 Elasticsearch。我只是注意到最近几天 Elasticsearch 中没有任何新内容,但是 Redis 列表在增加。

Logstash 日志充满了重复数千行的 2 个错误:

:message=>"Got error to send bulk of actions"
:message=>"Failed to flush outgoing items"

原因是:

{"error":"IllegalArgumentException[Malformed action/metadata line [107], expected a simple value for field [_type] but found [START_ARRAY]]","status":500}, 

此外,试图停止服务多次失败,我不得不杀死它。重新启动它会清空 Redis 列表并将所有内容导入 Elasticsearch。现在似乎工作正常。

但我不知道如何防止这种情况再次发生。提到的 type 字段被设置为每个输入指令的字符串,所以我不明白它怎么会变成一个数组。
我错过了什么?

我正在使用 Elasticsearch 1.7.1 和 Logstash 1.5.3。 logstash.conf 文件如下所示:

input {
redis {
host => "127.0.0.1"
port => 6381
data_type => "list"
key => "b2c-web"
type => "b2c-web"
codec => "json"
}
redis {
host => "127.0.0.1"
port => 6381
data_type => "list"
key => "b2c-web-staging"
type => "b2c-web-staging"
codec => "json"
}

/* other redis inputs, only key/type variations */
}
filter {
grok {
match => ["msg", "Cache hit %{WORD:query} in %{NUMBER:hit_total:int}ms. Network: %{NUMBER:hit_network:int} ms. Deserialization %{NUMBER:hit_deserial:int}"]
add_tag => ["cache_hit"]
tag_on_failure => []
}
/* other groks, not related to type field */
}
output {
elasticsearch {
host => "[IP]"
port => "9200"
protocol=> "http"
cluster => "logstash-prod-2"
}
}

最佳答案

根据您的日志消息:

{"error":"IllegalArgumentException[Malformed action/metadata line [107], expected a simple value for field [_type] but found [START_ARRAY]]","status":500},

您似乎正在尝试使用 type 字段索引文档,该字段是数组而不是字符串。

如果没有更多的 logstash.conf 文件,我帮不了你。但请检查以下内容以确保:

  1. 当您使用 add_field 更改 type 时,您实际上将 type 变成了一个 array多个值,这正是 Elasticsearch 所提示的。

  2. 您可以使用mutate join 将数组转换为字符串:api link

    filter {
    mutate {
    join => { "fieldname" => "," }
    }
    }

关于elasticsearch - Logstash 代理不再编制索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354862/

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