問題
用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