Elasticsearch > index [foo_index] blocked by



Macのローカル環境のElasticsearchにデータ追加時に、`cluster_block_exception`が表示された件


## 現象


Elasticsearchにデータを追加しようとした時に、書き込みエラーが表示された

### データ追加

```
$ curl --include -XPOST "http://localhost:9200/foo_index/_doc" \
-H 'Content-Type: application/json' \
-d '{
  "user": "peke",
  "message": "this message."
}'
```


### データの追加時のレスポンス

```
{
    "error": {
        "root_cause": [
            {
                "type": "cluster_block_exception",
                "reason": "index [foo_index] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"
            }
        ],
        "type": "cluster_block_exception",
        "reason": "index [foo_index] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"
    },
    "status": 429
}
```

## 原因

Elasticsearchの設定を確認

```
$ curl --include -XGET "http://localhost:9200/foo_index/_settings?pretty"

```


```
{
  "foo_index" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "1",
        "blocks" : {
          "read_only_allow_delete" : "true"
        },
        "provided_name" : "foo_index",
        "creation_date" : "1601874837243",
        "number_of_replicas" : "1",
        "uuid" : "vNNFrvi_R3e6xpFXS3Xmqg",
        "version" : {
          "created" : "7090299"
        }
      }
    }
  }
}
```


"read_only_allow_delete" : "true"　になっている。
読み取り専用モードになっているのが原因のもよう


以下のページにも書いてあったが、空きディスク容量が5％未満の場合、読み取り専用モードになるもよう

[How to fix Elasticsearch 'FORBIDDEN/12/index read-only' - Today I Learned](https://selleo.com/til/posts/esrgfyxjee-how-to-fix-elasticsearch-forbidden12index-read-only)

>By default, Elasticsearch installed with homebrew on Mac OS goes into read-only mode when you have less than 5% of free disk space. If you see errors similar to this:

>デフォルトでは、Mac OSにhomebrewをインストールしたElasticsearchは、空きディスク容量が5％未満の場合、読み取り専用モードになります。

 
 ディスクを確認

![スクリーンショット 2020-10-05 16.08.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49910/3172de60-dd46-231b-54d7-9de736be5a02.png "スクリーンショット 2020-10-05 16.08.14.png")

（5%未満かというと微妙だが）たしかにディスク残量は少なくなっていた。


HDDの残量を増やして再度、設定を確認


```
$ curl --include -XGET "http://localhost:9200/foo_index/_settings?pretty"

```


```
{
    "foo_index": {
        "settings": {
            "index": {
                "creation_date": "1601879846599",
                "number_of_shards": "1",
                "number_of_replicas": "1",
                "uuid": "pZXw3Ng7SeGZym9ORrkKaQ",
                "version": {
                    "created": "7090299"
                },
                "provided_name": "foo_index"
            }
        }
    }
}
```


blocksが消えました！！



## 再度データ追加


### データ追加

```
$ curl --include -XPOST "http://localhost:9200/foo_index/_doc" \
-H 'Content-Type: application/json' \
-d '{
  "user": "peke",
  "message": "this message."
}'
```


#### データの追加時のレスポンス

```
{
    "_index": "foo_index",
    "_type": "_doc",
    "_id": "-uCZ93QB4SFaJHY-3iHL",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 2
}
```

データ追加ができました


### 追加の結果確認


```
$ curl --include -XGET "http://localhost:9200/foo_index/_doc/9xNyi3MBhHaU2qi75ayU?pretty"

```

```
{
    "_index": "foo_index",
    "_type": "_doc",
    "_id": "--Ca93QB4SFaJHY-aCFx",
    "_version": 2,
    "_seq_no": 2,
    "_primary_term": 2,
    "found": true,
    "_source": {
        "user": "peke",
        "message": "this message."
    }
}
```