elasticsearch / kibana 4: champ existe, mais n'est pas égale à une valeur

elasticsearch version 1.4.5

kibana 4.1.1

logstash 1.5.2-1

Comment structurer une recherche dans la découverte de l'onglet de kibana 4 qui ne retourne que des résultats si un champ existe, mais n'est pas égale à une valeur spécifique?

J'ai quelques log d'apache données dans logstash et je veux retourner toutes les entrées qui ont status_code défini mais pas égal à 200. Donc, si les valeurs possibles sont {indéfini, 200, 403, 404, 500, etc} je voudrais voir toutes les variantes de 4xx et 5xx erreurs mais pas les messages où le champ n'est pas défini et non pas où il est fixé à 200.

J'ai essayé ce qui suit:

+status_code: (*) -status_code: (200)

((status_code: (*) AND NOT status_code: (200))

Je vois aussi des références à d'elasticsearch curl requêtes mais je ne suis pas sûr de la façon de les transformer en quelque chose que je peux utiliser dans la kibana barre de recherche. Voici un exemple:

{
  "query": {
    "constant_score": {
      "filter": {
        "bool": {
          "must": {
            "exists": {
              "field": "status_code"
            }
          },
          "must_not": {
            "term": {
              "status_code": '200'
            }
          }
        }
      }
    }
  }
}

Merci!

InformationsquelleAutor Peter M | 2015-09-09