Engineering

Tipps für die Migration zu Kibana Spaces

Migration zu Spaces

Seit Kibana 6.5 hilft Ihnen Spaces, Ihre Dashboards, Visualisierungen und anderen gespeicherten Objekte in Kategorien einzuordnen und so zu organisieren. Außerdem können Sie festlegen, welche Rolle auf welchen Space zugreifen darf. So können mehrere Benutzer ein und dieselbe Kibana-Instanz nutzen und jeder kann dabei eigene gespeicherte Objekte haben.

Beim Umstieg auf eine Kibana-Version, die Spaces unterstützt, werden alle bereits vorhandenen gespeicherten Objekte im Space „Default“ angezeigt. Sie können dann die Objekte zwischen den Spaces verschieben. Dazu gibt es verschiedene Möglichkeiten, die im Folgenden näher beschrieben werden.

Verschieben gespeicherter Objekte zwischen Spaces

Zum Verschieben eines gespeicherten Objekts zwischen zwei Spaces können Sie die Funktionen zum Exportieren und Importieren in Kibana verwenden. Dabei muss beachtet werden, dass beim Verschieben gespeicherter Objekte durch Exportieren und Importieren die dem Objekt zugehörigen gespeicherten Objekte nicht automatisch mit verschoben werden. Wie Sie Dashboards und die von ihnen abhängigen Elemente verschieben können, wird in „Verschieben von Dashboards zwischen zwei Spaces“ weiter unten näher beschrieben.

Wenn Sie beispielsweise ein Indexmuster aus einem Space in einen anderen verschieben möchten, gehen Sie zu „Management“ > „Saved Objects“ (Verwaltung > Gespeicherte Objekte) und wählen Sie das zu verschiebende gespeicherte Objekt aus. Klicken Sie dann auf „Export“ (Exportieren) und geben Sie an, wo die exportierte JSON-Datei gespeichert werden soll.

Export Saved ObjectI

Wählen Sie anschließend über das Menü zur Space-Auswahl einen anderen Space aus:

Change Space

Kehren Sie nach Änderung des aktuellen Space zu „Management“ > „Saved Objects“ zurück. Die in einem Space gespeicherten Objekte sind komplett unabhängig von denen, die in anderen Spaces gespeichert wurden. Daher ist das soeben exportierte Indexmuster nicht zu sehen. Klicken Sie zum Importieren des exportierten Indexmusters auf „Import“ (Importieren) und gehen Sie zum Speicherort der zuvor gespeicherten JSON-Datei.

Import Saved Object

Jetzt wird das gerade importierte Indexmuster angezeigt. Es gibt nun zwei verschiedene Indexmuster und beiden liegen dieselben Indizes in Elasticsearch zugrunde. Die gespeicherten Objekte in jedem der Spaces sind völlig unabhängig voneinander. Wenn Sie Änderungen an einem Indexmuster vornehmen, hat dies keinerlei Auswirkungen auf das Indexmuster im anderen Space. Sollten Sie das Indexmuster im ursprünglichen Space nicht mehr benötigen, können Sie es bedenkenlos löschen – im anderen Space, in den Sie das Indexmuster kopiert haben, bleibt es erhalten.

Konsolidieren mehrerer Mandanten zu Spaces

Wenn Sie aus Isolierungsgründen mehrere Mandanten von Kibana verwenden, können Sie sie mithilfe von Spaces und der Funktionen zum Exportieren und Importieren zu einem gemeinsamen Mandanten konsolidieren. Dazu müssen Sie alle Ihre gespeicherten Objekte eines Mandaten exportieren: Gehen Sie zu „Management“ > „Saved Objects“, wählen Sie mithilfe des Kontrollkästchens in der Überschrift alle Objekte aus und klicken Sie auf „Export“.

Export all Saved Objects

Sie werden dann gefragt, wo die JSON-Datei gespeichert werden soll.

Gehen Sie nach dem Exportieren der gespeicherten Objekte zur Zielinstanz von Kibana, erstellen Sie den Ziel-Space, sofern noch nicht vorhanden, und wählen Sie den Space aus. Gehen Sie zu „Management“ > „Saved Objects“, wählen Sie „Import“ und wählen Sie die JSON-Datei aus, die Sie zuvor gespeichert haben. Alle ausgewählten gespeicherten Objekte werden in den Space importiert.

Verschieben von Dashboards zwischen zwei Spaces

