Удалить неназначенный индекс/осколки Graylog2 с помощью Bash в цикле

Были некоторые проблемы с диском на сервере Graylog2, который я использую для журналов отладки. Теперь есть неназначенные осколки:

curl -XGET http://host:9200/_cat/shards

graylog_292 1 p STARTED    751733  648.4mb 127.0.1.1 Doctor Leery 
graylog_292 1 r UNASSIGNED                                        
graylog_292 2 p STARTED    756663  653.2mb 127.0.1.1 Doctor Leery 
graylog_292 2 r UNASSIGNED                                        
graylog_290 0 p STARTED    299059  257.2mb 127.0.1.1 Doctor Leery 
graylog_290 0 r UNASSIGNED                                        
graylog_290 3 p STARTED    298759  257.1mb 127.0.1.1 Doctor Leery 
graylog_290 3 r UNASSIGNED                                        
graylog_290 1 p STARTED    298314  257.3mb 127.0.1.1 Doctor Leery 
graylog_290 1 r UNASSIGNED                                        
graylog_290 2 p STARTED    297722  257.1mb 127.0.1.1 Doctor Leery 
graylog_290 2 r UNASSIGNED 
....

Это более 400 осколков. Я могу удалить их без потери данных, потому что это настройка одного узла. Для этого мне нужно пройтись по индексу (graylog_xxx) и осколку (1,2,...).

Как мне перебрать это (2 переменные) с помощью Bash? Есть 2 переменные для вызова API удаления, которые мне нужно заменить (афаик):

curl -XPOST 'host:9200/_cluster/reroute' -d '{
        "commands" : [ {
              "allocate" : {
                  "index" : "$index", 
                  "shard" : $shard, 
                  "node" : "Doctor Leery", 
                  "allow_primary" : true
              }
            }
        ]
    }'

Что меня также беспокоит, так это то, что неназначенные осколки не имеют узла. Но в вызове API мне нужно указать один.


person wishi    schedule 05.01.2016    source источник


Ответы (1)


Сформируйте вывод _cat/shards, которым вы поделились, он просто выглядит так, как будто это неназначенные реплики, которые вы можете просто удалить, обновив настройки кластера и установив количество реплик равным 0, например:

curl -XPUT 'localhost:9200/_settings' -d '{
    "index" : {
        "number_of_replicas" : 0
    }
}'

После запуска приведенного выше завитка ваш кластер снова станет зеленым.

person Val    schedule 05.01.2016