0

デバッグ ログに使用する 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,...) をループする必要があります。

Bash でこれ (2 つの変数) をループするにはどうすればよいですか? 削除 API 呼び出しには 2 つの変数があり、これを置き換える必要があります (私の知る限り):

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

これについて私が気になるのは、割り当てられていないシャードにはノードがないことです。しかし、API 呼び出しで指定する必要があります。

4

1 に答える 1

2

あなたが共有した_cat/shards出力から、それらは割り当てられていないレプリカのように見えます。これは、次のようにクラスター設定を更新し、レプリカ数を 0 に設定することで簡単に削除できます。

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

上記の curl を実行すると、クラスターは再び緑色になります。

于 2016-01-05T12:36:27.573 に答える