Saya ingin mendaftar semua indeks yang ada di server ElasticSearch. 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 ..
curl
elasticsearch
Eva
sumber
sumber
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
titik akhir, atau titik akhir kesehatan dengan param_cluster/health?level=indices
Mencoba
Ini akan memberi Anda mengikuti penjelasan sendiri dengan cara tabel
sumber
Anda dapat meminta
localhost:9200/_status
dan itu akan memberi Anda daftar indeks dan informasi tentang masing-masing. Responsnya akan terlihat seperti ini:sumber
GET /_stats/indexes
/_stats/indices
karena ini adalah jamak yang benar dan juga kunci yang digunakan dalam/_status
dan dalam/_stats
._nodes/stats
dan_nodes/status
@KimberlyWPerintah _stats menyediakan cara untuk menyesuaikan hasil dengan menentukan metrik yang diinginkan. Untuk mendapatkan indeks, kueri adalah sebagai berikut:
Format umum dari
_stats
kueri adalah:Di mana metrik berada:
Sebagai latihan untuk diri saya sendiri, saya telah menulis sebuah plugin elasticsearch kecil yang menyediakan fungsionalitas untuk membuat daftar indeks elasticsearch tanpa informasi lain. Anda dapat menemukannya di url berikut:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
sumber
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
Saya menggunakan ini untuk mendapatkan semua indeks:
Dengan daftar ini Anda dapat mengerjakan ...
Contoh
Untuk mendapatkan kolom ke-3 di atas (nama-nama indeks):
CATATAN: Anda juga dapat menggunakan
awk '{print $3}'
sebagai ganticut -d\ -f3
.Tajuk Kolom
Anda juga bisa mengakhiri sufiks dengan
?v
menambahkan kolom tajuk. Melakukannya akan merusakcut...
metode jadi saya akan merekomendasikan menggunakanawk..
seleksi pada titik ini.sumber
curl -s 'http://localhost:9200/_cat/indices?h=index'
akan mencetak hanya nama indeks. Tidak perlu menggunakan trik shell untuk menyaring kolom.tr -s ' '
sebelumnyacut
untuk menyingkat run spasi) atau Anda tidak akan mendapatkan nama indeks jika statusnyared
karena akan diisi dengan spasi dancut
memperlakukan setiap ruang individu sebagai pembatasan sebuah bidang baru bahkan jika "bidang" itu berakhir kosongSaya juga merekomendasikan melakukan / _cat / indeks yang memberikan daftar indeks yang dapat dibaca manusia.
sumber
Cara paling sederhana untuk mendapatkan daftar hanya indeks adalah dengan menggunakan jawaban di atas, dengan parameter 'h = indeks':
sumber
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Ini akan menampilkan seperti di bawah ini
sumber
Saya akan memberi Anda kueri yang bisa Anda jalankan di kibana.
dan versi CURL akan menjadi
sumber
Untuk lebih banyak (Situs Resmi Elasticsearch)
sumber
Untuk daftar indeks yang dapat Anda lakukan: curl 'localhost: 9200 / _cat / index? V' Elasticsearch Documentation
sumber
Mengakses Pencarian Elastis Terjamin melalui Curl (Pembaruan 2020)
Jika
Elastic Search
diamankan, Anda dapat menggunakan perintah ini untuk mendaftar indekssumber
_stats/indices
memberikan hasilnya denganindices
.sumber
Orang-orang di sini telah menjawab bagaimana melakukannya dalam ikal dan pengertian, beberapa orang mungkin perlu melakukan ini di java.
Ini dia
sumber
Coba cat API ini: ini akan memberi Anda daftar semua indeks dengan kesehatan dan detail lainnya.
CURL -XGET http: // localhost: 9200 / _cat / index
sumber
Untuk Elasticsearch 6.X, saya menemukan yang berikut ini yang paling membantu. Masing-masing memberikan data yang berbeda dalam respons.
sumber
Anda juga bisa mendapatkan indeks spesifik menggunakan
Untuk info lebih lanjut
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
sumber
inilah cara lain hanya untuk melihat indeks di db:
sumber
Salah satu cara terbaik untuk mendaftar indeks + untuk menampilkan statusnya bersama dengan daftar: adalah dengan hanya menjalankan kueri di bawah ini.
Catatan: sebaiknya gunakan Sense untuk mendapatkan output yang tepat.
Output sampel adalah sebagai berikut. Keuntungan utama adalah, pada dasarnya menunjukkan nama indeks dan pecahan itu disimpan ke dalam, ukuran indeks dan pecahan ip dll
sumber
Saya menggunakan
_stats/indexes
titik akhir untuk mendapatkan gumpalan data json dan kemudian menyaring dengan jq .Jika Anda tidak ingin kutipan, tambahkan
-r
bendera ke jq.Ya, titik akhir adalah
indexes
dan kunci data adalahindices
, jadi mereka juga tidak dapat mengambil keputusan :)Saya perlu ini untuk membersihkan indeks sampah yang dibuat oleh pemindaian keamanan internal (nessus).
PS. Saya sangat merekomendasikan untuk mengenal jq jika Anda akan berinteraksi dengan ES dari baris perintah.
sumber
API Java
sumber
Jika Anda bekerja di scala, cara untuk melakukan ini dan menggunakan
Future
adalah membuat RequestExecutor, kemudian gunakan IndicesStatsRequestBuilder dan klien administratif untuk mengirimkan permintaan Anda.Eksekutor diangkat dari posting blog ini yang pasti merupakan bacaan yang bagus jika Anda mencoba untuk meminta ES secara terprogram dan tidak melalui curl. Setelah Anda memilikinya, Anda dapat membuat daftar semua indeks dengan mudah seperti:
client
adalah turunan dari Klien yang dapat berupa simpul atau klien transportasi, mana yang sesuai dengan kebutuhan Anda. Anda juga harus memilikiExecutionContext
ruang lingkup implisit untuk permintaan ini. Jika Anda mencoba untuk mengkompilasi kode ini tanpa itu maka Anda akan mendapatkan peringatan dari scala compiler tentang cara mendapatkannya jika Anda belum memiliki yang diimpor.Saya membutuhkan jumlah dokumen, tetapi jika Anda benar-benar hanya membutuhkan nama indeks, Anda dapat menariknya dari kunci peta alih-alih dari
IndexStats
:Pertanyaan ini muncul ketika Anda mencari cara melakukan ini bahkan jika Anda mencoba melakukan ini secara terprogram, jadi saya harap ini membantu siapa pun yang ingin melakukan ini di scala / java. Jika tidak, pengguna ikal hanya dapat melakukan seperti yang dikatakan dan digunakan jawaban teratas
sumber
Anda dapat mencoba perintah ini
curl -X DAPATKAN http: // localhost: 9200 / _cat / index? v
sumber
Saya sudah menginstal Kibana dan ES di mesin. Tapi saya tidak tahu detailnya (di jalur apa, atau port) adalah simpul ES pada mesin itu.
Jadi bagaimana Anda bisa melakukannya dari Kibana (versi 5.6)?
GET _cat/indices
Saya tertarik menemukan ukuran indeks ES tertentu
sumber
Jika Anda memiliki curl yang diinstal pada sistem Anda, maka coba perintah sederhana ini: curl -XGET xx.xx.xx.xx: 9200 / _cat / indexes? V
Perintah yang disebutkan di atas memberi Anda hasil dalam format ini: hasil untuk mengambil semua indeks
sumber