elasticsearch,Node.js,Amazon Web Services,elasticsearch" /> elasticsearch,Node.js,Amazon Web Services,elasticsearch" />

Node.js 无法在弹性搜索中写入文档

Node.js 无法在弹性搜索中写入文档,node.js,amazon-web-services,elasticsearch,Node.js,Amazon Web Services,elasticsearch,我正在使用AWS的弹性搜索服务。我面临一个奇怪的问题。 弹性搜索节点似乎已变成只读。我查看了日志,但代码中没有一个错误。我正在获得成功。 我为nodejs使用弹性客户端 var elasticClient = new elasticsearch.Client(this.options); elasticClient.bulk(data); 数据如下所示: [ { "update": { "_index": "elastic_index", "_type":

我正在使用AWS的弹性搜索服务。我面临一个奇怪的问题。 弹性搜索节点似乎已变成只读。我查看了日志,但代码中没有一个错误。我正在获得成功。 我为nodejs使用弹性客户端

var elasticClient = new elasticsearch.Client(this.options); 
elasticClient.bulk(data);
数据如下所示:

[
  {
    "update": {
      "_index": "elastic_index",
      "_type": "user",
      "_id": 22224689
    }
  },
  {
    "doc": {
      "id": 22224689,
      "first_name" : "John",
      "last_name" : "Deo",
      "email" : "jd@testemail.com",
      "dob" : "1985-12-20",
      "company_name" : "MPLLC",
      "city" : "NY",
      "state" : "Cal",
      "country" : "USA",
      "events" : [
        {
          "event_name" : "E1",
          "date" : "2018-08-15",
          "venue" : "Some custom venue"
        }  

      ]
    },
    "doc_as_upsert": true
  }
]
从去年开始,它运行良好。突然停止在索引中记录用户

以下是我在ES中写作时遇到的一个例外:

{"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/8/index write (api)];"}],"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/8/index write (api)]

你知道是什么问题吗。

我也有同样的问题。在我的例子中,问题在于索引生命周期策略。我有一个策略,在一定时间后将索引模式更改为“温暖”。出于某种原因,消息开始堆积在我的队列中,然后到达Elasticsearch集群。这会导致拒绝,因为索引模式“温暖”是只读状态。它需要处于“热”状态才能允许写作

解决方案是延长进入“温暖”模式的时间


另一个可能的原因是,如果群集节点开始耗尽内存或空间。

那么来自ES的日志呢,您有权访问它吗?也许你的磁盘已满?可能吗?我没有访问ES日志的权限。我也会检查它们。有一次我看到最小空间是9GB,可用空间是18GB。是否有过流的可能性?运行
get\u nodes/stats/fs
时会得到什么?请在aws服务域上查看。在域仪表板上,您可以看到索引文档的数量以及已用和可用的存储空间。如果您有存储问题,那么只需调整ES域的配置,并将其扩展到另一台具有大型存储的计算机