2

我们在 EC2 AWS 上设置了一个 3 节点 (c4.large) ElasticSearch 2.1.0 集群(由我称为 es-live-0、es-live-1、es-live-2 的节点组成) ,它运行良好并提供了一个 web 应用程序。

其中一个节点还托管一个 kibana,它收集并显示 marvel-agent 发送给它的数据。

昨天,marvel-agent 未能创建新的 marvel 数据索引,并且由于下面提供的一些示例日志而失败。随后集群出现故障,但其状态在大约 20 分钟后恢复为绿色。然而,今天早上到达办公室时,我意识到这些都是谎言!我们的 webapp 的请求超时,我无法通过 ssh 进入 es-live-0,即使它在 EC2 的监控仪表板上看起来还不错。重新启动解决了这个问题,但鉴于这是我们的生产系统,我真的很想了解这一点。

阅读此主题后:https : //discuss.elastic.co/t/marvel-high-index-rate/38935/4,我意识到我们应该将 kibana 移动到独立节点并将 marvel 数据发送到运行的 ElasticSearch它。这可能是根本问题吗?为了给你一个想法,我们的 web 应用程序使用了 3 个主要索引,跨越 23 个分片。系统上的分片总数为 145,其中大部分与奇迹数据有关。同时,感觉大量分片不应该使其中一个节点无响应,或者我假设这一点是错误的?

此外,如果其中一个节点变得无响应,为什么集群不将其弹出并继续作为 2 节点设置?

示例日志:

Feb 02 00:02:13 es-live-1 elasticsearch-live.log:  [2016-02-02 00:02:17,006][ERROR][marvel.agent             ] [Joshua Guthrie] background thread had an uncaught exception
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:  ElasticsearchException[failed to flush exporter bulks]
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   at org.elasticsearch.marvel.agent.exporter.ExportBulk$Compound.flush(ExportBulk.java:104)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   at org.elasticsearch.marvel.agent.exporter.ExportBulk.close(ExportBulk.java:53)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   at org.elasticsearch.marvel.agent.AgentService$ExportingWorker.run(AgentService.java:201)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   at java.lang.Thread.run(Thread.java:745)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   Suppressed: ElasticsearchException[failed to flush [default_local] exporter bulk]; nested: ElasticsearchException[failure in bulk execution:
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:  [0]: index [.marvel-es-2016.02.02], type [node_stats], id [null], message [RemoteTransportException[[Corruptor][es-live-0:9300][indices:admin/create]]; nested: ProcessClusterEventTimeoutException[failed to process cluster event (acquire index lock) within 1m];]];
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:       at org.elasticsearch.marvel.agent.exporter.ExportBulk$Compound.flush(ExportBulk.java:106)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:       ... 3 more
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:   Caused by: ElasticsearchException[failure in bulk execution:
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:  [0]: index [.marvel-es-2016.02.02], type [node_stats], id [null], message [RemoteTransportException[[Corruptor][es-live-0:9300][indices:admin/create]]; nested: ProcessClusterEventTimeoutException[failed to process cluster event (acquire index lock) within 1m];]]
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:       at org.elasticsearch.marvel.agent.exporter.local.LocalBulk.flush(LocalBulk.java:114)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:       at org.elasticsearch.marvel.agent.exporter.ExportBulk$Compound.flush(ExportBulk.java:101)
Feb 02 00:02:13 es-live-1 elasticsearch-live.log:       ... 3 more
4

0 回答 0