Die Daten des Logging-Frameworks werden über eine (lokale) Instanz per zentraler Logstash-Instanz in einer ElasticSearch-Datenbank abgelegt und indiziert. Dies ermöglich schnelle Antwort- und Zugriffszeiten. Hier wird für Auswertungsapplikation ein grober Überblick über die Such-Funktionalität gegeben. Für eine ausführliche Dokumentation wird auf die offizielle API-Dokumentation von ElasticSearch verwiesen.
Suche
Über die Suche können Dokumente / Einträge aus ElasticSearch abgerufen werden. Dabei werden alle Treffer zurückgeliefert, die den übergebenen Suchkriterien entsprechen. Die Rückgabe erfolgt in JSON-Form (Auszug):
Dabei beinhaltet das Dokument neben Standard-Felder von ElasticSearch eben genau jene Felder, die im Datenmodell des Logging-Frameworks definiert wurden. Bei Suchanfragen sollte daher zielgerichtet auf diese Felder zurückgegriffen werden.
Beispiel-Aufruf (hier ohne Host):
GET /usage-2021.02.07/_search
Request-URL-Aufbau
GET /<target>/_search
GET /_search
POST /<target>/_search
POST /_search
Such-Parameter können entweder im Query-Parameter _q oder im request-Body übergeben werden. Wenn beide Varianten im gleichen Request verwendet werden, wird nur der _q-Parameter verwendet.
Query-Parameter (Auszug)
Parameter | Funktion | |
---|---|---|
_source | Liste mit Feldern, die im Ergebnis zurückgegeben werden sollen. Standardwert: true (alle Felder werden zurückgegeben) | |
q | Such-String in Lucene-Syntax | optional |
size | Maximale Anzahl an zurückzugebenden Ergebnissen | optional |
sort | Werte-Paare mit Feld und Reihenfolge, <feld>:<asc/desc> | optional |
Beispiel-Aufrufe:
Aufruf | Ergebnis |
---|---|
http://localhost:9200/_search?q=SOURCE:USER | Liefert alle Einträge, die im Feld "SOURCE" den Wert "USER" beinhalten. |
http://localhost:9200/usage-2021.02.06/_search?q=TYPE:USER_ACTIVITY | Liefert alle Einträge des Index "usage-2021.02.06", die im Feld TYPE den Wert USER_ACTIVITY beinhalten. |
http://localhost:9200/usage-2021.02.06/_search?q=TYPE:USER_SESSIONEND&size=1&sort=@timestamp:desc | Liefert den zeitlich letzten Eintrag aus dem Index "usage-2021.02.06", bei welchem das Feld "TYPE" den Wert "USER_SESSIONEND" hat. |