Das Verschieben per Export/Import funktioniert gut, wenn es um einzelne gespeicherte Objekte geht, aber für das Verschieben von Dashboards mitsamt den zugehörigen Visualisierungen, gespeicherten Suchen und Indexmustern ist es nicht ideal. Wenn Sie ein Dashboard in einen anderen Space verschieben möchten, geht das am einfachsten mit den Dashboard-Import/Export-APIs.

Exportieren des Dashboards

Bevor Sie ein Dashboard exportieren können, müssen Sie zunächst dessen ID ermitteln. Öffnen Sie dazu das zu exportierende Dashboard und sehen Sie sich die URL an. Die ID ist die lange ID zwischen /app/kibana#/dashboard/ und dem ?, die im folgenden URL-Beispiel fett hervorgehoben ist:

http://localhost:5601/s/marketing/app/kibana#/dashboard/<b>d203dd90-deac-11e8-869e-d73106bbd5ad</b>?_g=()

Anhand der URL des Dashboards können wir auch die Space-URL-ID des Dashboards ermitteln. Diese befindet sich am Anfang der URL zwischen /s/ und /app/kibana#dashboard. Wenn Ihre URL kein /s/ enthält, befinden Sie sich im Standard-Space („Default“). Allen URLs in Kibana, auch den API-URLs, ist zur Unterscheidung der Spaces ein Space-Präfix im Format /s/{spaceID} vorangestellt, es sei denn, es geht um den Space „Default“. Beim Standard-Space wird kein Präfix verwendet. Die Space-URL-ID ist in der folgenden URL fett hervorgehoben:

http://localhost:5601/s/<b>marketing</b>/app/kibana#/dashboard/d203dd90-deac-11e8-869e-d73106bbd5ad?_g=()

Nachdem Sie die ID des Dashboards ermittelt haben, können Sie nun eine GET-Anforderung für {spacePrefix}/api/kibana/dashboards/export?dashboard={dashboardID} ausführen und dabei einen CURL-Befehl wie den folgenden verwenden, der ein Dashboard mit der ID d203dd90-deac-11e8-869e-d73106bbd5ad aus dem Space marketing exportiert und das Dashboard dann mitsamt den abhängigen Elementen in einer Datei namens export.json speichert:

curl -u elastic:changeme http://localhost:5601/s/marketing/api/kibana/dashboards/export?dashboard=d203dd90-deac-11e8-869e-d73106bbd5ad > export.json

Wenn das Dashboard mit der ID d203dd90-deac-11e8-869e-d73106bbd5ad aus dem Standard-Space („Default“) exportiert und in einer Datei namens export.json gespeichert werden soll, ist der folgende CURL-Befehl zu verwenden:

curl -u elastic:changeme http://localhost:5601/api/kibana/dashboards/export?dashboard=d203dd90-deac-11e8-869e-d73106bbd5ad > export.json

Importieren des Dashboards

Der größte Teil der Arbeit ist damit erledigt. Jetzt muss das Dashboard noch in den neuen Space importiert werden. Dazu benötigen wir erneut eine Space-URL-ID, und zwar die des Ziel-Space. Anhand dieser Angabe können wir dann das Space-Präfix konstruieren, das in der URL erscheint. Wählen Sie über das Menü zur Space-Auswahl den Space aus, in den das Dashboard verschoben werden soll, und ermitteln Sie anhand der URL die ID, wie wir das oben für das Exportieren des Dashboards beschrieben haben.

Sie können jetzt eine POST-Anforderung für <div translate=no><{spacePrefix}/api/kibana/dashboards/import</div> mit der zuvor gespeicherten Datei export.json ausführen. Mit dem folgenden CURL-Befehl wird das Dashboard in den Space „Sales“ importiert:

curl -H “Content-Type: application/json” -H “kbn-xsrf: true” -u elastic:changeme http://localhost:5601/s/sales/api/kibana/dashboards/import --data-binary @export.json

Zum Importieren des Dashboards in den Standard-Space („Default“) ist der folgende CURL-Befehl zu verwenden:

curl -H “Content-Type: application/json” -H “kbn-xsrf: true” -u elastic:changeme http://localhost:5601/api/kibana/dashboards/import --data-binary @export.json

Wenn Sie nach dem Importieren das Dashboard im ursprünglichen Space nicht mehr benötigen, können Sie es bedenkenlos löschen.

Jetzt ausprobieren

Kibana Spaces ist ein nützliches Tool zum Aufräumen und Gruppieren Ihrer Dashboards und Visualisierungen. Ob Sie mehr Benutzern Zugang zum selben Kibana ermöglichen oder einen Workflow implementieren möchten – probieren Sie es aus und erzählen Sie uns, wie Sie Spaces für Ihre Zwecke nutzen.