问题二、ElasticSearch索引不可写


title: 问题二、ElasticSearch索引不可写
date: 2020-4-10 19:20:39
categories: elk


报错

[2020-03-30T09:44:37,949][INFO ][logstash.outputs.elasticsearch] retrying failed action with response code: 403 ({"type"=>"cluster_block_exception","reason"=>"index [test-2020.03.28] blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"})

查看elasticsearch侧的日志:

{"type": "server", "timestamp": "2020-03-31T07:04:10,858+0800", "level": "INFO", "component": "o.e.c.r.a.DiskThresholdMonitor", "cluster.name": "elastic_dev", "node.name": "node-1", "cluster.uuid": "YYLlu3HoRM-rh_T4PPwjFQ", "node.id": "94avg-PQRn6LLbX10q-vJQ",  "message": "low disk watermark [85%] exceeded on [bwZu4ZJFQdKskXSBfmH0tQ][node-2][/software/elasticsearch/data/nodes/0] free: 5gb[14.3%], replicas will not be assigned to this node"  }

发现节点使用率超过85就停止工作,将不会再分配副本,这只是其中一个日志。

查看存储

:~/software/logstash> df
Filesystem            1K-blocks     Used Available Use% Mounted on
devtmpfs                3971848        0   3971848   0% /dev
tmpfs                   3981676       80   3981596   1% /dev/shm
tmpfs                   3981676   264936   3716740   7% /run
tmpfs                   3981676        0   3981676   0% /sys/fs/cgroup
/dev/xvda2             37024192 31174740   4792492  87% /
/dev/mapper/vg01-lv01  92755960 82833764   5203812  95% /software
tmpfs                    797196       16    797180   1% /run/user/483
tmpfs                    797196        0    797196   0% /run/user/0
tmpfs                    797196        0    797196   0% /run/user/1000

可以看到磁盘/software已经使用了95%

原因: 一旦在存储超过95%的磁盘中的节点上分配了一个或多个分片的任何索引,该索引将被强制进入只读模式。

用户也许会感到奇怪,第3,4列块数之和不等于第2列中的块数。这是因为默认的每个分区都留了少量空间供系统管理员使用的缘故。即使遇到普通用户 空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use%列表示普通用户空间使用的百分比,若这一数字达到100%,分区仍然留有系 统管理员使用的空间。

  • 解决方法一:扩充磁盘
  • 解决方法二:删除旧索引使用postman或其他工具
    • 查看索引,找出数据量比较大的
      Get http://localhost:9200/_cat/indices?v
      如上可以看出index为test-2020-03-30 的日志比较大

    • 删除查出的索引
      Delete http://localhost:9200/esop-2020-03-30
      或者使用正则同时删除30号和31号的:
      Delete http://localhost:9200/test-2020-03-3*

      如果删除失败,也就是应答不为true则执行以下步骤:
      发现已经无法操作elasticsearch了,在操作的时候,elasticsearch已经崩溃。查询其他节点,发现有个几点磁盘使用100%,elasticsearch
      运行失败。

      1. 暂停filebeat、logstash
      2. 删除大文件,空出多余空间,
    • 最后将索引设置为可写

          post
          http://localhost:9200/_all/_settings
          {"index":{
              "blocks":{
              "read_only_allow_delete": "false"
              }
          }
          }
      

发现大文件都在kafka

:~/software> du -h --max-depth=1 
636M    ./logstash
531M    ./kibana
26G ./kafka
693M    ./elasticsearch
694M    ./java
42M ./zookeeper
29G .

发现都积攒在kafka了。

./bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic iotcspdev
删除topic
但并没有真正删除,还要删除具体数据和zookeeper上的注册的topic
deleteall /brokers/topics/test

你可能感兴趣的:(问题二、ElasticSearch索引不可写)