Elasticsearch 健康状态出现red

Elasticsearch 基础命令:
检测状态
curl http://172.18.28.53:29200/_cluster/health?pretty
curl http://172.18.28.53:29200/_cluster/health?level=shards
查看节点信息
curl ‘http://172.18.28.53:29200/_nodes/process?pretty’
查看分片状态:
curl http://172.18.28.53:29200/_cat/shards

删除索引数据:
-bash-4.1$ curl -XDELETE http://172.18.28.50:29200/mir2_sdo_com-5-2020-06-28

Elasticsearch 健康状态出现red_第1张图片

正常的状态应该是green, red状态表示主分片缺失了。

第一步: 检测状态
curl http://172.18.28.53:29200/_cluster/health?pretty
{
“cluster_name” : “Tigard-live-233”,
“status” : “red”,
“timed_out” : false,
“number_of_nodes” : 20,
“number_of_data_nodes” : 20,
“active_primary_shards” : 8094,
“active_shards” : 9966,
“relocating_shards” : 0,
“initializing_shards” : 56,
“unassigned_shards” : 38008,
“delayed_unassigned_shards” : 0,
“number_of_pending_tasks” : 8576,
“number_of_in_flight_fetch” : 79688,
“task_max_waiting_in_queue_millis” : 1289812,
“active_shards_percent_as_number” : 20.74953154278576
}

出现了大量未分配的分配: unassigned_shards

节点基本都没挂掉,Elasticsearch 存储的数据量比较大, 后来删除一些所有数据,

删除数据分为三种:

第一种: 是删除索引(数据和表结构同时删除,作用同SQLSERVER 中 DROP TABLE “表格名” ),
   
删除单个索引可以使用命令 【DELETE /索引名称】

Delete 索引名称

-bash-4.1$ curl -XDELETE http://172.18.28.50:29200/mir2_clientdown_sdo_com_gosuncdn_net-5-2020-06-28
{"acknowledged":true}

第二种: 是删除数据(不删除表结构)。
1.:删除所有数据:

POST /testindex/testtype/_delete_by_query?pretty
{
“query”: {
“match_all”: {}
}
}

curl -XPOST 'http://172.18.28.53:29200/mir2_clientdown_sdo_com_gosuncdn_net-6-2020-06-28/1/_delete_by_query' -d '{
  "query": {
        "match_all": {
        }
    }
}'

第三种: 删除安装目录下 \data 目录下的文件

先关闭Elasticsearch

然后在所有节点上执行以下操作, 删除不需要的数据索引文件:

cd  /data/data12/es233-data-node1/Tigard-live-233/nodes/0/indices

rm -rf ff14_clientdown_sdo_com-*
rm -rf mir2_clientdown_sdo_com_gosuncdn_net-*
rm -rf log-*
rm -rf q_shenlawyer_cn-*

在重启Elasticsearch


我选择的是第三种, 重启过后好多了, 但是还有一小部分处于unassigned_shards 状态仍是red。

我就手动对unassigned_shards指定节点, 如果未分配的分区片比较多的话, 就需要更换多个节点, 不能放在一个节点。

执行脚本:
reallocate_replica_red_unassigned_es233.sh

NODE="4Ex2GNM9TXCcLCaMXUIU1g"
IFS=$'\n'
for line in $(curl -s 'http://www.xs-cdn-bigdata03.xs01.mmtrix.com:29200/_cat/shards' | fgrep UNASSIGNED); do
  INDEX=$(echo $line | (awk '{print $1}'))
  SHARD=$(echo $line | (awk '{print $2}'))


   echo " Index:  $INDEX, Shar: $SHARD"  


curl -XPOST 'http://www.xs-cdn-bigdata03.xs01.mmtrix.com:29200/_cluster/reroute' -d '{
  "commands": [
   {
      "allocate": {
      "index": "'$INDEX'",
      "shard": '$SHARD',
      "node": "'$NODE'",
      "allow_primary": true
       }
  }
       ]
}'
done

注释: NODE=“V4VfcszqQRucim_kdIfsWg” 是节点。

查看节点信息

-bash-4.1$ curl 'http://172.18.28.53:29200/_nodes/process?pretty'

"KI4ukoFVRjmpUL9D9xWM7Q" : {
      "name" : "www.xs-cdn-bigdata04.xs01.mmtrix.com-data2",
      "transport_address" : "172.18.28.50:29302",
      "host" : "172.18.28.50",
      "ip" : "172.18.28.50",
      "version" : "2.3.3",
      "build" : "218bdf1",
      "http_address" : "172.18.28.50:29202",
      "attributes" : {
        "max_local_storage_nodes" : "1",
        "master" : "true"
      },
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 15936,
        "mlockall" : true
      }
    },
    "4Ex2GNM9TXCcLCaMXUIU1g" : {
      "name" : "www.xs-cdn-bigdata05.xs01.mmtrix.com-data1",
      "transport_address" : "172.18.28.51:29301",
      "host" : "172.18.28.51",
      "ip" : "172.18.28.51",
      "version" : "2.3.3",
      "build" : "218bdf1",
      "http_address" : "172.18.28.51:29201",
      "attributes" : {
        "max_local_storage_nodes" : "1",
        "master" : "true"
      },
      "process" : {
        "refresh_interval_in_millis" : 1000,
        "id" : 6545,
        "mlockall" : true
      }
    },

你可能感兴趣的:(Elasticsearch)