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
文章图片

正常的状态应该是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 健康状态出现red】节点基本都没挂掉,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/indicesrm -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 } },

    推荐阅读