Elasticsearch Gateway超时504

时间:2018-08-21 14:11:45

标签: elasticsearch kibana

我更新了一些索引映射,以将一个keyword字段简单地添加到文本属性中,并重新加载了Kibana的索引模式。有人告诉我应该在最后运行此命令:

POST 11ad.pi.prod.test-case-18/_update_by_query?conflicts=proceed

完成后,我得到一个错误:

{
"statusCode": 504,
"error": "Gateway Time-out",
"message": "Client request timeout"
}

这是否意味着超时时间太短?如何更改?

3 个答案:

答案 0 :(得分:0)

如果索引的大小很大,这是正常的。您无需查看任何超时,该任务仍在后台进行。

您可以通过运行GET _tasks?actions=*byquery&detailed来查询查询更新的状态。

答案 1 :(得分:0)

您可以使用下面的代码更新TransportClient的连接超时值:

Settings.builder().put("transport.tcp.connect_timeout", "240s")

完整的TransportClient代码:

Settings settings = Settings.builder()
        .put(ElasticSearchReservedWords.CLUSTER_NAME.getText(), LogHandlerConstants.CLUSTER_NAME)
        .put(ElasticSearchReservedWords.LISTENER_TRANSPORT_SNIFF.getText(), true)
        .put("transport.tcp.connect_timeout", "240s")
        .build();

Client transportClient = new PreBuiltTransportClient(settings)
        .addTransportAddresses(
                new TransportAddress("127.0.0.1"), "9300"));

每个Elasticsearch版本具有不同的配置密钥。您可以阅读本文档以了解其他可以更改的设置:

https://www.elastic.co/guide/en/elasticsearch/reference/6.4/modules-transport.html

答案 2 :(得分:0)

更改 kibana.yml。 添加行:

elasticsearch.requestTimeout: 90000  # default 30s