J'utilise ELK pour créer des tableaux de bord à partir de mes fichiers journaux. J'ai un fichier journal avec des entrées contenant une valeur id et une valeur "succès"/"échec", indiquant si une opération avec un identifiant donné a réussi ou échoué. Chaque opération/ID peut échouer un nombre illimité de fois et réussir au plus une fois. Dans mon tableau de bord Kibana, je souhaite afficher le nombre d'entrées de journal avec une valeur "échec" pour chaque ID d'opération, mais je souhaite filtrer les cas où une entrée de journal "succès" existe pour l'identifiant. c'est-à-dire que je ne m'intéresse qu'aux opérations qui n'ont jamais abouti. Des astuces pour y parvenir?
C'est facile dans la barre de recherche de Kibana 5. Il suffit d'ajouter un filtre
!(_exists_:"your_variable")
vous pouvez basculer le filtre ou écrire la requête inverse en tant que
_exists_:"your_variable"
Dans Kibana 4 et Kibana 3, vous pouvez utiliser cette requête qui est maintenant obsolète
_missing_:"your_variable"
! (_exists_:NAME)
ne fonctionne pas pour moi. J'utilise la suggestion de:
https://discuss.elastic.co/t/kibana-5-0-0--missing--is-not-working-anymore/64336
NOT _exists_:NAME
UPDATE Le problème que j'ai rencontré est que la syntaxe ES interdit les espaces après les opérateurs de négation. Les suivants sont les mêmes:
NOT _exists_:FIELD
!_exists_:FIELD
-_exists_:FIELD
Voir le tutoriel: https://www.timroes.de/2016/05/29/elasticsearch-kibana-queries-in-depth-tutorial/