Aș dori să lista toate indexurile prezent pe o ElasticSearch server. Am incercat asa:
curl -XGET localhost:9200/
dar dă-mi asta:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Vreau o listă cu toate indexurile..
Pentru o listă concisă a tuturor indicilor în cluster, sun
curl http://localhost:9200/_aliases
acest lucru vă va oferi o listă de indici și pseudonimele lor.
Dacă doriți destul de imprimat, se adaugă destul de=true`:
curl http://localhost:9200/_aliases?pretty=true
Rezultatul va arata ceva de genul asta, dacă indicii sunt numite old_deuteronomy " și " mungojerrie
:
{
"old_deuteronomy" : {
"aliases" : { }
},
"mungojerrie" : {
"aliases" : {
"rumpleteazer" : { },
"that_horrible_cat" : { }
}
}
}
Încercați
curl 'localhost:9200/_cat/indices?v'
Eu va voi da urmatoarele auto-explicative de ieșire într-o manieră de tabel
health index pri rep docs.count docs.deleted store.size pri.store.size
yellow customer 5 1 0 0 495b 495b
Puteți interoga localhost:9200/_status
și care vă va oferi o listă de indicii și informații despre fiecare. Răspunsul va arata ceva de genul asta:
{
"ok" : true,
"_shards" : { ... },
"indices" : {
"my_index" : { ... },
"another_index" : { ... }
}
}
La _stats comandă oferă modalități de a personaliza rezultatele specificând valorile dorit. Pentru a obține indici de interogare este după cum urmează:
GET /_stats/indices
Formatul general al _stats
interogare este:
/_stats
/_stats/{metric}
/_stats/{metric}/{indexMetric}
/{index}/_stats
/{index}/_stats/{metric}
În cazul în care valorile sunt:
indices, docs, store, indexing, search, get, merge,
refresh, flush, warmer, filter_cache, id_cache,
percolate, segments, fielddata, completion
Ca un exercițiu de mine, am'am scris un mic elasticsearch plugin care furnizează funcționalitatea de a lista elasticsearch indici, fără orice alte informații. Îl puteți găsi la următoarea adresă url:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
Eu folosesc acest lucru pentru a obține toate indici:
$ curl --silent 'http://127.0.0.1:9200/_cat/indices' | cut -d\ -f3
Cu această listă puteți lucra pe...
$ 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
Pentru a obține a 3-a coloana de mai sus (nume de indici):
$ 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
NOTĂ: puteți utiliza, de asemenea, awk '{print $3}' "în loc de" cut-d\ -f3
.
Puteți, de asemenea, sufixul interogare cu un ?v
pentru a adăuga un antet de coloană. Acest lucru va rupe cut...
metoda așa că am'd recomanda folosind awk.. de selecție în acest moment.
$ 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'
Această ieșire va plac mai jos
{
"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/indici dă rezultatul cu
indicii`.
$ curl -XGET "localhost:9200/_stats/indices?pretty=true"
{
"_shards" : {
"total" : 10,
"successful" : 5,
"failed" : 0
},
"_all" : {
"primaries" : { },
"total" : { }
},
"indices" : {
"visitors" : {
"primaries" : { },
"total" : { }
}
}
}
Oamenii de aici au răspuns cum se face în flexie și sens, unii oameni ar putea avea nevoie pentru a face acest lucru în java.
Aici merge
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 + "]");
}
Eu folosesc _stats/indici
final pentru a obține un json blob de date și apoi se filtrează cu kj.
curl 'localhost:9200/_stats/indexes' | jq '.indices | keys | .[]'
"admin"
"blazeds"
"cgi-bin"
"contacts_v1"
"flex2gateway"
"formmail"
"formmail.pl"
"gw"
...
Dacă tu nu't vrei citate, se adaugă un -r
steagul jq.
Da, efectul este indicii
și datele cheie este indicii
, ca s't face până mintea lor, fie :)
Am nevoie de acest lucru pentru a curăța aceste gunoaie indici create de interne scanare de securitate (nessus).
PS. Am foarte recomanda familiarizarea cu kj dacă're de gând să interacționeze cu ES de la linia de comandă.
Am avut Kibana și ES instalat pe o mașină. Dar nu stiu detalii(cel ce calea, sau port) a fost ES nod de pe acea masina.
Deci, cum poti face din Kibana (versiunea 5.6)?
`IA _cat/indici
Am fost interesat în a găsi dimensiunea de un anumit ES index
You may use this command line.
curl -X a OBȚINE "localhost:9200/_cat/indici?v"
Mai mult (Elasticsearch site-ul Oficial)
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]
Pentru Elasticsearch 6.X, am găsit următoarele cele mai utile. Fiecare oferă date diferite în răspuns.
``
curl-sS 'localhost:9200/_stats' | kj -C ".indici" | mai puțin
curl-sS 'localhost:9200/_cluster/sănătate?nivel=indici' | kj -C ".indici" | mai puțin ``