Saya ingin daftar semua indeks hadir pada ElasticSearch server. Saya mencoba ini:
curl -XGET localhost:9200/
tapi itu hanya memberi saya ini:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Saya ingin daftar semua indeks..
Untuk daftar ringkas dari semua indeks dalam cluster, panggilan
curl http://localhost:9200/_aliases
ini akan memberikan anda sebuah daftar indeks dan alias-aliasnya.
Jika anda ingin cantik-dicetak, tambahkan cukup=true
:
curl http://localhost:9200/_aliases?pretty=true
Hasilnya akan terlihat seperti ini, jika indeks yang disebut old_deuteronomy
dan mungojerrie
:
{
"old_deuteronomy" : {
"aliases" : { }
},
"mungojerrie" : {
"aliases" : {
"rumpleteazer" : { },
"that_horrible_cat" : { }
}
}
}
Anda dapat query localhost:9200/_status pada
dan itu akan memberikan anda sebuah daftar indeks dan informasi tentang masing-masing. Respon akan terlihat seperti ini:
{
"ok" : true,
"_shards" : { ... },
"indices" : {
"my_index" : { ... },
"another_index" : { ... }
}
}
Yang _stats perintah menyediakan cara untuk menyesuaikan hasil dengan menentukan metrik berharap. Untuk mendapatkan indeks query adalah sebagai berikut:
GET /_stats/indices
Format umum dari _stats
query ini:
/_stats
/_stats/{metric}
/_stats/{metric}/{indexMetric}
/{index}/_stats
/{index}/_stats/{metric}
Di mana metrik adalah:
indices, docs, store, indexing, search, get, merge,
refresh, flush, warmer, filter_cache, id_cache,
percolate, segments, fielddata, completion
Sebagai exercice untuk diriku sendiri, aku've tertulis kecil elasticsearch plugin yang menyediakan fungsi untuk daftar elasticsearch indeks tanpa informasi lainnya. Anda dapat menemukan ini di url berikut:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
Saya menggunakan ini untuk mendapatkan semua indeks:
$ curl --silent 'http://127.0.0.1:9200/_cat/indices' | cut -d\ -f3
Dengan daftar ini, anda dapat bekerja pada...
$ curl -s 'http://localhost:9200/_cat/indices' | head -5
green open qa-abcdefq_1458925279526 1 6 0 0 1008b 144b
green open qa-test_learnq_1460483735129 1 6 0 0 1008b 144b
green open qa-testimportd_1458925361399 1 6 0 0 1008b 144b
green open qa-test123p_reports 1 6 3868280 25605 5.9gb 870.5mb
green open qa-dan050216p_1462220967543 1 6 0 0 1008b 144b
Untuk mendapatkan ke-3 kolom di atas (nama-nama indeks):
$ curl -s 'http://localhost:9200/_cat/indices' | head -5 | cut -d\ -f3
qa-abcdefq_1458925279526
qa-test_learnq_1460483735129
qa-testimportd_1458925361399
qa-test123p_reports
qa-dan050216p_1462220967543
CATATAN: Anda juga dapat menggunakan awk '{print $3}'
bukan cut-d\ -f3
.
Anda juga dapat akhiran query dengan ?v
untuk menambahkan header kolom. Melakukan hal ini akan mematahkan, memotong,...metode sehingga saya'd sarankan menggunakan
awk..` pilihan pada saat ini.
$ curl -s 'http://localhost:9200/_cat/indices?v' | head -5
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open qa-abcdefq_1458925279526 1 6 0 0 1008b 144b
green open qa-test_learnq_1460483735129 1 6 0 0 1008b 144b
green open qa-testimportd_1458925361399 1 6 0 0 1008b 144b
green open qa-test123p_reports 1 6 3868280 25605 5.9gb 870.5mb
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Ini akan output seperti di bawah ini
{
"cluster_name": "XXXXXX:name",
"status": "green",
"timed_out": false,
"number_of_nodes": 3,
"number_of_data_nodes": 3,
"active_primary_shards": 199,
"active_shards": 398,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100,
"indices": {
"logstash-2017.06.19": {
"status": "green",
"number_of_shards": 3,
"number_of_replicas": 1,
"active_primary_shards": 3,
"active_shards": 6,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0
},
"logstash-2017.06.18": {
"status": "green",
"number_of_shards": 3,
"number_of_replicas": 1,
"active_primary_shards": 3,
"active_shards": 6,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0
}}
_stats/indeks
memberikan hasil dengan indeks
.
$ curl -XGET "localhost:9200/_stats/indices?pretty=true"
{
"_shards" : {
"total" : 10,
"successful" : 5,
"failed" : 0
},
"_all" : {
"primaries" : { },
"total" : { }
},
"indices" : {
"visitors" : {
"primaries" : { },
"total" : { }
}
}
}
Orang-orang di sini telah menjawab bagaimana melakukannya di curl dan rasa, beberapa orang mungkin perlu untuk melakukan hal ini di pulau jawa.
Di sini ia pergi
client.admin().indices().stats(new IndicesStatsRequest()).actionGet().getIndices().keySet()
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.4.0</version>
</dependency>
Java API
Settings settings = Settings.settingsBuilder().put("cluster.name", Consts.ES_CLUSTER_NAME).build();
TransportClient client = TransportClient.builder().settings(settings).build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("52.43.207.11"), 9300));
IndicesAdminClient indicesAdminClient = client.admin().indices();
GetIndexResponse getIndexResponse = indicesAdminClient.getIndex(new GetIndexRequest()).get();
for (String index : getIndexResponse.getIndices()) {
logger.info("[index:" + index + "]");
}
Saya menggunakan _stats/indeks
akhir untuk mendapatkan json blob data dan kemudian menyaring dengan jq.
curl 'localhost:9200/_stats/indexes' | jq '.indices | keys | .[]'
"admin"
"blazeds"
"cgi-bin"
"contacts_v1"
"flex2gateway"
"formmail"
"formmail.pl"
"gw"
...
Jika anda don't ingin mengutip, tambahkan -r
bendera untuk jq.
Ya, akhir adalah indeks
dan data kunci indeks
, sehingga mereka tidak't membuat pikiran mereka baik :)
Aku membutuhkan ini untuk membersihkan sampah ini indeks yang dibuat oleh internal security scan (pergi).
PS. Saya sangat merekomendasikan mendapatkan akrab dengan jq jika anda're akan berinteraksi dengan ES dari baris perintah.
Saya telah Kibana dan ES diinstal pada mesin. Tapi saya tidak tahu detailnya(di jalan apa, atau port) adalah ES node pada mesin itu.
Jadi bagaimana anda bisa melakukan ini dari Kibana (versi 5.6)?
MENDAPATKAN _cat/indeks
Saya tertarik dalam menemukan ukuran tertentu ES indeks
You may use this command line.
curl -X MENDAPATKAN "localhost:9200/_cat/indeks?v"
Lebih (Elasticsearch situs Resmi)
You can also get specific index using
curl -X GET "localhost:9200/<INDEX_NAME>"
e.g. curl -X GET "localhost:9200/twitter"
You may get output like:
{
"twitter": {
"aliases": {
},
"mappings": {
},
"settings": {
"index": {
"creation_date": "1540797250479",
"number_of_shards": "3",
"number_of_replicas": "2",
"uuid": "CHYecky8Q-ijsoJbpXP95w",
"version": {
"created": "6040299"
},
"provided_name": "twitter"
}
}
}
}
For more info [https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html][1]
Untuk Elasticsearch 6.X, saya menemukan berikut yang paling bermanfaat. Masing-masing memberikan data yang berbeda dalam respon.
``
curl -sS 'localhost:9200/_stats' | jq -C ".indeks" | kurang
curl -sS 'localhost:9200/_cluster/kesehatan?tingkat=indeks' | jq -C ".indeks" | kurang ``