elasticsearch - tools - ¿Cómo hacer un filtrado de tipo "donde no existe" en Kibana/ELK?
kibana tools (4)
Esto es fácil en la barra de búsqueda Kibana 5. Solo agrega un filtro
!(_exists_:"your_variable")
puede alternar el filtro o escribir la consulta inversa como
_exists_:"your_variable"
En Kibana 4 y Kibana 3 puede usar esta consulta que ahora está en desuso
_missing_:"your_variable"
Estoy usando ELK para crear cuadros de mando desde mis archivos de registro. Tengo un archivo de registro con entradas que contienen un valor de identificación y un valor de "éxito" / "error", que muestra si una operación con un ID dado tuvo éxito o no. Cada operación / ID puede fallar un número ilimitado de veces y tener éxito a lo sumo una vez. En mi tablero de Kibana quiero mostrar el recuento de las entradas de registro con un valor de "falla" para cada id de operación, pero quiero filtrar los casos donde exista una entrada de registro de "éxito" para el id. es decir, solo me interesan las operaciones que nunca tuvieron éxito. ¿Algún consejo para los trucos que lograrían esto?
Pude lograr esto con un simple truco usando el nuevo Kibana 4 (actualmente en beta) que tiene la opción de sumar en campos numéricos. Simplemente creé un nuevo campo numérico para éxito / falla, los valores asignados 1 (falla) o -1000000 (éxito) para las entradas en mi filtro Logstash, y se suman a los valores para cada identificación. No cumple técnicamente con mi requisito original de "número ilimitado de veces", pero en la práctica un número negativo muy grande fue suficiente para producir siempre una suma negativa para los casos que tuvieron éxito.
Una opción sería crear una consulta propia para este criterio en Kibana. Entonces solo tiene su panel que hace el conteo solo para usar esta consulta.
value:failure
Más información aquí: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax
! (_exists_:NAME)
! (_exists_:NAME)
no funciona para mí. Yo uso la sugerencia de:
https://discuss.elastic.co/t/kibana-5-0-0--missing--is-not-working-anymore/64336
NOT _exists_:NAME
ACTUALIZAR El problema que enfrento es que la sintaxis ES prohíbe los espacios después de los operadores de negación. Entonces los siguientes son los mismos:
NOT _exists_:FIELD
!_exists_:FIELD
-_exists_:FIELD
Consulte el tutorial: https://www.timroes.de/2016/05/29/elasticsearch-kibana-queries-in-depth-tutorial/