In dieser Blogserie gehen wir näher auf Elasticsearch ein und widmen uns dabei verschiedenen Fragestellungen:
Folgende Themen sind in der Serie behandelt oder geplant:
Im zweiten Teil dieser Blog-Serie wollen wir uns mit Kibana beschäftigen, der grafischen Oberfläche für Elasticsearch.
Hier verwenden wir Kibana Version 4.5.2. Kibana ermöglicht dem Benutzer die schnelle Suche und Analyse neuer Daten über eine GUI mit extrem wenig Zeitaufwand und Vorkenntnissen. Es lassen sich aber auch komplexe Dashboards mit verschiedensten Visualisierungen bauen.
Seit geraumer Zeit gibt es in Kibana ein praktisches und flexibles Plugin Ecosystem. Dieses hilft verschiedenste zusätzliche Visualisierungen mit einem Kommandozeilenaufruf nach zu installieren. Neben diesen Visualisierungs-Plugins gibt es noch App-Plugins wie:
In Zukunft, ab Kibana Version 5.0, wird es möglich sein, ganze Erweiterungspacks als Plugins zu installieren. Diese sollen dann verschiedene Funktionen zusammenfassen und bündeln. Beispielsweise wird X-Pack die Plugins Shield, Marvel und Watcher vereinen.
Neben dem Kibana-Plugins gibt es aber auch noch verschiedene Derivate oder Wettbewerbsprodukte, um Inhalte von Elasticsearch-Indexen zu visualisieren. Die wichtigsten zu erwähnenden Produkte sind Grafana und Kibi. Während Grafana auf die Visualisierung von Zeitserien und komplexen Metriken spezialisiert ist, kann man mithilfe von Kibi Business-Intelligence-Analysen durchführen und visualisieren.
Im Folgenden werden wir Kibana installieren, einrichten und erstmalig aufrufen.
Da bisher kein Index angelegt ist, können wir momentan auch keine Daten in Kibana anzeigen. Prinzipiell kann ein Index auf verschiedene Arten angelegt werden. Dafür müssen wir auf die REST-Schnittstelle von Elasticsearch zugreifen. Am einfachsten ist dies mit dem Commandline Tool „cURL", welches auch für Windows unter folgender Adresse verfügbar ist:
http://www.confusedbycode.com/curl/
Nach der Installation und einem Neustart kann „cURL“ nun in einem Kommandozeilen Fenster verwendet werden.
Ein leerer Index kann folgendermaßen angelegt werden:
curl -XPOST http://localhost:9200/projekte
(„projekte“ ist der Name des Index)
Löschen kann man einen Index mit diesem Aufruf:
curl -XDELETE http://localhost:9200/projekte
Alternativ, kann man den Index gemeinsam mit einem Mapping anlegen. Jedoch werden wir dieses komplexere Thema erst im nächsten Teil der Blogserie besprechen.
curl -H "Content-Type: application/json" -X POST http://localhost:9200/projekte/projekt/ -d "{\"branche\" : [ \"Sonstiges\" ],\"schlagworte\" : [ \"Mitgliederverwaltung\", \"Kontoführung\", \"Mahnwesen\", \"Organisationsstruktur\", \"FIBU-Schnittstelle\", \"Migration\", \"Struts\", \"iText\", \"BIRT\", \"AXIS\", \"tomcat\", \"Eclipse\", \"Hibernate\", \"Oracle 10g\", \"PostgreSQL\", \"Magic Draw\", \"UML\" ],\"kompetenzbereich\" : [ \"IT-Projekt\" ]}"
curl -H "Content-Type: application/json" -X POST http://localhost:9200/projekte/projekt/ -d "{\"branche\" : [ \"Logistik\" ],\"schlagworte\" : [ \"Java EE 7\", \"JPA\", \"JAX-RS\", \"Glassfish\", \"Vaadin 7\", \"JUnit\", \"GIT\", \"Eclipse\", \"Coach\", \"Architekturreview\", \"ATAM\", \"CDI\", \"Kepler\" ],\"kompetenzbereich\" : [ \"Technologieberatung\" ]}"
curl -H "Content-Type: application/json" -X POST http://localhost:9200/projekte/projekt/ -d "{\"branche\" : [ \"Automotive\" ],\"schlagworte\" : [ \"B2V\", \"Remote Services\", \"Sixt\", \"Java 5\", \"Java EE 5\", \"HTTP\", \"Web Service\", \"Oracle 10g\" ],\"kompetenzbereich\" : [ \"IT-Projekt\" ]}"
curl -H "Content-Type: application/json" -X POST http://localhost:9200/projekte/projekt/ -d "{\"branche\" : [ \"Industrie; Maschinenbau\" ],\"schlagworte\" : [ \"J2EE\", \"Liferay\", \"CAS\", \"JBoss\", \"tomcat\", \"MySQL\", \"Velocity\", \"Hibernate\", \"Ant\" ],\"kompetenzbereich\" : [ \"IT-Management\", \"IT-Projekt\" ]}"
Wenn ein cURL-Aufruf erfolgreich war, wird ein Eintrag folgender Art zurückgegeben:
{"_index":"projekte","_type":"projekt","_id":"AVXuZF6GHuMmDSP_puY_","
_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}
Als nächstes müssen wir nun den Index in Kibana einlesen und anlegen
Auf Basis der eingespielten Daten kann man nun mit Kibana arbeiten. Wir werden dies anhand von Beispielen erläutern. Weitere Details kann man dem Kibana User Guide entnehmen: https://www.elastic.co/guide/en/kibana/current/index.html
Als Teil dieses Blogeintrages werden wir eine kurze Einführung zu den drei verschiedenen Bereichen, Discover, Visualize und Dashboard in Kibana geben. Diese werden wir mit einfachen Beispielen illustrieren. Weitere Details und das Erstellen komplexerer Dashboards werden wir in einem späteren Teil der Blogserie besprechen.
Im Bereich Discover kann man frei nach Inhalten suchen oder Listen zusammenstellen und speichern. Hierzu kann man Begriffe im Suchfeld eingeben nach den gesucht bzw. gefiltert wird. Die relevanten Suchbegriffe werden Gelb hinterlegt; auch wird die Anzahl der Hits angezeigt.
Im Bereich Visualize kann man Daten in verschiedenen Formen visualisieren und diese sichten für eine spätere Verwendung z.B. in einem Dashboard speichern.
Dashboards ermöglichen das Zusammenstellen verschiedener Suchen und Visualisierungen in einer übersichtlichen Oberfläche. Diese kann wiederrum gespeichert werden.
Im nächsten Blogeintrag widmen wir uns dem Indizieren von Dokumenten, dem Mapping der Index-Daten, das wir hier schon mehrfach erwähnt hatten und dem Einspielen und Visualisieren von Geodaten.