我最近通过Elasticsearch中的Head插件关闭了一个索引。 我没有删除它。
我想重新打开它,但上帝禁止我忘记我关闭了哪个索引。
如何获取我关闭的所有索引的列表?
我试过了:
curl -s localhost:9200/_stats | grep logstash-2013.12.05
curl -s localhost:9200/_status | grep logstash-2013.12.05
但没有运气。
答案 0 :(得分:10)
您可以使用:
http://yourserver:9200/_cluster/state/blocks?pretty
对于Elasticsearch来说,将它贴在这个页面上会很不错:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-open-close.html
答案 1 :(得分:7)
当要求: / _cluster /状态/元数据
您可以从每个可以请求状态的索引中获取索引列表: metadata.indices [ “your_index”]。状态
我也在我的插件中使用它,它对我有用: http://www.gridshore.nl/esgui/
答案 2 :(得分:4)
到目前为止,没有任何API可以执行此操作。但您可以编写脚本来确定关闭哪个索引。
检查API:
curl -XGET http://localhost:9200/_cluster/health/logstash-2014.02.21?pretty
这是索引的状态
指数已开启:
{
"cluster_name" : "ABC",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 1,
"active_shards" : 1,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
指数已结束:
{
"cluster_name" : "ABC",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
根据信息,您可以通过 active_primary_shards 确定索引状态。 希望这可以帮到你。
答案 3 :(得分:4)
答案 4 :(得分:2)
添加一个打印已关闭索引列表的命令(没有别的),我正在谷歌上搜索。
curl -s -XGET 'http://localhost:9200/_cat/indices?h=status,index' | awk '$1 == "close" {print $2}'
-s
会使卷曲静音,因此它不会显示状态栏h=status,index
param说_cat
命令只打印两列awk
过滤器将在状态为 close 另请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/2.4/cat-indices.html
显然_cat
命令的更新版本更强大..排序,过滤,你命名它。请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html
答案 5 :(得分:1)
如果您在这里唯一的问题是看到哪个索引已关闭,即您可以使用的管理任务,例如ElasticSearh头插件:
http://yourserver:9200/_plugin/head/
不要忘记最后一次斜线。如果您无法安装它(例如在某些托管的ElasticSearch上),或者由于其他原因无法安装它,或者想要以编程方式操作索引,您可以使用其他建议来使用API找到它。
P.S。:/ _cluster / state / metadata实际上可能非常长,例如如果您使用动态映射。
答案 6 :(得分:1)
使用Curl GET _cat / indices,$ 2将显示索引的状态。
答案 7 :(得分:0)
http://es_endpoints.com:9200/index-pattern-*/_settings?expand_wildcards=closed
从ES源代码中获取IndicesOptions.java的答案:
public static IndicesOptions fromParameters(Object wildcardsString, Object ignoreUnavailableString, Object allowNoIndicesString, IndicesOptions defaultSettings) {
if (wildcardsString == null && ignoreUnavailableString == null && allowNoIndicesString == null) {
return defaultSettings;
}
boolean expandWildcardsOpen = false;
boolean expandWildcardsClosed = false;
if (wildcardsString == null) {
expandWildcardsOpen = defaultSettings.expandWildcardsOpen();
expandWildcardsClosed = defaultSettings.expandWildcardsClosed();
} else {
String[] wildcards = nodeStringArrayValue(wildcardsString);
for (String wildcard : wildcards) {
if ("open".equals(wildcard)) {
expandWildcardsOpen = true;
} else if ("closed".equals(wildcard)) {
expandWildcardsClosed = true;
} else if ("none".equals(wildcard)) {
expandWildcardsOpen = false;
expandWildcardsClosed = false;
} else if ("all".equals(wildcard)) {
expandWildcardsOpen = true;
expandWildcardsClosed = true;
} else {
throw new IllegalArgumentException("No valid expand wildcard value [" + wildcard + "]");
}
}
}
//note that allowAliasesToMultipleIndices is not exposed, always true (only for internal use)
return fromOptions(
nodeBooleanValue(ignoreUnavailableString, "ignore_unavailable", defaultSettings.ignoreUnavailable()),
nodeBooleanValue(allowNoIndicesString, "allow_no_indices", defaultSettings.allowNoIndices()),
expandWildcardsOpen,
expandWildcardsClosed,
defaultSettings.allowAliasesToMultipleIndices(),
defaultSettings.forbidClosedIndices(),
defaultSettings.ignoreAliases()
);
}