ELK出现unassigned_shards查看及删除
问题
用3台服务器搭建了ELK系统,有一天出现有几个索引一直无法同步,重启了elasticsearch也不行
如下图:elk-cluster一直处于red状态
解决方法
一,查看elasticsearch有3个UNASSIGNED状态的索引
[root@192-168-x-x ~]# curl -XGET 'http://192.168.x.xx:9200/_cat/shards' |grep UNASSIGNED % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0etl211-online-2017.07.21 xxx11-online-2017.07.21 0 r UNASSIGNED xx-master201-online-2017.07.18 1 p UNASSIGNED xx-master201-online-2017.07.18 1 r UNASSIGNED 100 415k 100 415k 0 0 107k 0 0:00:03 0:00:03 --:--:-- 107k
二,删除有问题的索引
[root@192-168-x-x ~]# curl -XDELETE http://192.168.x.x:9200/xx-master201-online-2017.07.18 {"acknowledged":true} [root@192-168-x-x ~]# curl -XDELETE http://192.168.x.x:9200/xx211-online-2017.07.21 {"acknowledged":true}
三,查看elk-cluster已变为绿色
总结
关于unassigned shards的问题,一般遇到这种情况都是——重启试试, 因为可能是网络通信问题会影响分片分配
另外也可以看看日志,报了什么错,有遇到过硬盘了满了,具体问题具体分析
不行的话,只能强制删除。
第一看集群状态:
curl -XGET 'http://localhost:9200/_cluster/health'
第二,看所有的shards:
curl -XGET 'http://localhost:9200/_cat/shards'
第三,看unassignded shards:
curl -XGET 'http://localhost:9200/_cat/shards' | grep UNASSIGNED
志不强者智不达