Me gustaría enumerar todos los índices presentes en un servidor ElasticSearch. Intenté esto:
curl -XGET localhost:9200/
pero solo me da esto:
{
"ok" : true,
"status" : 200,
"name" : "El Aguila",
"version" : {
"number" : "0.19.3",
"snapshot_build" : false
},
"tagline" : "You Know, for Search"
}
Quiero una lista de todos los índices ...
curl
elasticsearch
Eva
fuente
fuente
curl http://localhost:9200/_stats/indexes\?pretty\=1
curl -s localhost:9200/_aliases?pretty=true | awk -F\" '!/aliases/ && $2 != "" {print $2}'
/stats
punto final o al punto final de salud con param_cluster/health?level=indices
Tratar
Te dará el siguiente resultado autoexplicativo de manera tabular
fuente
Puede consultar
localhost:9200/_status
y eso le dará una lista de índices e información sobre cada uno. La respuesta se verá así:fuente
GET /_stats/indexes
/_stats/indices
ya que es el plural correcto y también la clave utilizada en/_status
y en/_stats
._nodes/stats
y_nodes/status
@KimberlyWEl comando _stats proporciona formas de personalizar los resultados al especificar las métricas deseadas. Para obtener los índices, la consulta es la siguiente:
El formato general de la
_stats
consulta es:Donde están las métricas:
Como ejercicio para mí mismo, he escrito un pequeño complemento de Elasticsearch que proporciona la funcionalidad para enumerar los índices de Elasticsearch sin ninguna otra información. Puede encontrarlo en la siguiente url:
http://blog.iterativ.ch/2014/04/11/listindices-writing-your-first-elasticsearch-java-plugin/
https://github.com/iterativ/elasticsearch-listindices
fuente
"type": "illegal_argument_exception", "reason": "request [/_stats/indices] contains unrecognized metric: [indices]"
Lo uso para obtener todos los índices:
Con esta lista puedes trabajar en ...
Ejemplo
Para obtener la tercera columna anterior (nombres de los índices):
NOTA: También puede usar en
awk '{print $3}'
lugar decut -d\ -f3
.Encabezados de columna
También puede
?v
agregarle un sufijo a la consulta para agregar un encabezado de columna. Hacerlo interrumpirá elcut...
método, por lo que recomendaría usar laawk..
selección en este momento.fuente
curl -s 'http://localhost:9200/_cat/indices?h=index'
imprimirá solo el nombre del índice. No es necesario usar trucos de shell para filtrar la columna.tr -s ' '
antescut
para condensar series de espacios) o no obtendrá el nombre del índice si el estado esred
porque se rellenará con espacios ycut
trata cada espacio individual como delimitador un nuevo campo incluso si ese "campo" termina vacíoTambién recomendaría hacer / _cat / indices, que proporciona una buena lista legible por humanos de sus índices.
fuente
La forma más sencilla de obtener una lista de solo índices es usar la respuesta anterior, con el parámetro 'h = index':
fuente
curl -XGET 'http://localhost:9200/_cluster/health?level=indices'
Esto saldrá como a continuación
fuente
Te daré la consulta que puedes ejecutar en kibana.
y la versión CURL será
fuente
Para más información (sitio oficial de Elasticsearch)
fuente
Para enumerar los índices que puede hacer: curl 'localhost: 9200 / _cat / indices? V' Elasticsearch Documentation
fuente
Acceso a la búsqueda elástica segura a través de Curl (Actualización 2020)
Si
Elastic Search
está protegido, puede usar este comando para enumerar índicesfuente
_stats/indices
da el resultado conindices
.fuente
La gente aquí ha respondido cómo hacerlo en rizo y sentido, algunas personas podrían necesitar hacer esto en Java.
Aquí va
fuente
Pruebe esta API de gato: le dará la lista de todos los índices con detalles de salud y otros.
CURL -XGET http: // localhost: 9200 / _cat / indices
fuente
Para Elasticsearch 6.X, encontré lo siguiente más útil. Cada uno proporciona datos diferentes en la respuesta.
fuente
También puede obtener un índice específico usando
Para más información
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-get-index.html
fuente
Aquí hay otra forma de ver los índices en la base de datos:
fuente
Una de la mejor manera de enumerar índices + para mostrar su estado junto con list: es simplemente ejecutando la consulta a continuación.
Nota: preferiblemente use Sense para obtener la salida adecuada.
La salida de muestra es la siguiente. La principal ventaja es que básicamente muestra el nombre del índice y los fragmentos en los que guardó, el tamaño del índice y los fragmentos de IP, etc.
fuente
Utilizo el
_stats/indexes
punto final para obtener un bloc de datos json y luego filtro con jq .Si no desea cotizaciones, agregue una
-r
bandera a jq.Sí, el punto final es
indexes
y la clave de datos esindices
, por lo que tampoco pudieron decidirse :)Necesitaba esto para limpiar estos índices de basura creados por un análisis de seguridad interno (nessus).
PD. Recomiendo familiarizarse con jq si va a interactuar con ES desde la línea de comandos.
fuente
API de Java
fuente
Si está trabajando en scala, una forma de hacer esto y usarlo
Future
es crear un RequestExecutor, luego use IndicesStatsRequestBuilder y el cliente administrativo para enviar su solicitud.El ejecutor se levanta de esta publicación de blog, que definitivamente es una buena lectura si está intentando consultar ES mediante programación y no mediante curl. Una vez que tenga esto, puede crear una lista de todos los índices con bastante facilidad de esta manera:
client
es una instancia de Cliente que puede ser un nodo o un cliente de transporte, según sus necesidades. También necesitarás tener un implícitoExecutionContext
alcance para esta solicitud. Si intenta compilar este código sin él, recibirá una advertencia del compilador scala sobre cómo obtenerlo si aún no tiene uno importado.Necesitaba el recuento de documentos, pero si realmente solo necesita los nombres de los índices, puede extraerlos de las teclas del mapa en lugar de
IndexStats
:Esta pregunta aparece cuando está buscando cómo hacer esto, incluso si está tratando de hacer esto mediante programación, por lo que espero que esto ayude a cualquiera que busque hacer esto en scala / java. De lo contrario, los usuarios de curl pueden hacer lo que dice la respuesta principal y usar
fuente
puedes probar este comando
curl -X GET http: // localhost: 9200 / _cat / indices? v
fuente
Tenía Kibana y ES instalados en una máquina. Pero no sabía los detalles (en qué ruta o puerto) era el nodo ES en esa máquina.
Entonces, ¿cómo puedes hacerlo desde Kibana (versión 5.6)?
GET _cat/indices
Estaba interesado en encontrar el tamaño de un índice ES particular
fuente
Si tiene curl instalado en su sistema, intente con este comando simple: curl -XGET xx.xx.xx.xx: 9200 / _cat / indices? V
El comando mencionado anteriormente le da el resultado en este formato: resultado para buscar todos los índices
fuente