Verwendung von Kibana zur Ausführung von Abfragen in ElasticSearch mit Lucene und Kibana Query Language

Verwendung von Kibana zur Ausführung von Abfragen in ElasticSearch mit Lucene und Kibana Query Language

  • ITOps & DevOps
6 Minuten Lesezeit Aktualisiert Jul 18, 2019

Auf einen Blick: Die Nutzung von Kibana ermöglicht es Nutzern, Abfragen in ElasticSearch mit Lucene und Kibana Query Language (KQL) auszuführen. Der Leitfaden erklärt, wie man JSON-Abfragen eingibt, und hebt Unterschiede zwischen der KQL- und Lucene-Syntax hervor.

  • JSON DSL-Abfragen können in Kibana verwendet werden.
  • Kibana unterstützt sowohl KQL als auch Lucene, mit Unterschieden in der Schlüsselsyntax.

Wir haben ausführlich besprochen, wie man ElasticSearch mit CURL abfragt. Jetzt zeigen wir, wie das mit Kibana geht.

Sie können diesem Blogbeitrag folgen, um Ihren ES-Server mit einigen Daten zu füllen.

JSON-Abfragen (auch JSON DSL genannt) sind das, was wir mit Curl verwenden. Aber du kannst diese auch mit Kibana verwenden. Es funktioniert nicht mit Aggregations, verschachtelten und anderen Abfragen.

Bei der Verwendung von JSON besteht der Unterschied darin, dass man nur das Abfrageobjekt übergibt. Also für diese Curl-Abfrage:

    {"query":{"match":{"geoip.country_name":"Luxembourg"}}}

Man würde nur diesen Teil in Kibana einfügen.

    {"match":{"geoip.country_name":"Luxembourg"}}

Eingabe von Anfragen in Kibana

Im Discovery-Tab in Kibana fügen Sie den oben genannten Text ein, wobei Sie zunächst die Abfragesprache von KQL auf Lucene ändern und darauf achten, das logstash*-Indexmuster auszuwählen. Wir besprechen unten die Kibana Query Language (KBL).

Wenn du vergisst, die Abfragesprache von KQL auf Lucene zu ändern, erhältst du den Fehler:

    Discover: input.charAt is not a function. (In 'input.charAt(peg$currPos)', 'input.charAt' is undefined)

Der einfachste Weg, die JSON-DSL-Abfrage einzugeben, ist die Verwendung des Abfrageeditors, da er das Abfrageobjekt für Sie erstellt:

Speichern Sie die Abfrage und geben Sie ihr einen Namen:

Kibana Query Language (KBL) versus Lucene

Du kannst KBL oder Lucene in Kibana verwenden. Sie sind im Grunde gleich, nur dass KBL etwas vereinfacht und Scripting unterstützt.

Hier sind einige gängige Abfragen und wie Sie sie in jeder Abfragesprache ausführen.

KBL Lucene Erklärung
Anfrage:"/wordpress/" Anfrage:"/wordpress/" Der Doppelpunkt (:) bedeutet gleich . Anführungszeichen bedeuten eine Sammlung von Wörtern, also eine Phrase.
Anfrage:/wordpress/ Anfrage:/wordpress/ Du brauchst keine Anführungszeichen für ein Wort.
Anfrage:/wordpress/ Anfrage:/wordpress/ Du brauchst keine Anführungszeichen für ein Wort.
Anfrage:/wordpress/ und Antwort:404 Anfrage:/WordPress/ und Antwort:200 für KBL muss man explizit den booleschen Operator angeben. Für Lucene wird der Operator nicht als Operator, sondern als Textstring erkannt, es sei denn, man verwendet "write it" in Großbuchstaben.
wordpress wordpress Treffer basieren auf jedem Text (in diesem Beispiel WordPress ) im Dokument und nicht auf ein bestimmtes Feld.
200 oder 404 200 404 Das Hinzufügen des Wortes oder zu Lucene würde auch Text mit der Zeichenkette "or" enthalten. Also lass es weg oder benutze großes OR.
200 und 404 200 UND 404 Verwenden Sie Großbuchstaben mit Lucene für logische Operatoren.
geoip.country_name: "Luxemburg" {"match":{"geoip.country_name": "Luxemburg"}} Lucene unterstützt JSON DSL-Abfragesprache, wie oben dargestellt
Antwort:>=200 und Antwort:< =404 Antwort:[200 BIS 404] Bereichsanfrage
Kilobytes > 1 Nicht unterstützt Geskriptetes Feld, wobei Kilobytes ist: wenn (doc['bytes'].size()==0) { return 0; } return doc['bytes'].value / 1024;

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus ITOps & DevOps

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.