Chciałbym wyświetlić listę wszystkich indeksów obecnych na serwerze ElasticSearch. Próbowałem tego:
curl -XGET localhost:9200/
ale to po prostu daje mi to:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Chcę listę wszystkich indeksów ..
curl
elasticsearch
Eva
źródło
źródło
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
punkt końcowy, albo punkt końcowy zdrowia z param_cluster/health?level=indices
Próbować
Umożliwi to śledzenie danych wyjściowych w sposób tabelaryczny
źródło
Możesz zapytać,
localhost:9200/_status
a to da ci listę indeksów i informacji o każdym z nich. Odpowiedź będzie wyglądać mniej więcej tak:źródło
GET /_stats/indexes
/_stats/indices
ponieważ jest to poprawne mnogiej, a także klucz stosowany w/_status
a/_stats
._nodes/stats
i_nodes/status
@KimberlyWKomenda _stats zapewnia sposoby dostosowywania wyników poprzez określenie żądanych metryk. Aby uzyskać indeksy, zapytanie jest następujące:
Ogólny format
_stats
zapytania to:Gdzie są dane:
Jako ćwiczenie dla siebie napisałem małą wtyczkę elasticsearch, która zapewnia funkcjonalność do wyświetlania indeksów elasticsearch bez żadnych innych informacji. Można go znaleźć pod następującym adresem URL:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
źródło
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
Używam tego, aby uzyskać wszystkie indeksy:
Dzięki tej liście możesz pracować nad ...
Przykład
Aby uzyskać trzecią kolumnę powyżej (nazwy indeksów):
UWAGA: Możesz także użyć
awk '{print $3}'
zamiastcut -d\ -f3
.Nagłówki kolumn
Możesz również
?v
dodać zapytanie do znaku, aby dodać nagłówek kolumny. Spowoduje to złamaniecut...
metody, dlatego polecam użycieawk..
zaznaczenia w tym miejscu.źródło
curl -s 'http://localhost:9200/_cat/indices?h=index'
wypisze tylko nazwę indeksu. Nie trzeba używać sztuczek powłoki do filtrowania kolumny.tr -s ' '
wcześniej,cut
aby skondensować spacje), albo nie dostaniesz nazwy indeksu, jeśli status jest taki,red
że będzie wypełniony spacjami icut
traktuje każdą spację jako rozgraniczającą nowe pole, nawet jeśli to „pole” skończy się pustePoleciłbym także wykonanie / _cat / indices, które dają ładną czytelną dla ludzi listę twoich indeksów.
źródło
Najprostszym sposobem uzyskania listy tylko indeksów jest użycie powyższej odpowiedzi z parametrem „h = indeks”:
źródło
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
To wyjdzie jak poniżej
źródło
Dam ci zapytanie, które możesz uruchomić na kibana.
a wersja CURL będzie
źródło
Więcej informacji (oficjalna strona Elasticsearch)
źródło
Aby wyświetlić listę indeksów, możesz: curl 'localhost: 9200 / _cat / indices? V' Dokumentacja elasticsearch
źródło
Dostęp do bezpiecznego wyszukiwania elastycznego za pomocą funkcji Curl (aktualizacja 2020)
Jeśli
Elastic Search
jest zabezpieczony, możesz użyć tego polecenia, aby wyświetlić listę indeksówźródło
_stats/indices
daje wynik zindices
.źródło
Ludzie tutaj odpowiedzieli, jak to zrobić w curl i sensie, niektórzy ludzie mogą potrzebować zrobić to w java.
Oto jest
źródło
Wypróbuj ten cat API: da ci listę wszystkich wskaźników ze zdrowiem i innymi szczegółami.
CURL -XGET http: // localhost: 9200 / _cat / indices
źródło
W przypadku Elasticsearch 6.X najbardziej pomocne okazało się następujące. Każdy z nich podaje w odpowiedzi inne dane.
źródło
Możesz także uzyskać określony indeks za pomocą
Po więcej informacji
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
źródło
oto inny sposób, aby zobaczyć wskaźniki w db:
źródło
Jednym z najlepszych sposobów wyświetlania list indeksów + w celu wyświetlenia ich statusu wraz z listą: jest po prostu wykonanie poniższego zapytania.
Uwaga: najlepiej użyć Sense, aby uzyskać odpowiednią moc wyjściową.
Przykładowy wynik jest następujący. Główną zaletą jest to, że w zasadzie pokazuje nazwę indeksu i fragmenty, w których został zapisany, rozmiar indeksu i fragmenty ip itp
źródło
Używam
_stats/indexes
punktu końcowego, aby uzyskać blob danych typu json, a następnie filtrować za pomocą jq .Jeśli nie chcesz cytatów, dodaj
-r
flagę do jq.Tak, punktem końcowym jest
indexes
klucz danychindices
, dlatego też nie mogli się zdecydować :)Potrzebowałem tego, aby wyczyścić te wskaźniki śmieci utworzone przez wewnętrzny skan bezpieczeństwa (nessus).
PS. Gorąco polecam zapoznanie się z jq, jeśli zamierzasz wchodzić w interakcję z ES z wiersza poleceń.
źródło
Java API
źródło
Jeśli pracujesz w scali, sposobem na to i skorzystanie
Future
z tego jest utworzenie RequestExecutor, a następnie skorzystanie z IndicesStatsRequestBuilder i klienta administracyjnego w celu przesłania żądania.Egzekutor jest usuwany z tego postu na blogu, co jest zdecydowanie dobrą lekturą, jeśli próbujesz programowo wysyłać zapytania do ES, a nie przez zwijanie. Po jego utworzeniu możesz łatwo utworzyć listę wszystkich indeksów:
client
jest instancją klienta, która może być węzłem lub klientem transportu, w zależności od potrzeb. Będziesz także musiał mieć domyślnyExecutionContext
zakres dla tego żądania. Jeśli spróbujesz skompilować ten kod bez niego, otrzymasz od kompilatora scala ostrzeżenie, jak go uzyskać, jeśli jeszcze go nie zaimportowano.Potrzebowałem liczby dokumentów, ale jeśli naprawdę potrzebujesz tylko nazw indeksów, możesz wyciągnąć je z klawiszy mapy zamiast z
IndexStats
:To pytanie pojawia się, gdy szukasz sposobu, aby to zrobić, nawet jeśli próbujesz to zrobić programowo, więc mam nadzieję, że pomoże to każdemu, kto chce to zrobić w scala / java. W przeciwnym razie użytkownicy curl mogą zrobić to, co mówi najlepsza odpowiedź i użyć
źródło
możesz wypróbować to polecenie
curl -X GET http: // localhost: 9200 / _cat / indices? v
źródło
Miałem Kibana i ES zainstalowane na komputerze. Ale nie znałem szczegółów (przy której ścieżce lub porcie) był węzeł ES na tym komputerze.
Jak możesz to zrobić z Kibana (wersja 5.6)?
GET _cat/indices
Byłem zainteresowany znalezieniem wielkości konkretnego indeksu ES
źródło
Jeśli masz curl zainstalowany w swoim systemie, spróbuj tego prostego polecenia: curl -XGET xx.xx.xx.xx: 9200 / _cat / indices? V
Wyżej wymienione polecenie daje wynik w tym formacie: wynik, aby pobrać wszystkie indeksy
źródło