Ingeniería

Cómo migrar a Kibana Spaces

Migración a Spaces

La versión 6.5 de Kibana y posteriores te permite usar Spaces para organizar los dashboards, las visualizaciones y otros objetos guardados en categorías. Además, al usar características de seguridad, puedes controlar qué roles pueden acceder a cada espacio, lo que permite que más usuarios usen la misma instancia de Kibana con su propio subconjunto de objetos guardados.

Al actualizarte a una versión de Kibana compatible con Spaces, todos los objetos actualmente guardados aparecerán dentro del espacio "Predeterminado". Después puedes mover los objetos de un espacio a otro a través de uno de los métodos que se describen a continuación.

Cómo mover un objeto guardado de un espacio a otro

Para mover un objeto guardado de un espacio a otro, puedes usar la UI Importar/Exportar de Kibana. Debe tenerse en cuenta que al mover un objeto guardado mediante la UI Importar/Exportar, los objetos guardados relacionados no se mueven automáticamente. Si deseas mover un dashboard y todas las dependencias de un espacio a otro, consulta "Cómo mover dashboards de un espacio a otro".

Por ejemplo, para mover un patrón de índice (index pattern) de un espacio a otro, dirígete a Administración > Objetos guardados y después selecciona el objeto guardado que deseas mover. Cuando hagas clic en Exportar, podrás elegir dónde deseas guardar el archivo JSON exportado.

Export Saved ObjectI

Después usa el selector de espacio para elegir un espacio diferente:

Change Space

Una vez que hayas cambiado el espacio actual, vuelve a Administración > Objetos guardados. Los objetos guardados de cada espacio están completamente separados, por lo que no podrás ver el patrón de índice que acabas de exportar. Para importar el patrón de índice que acabas de exportar, haz clic en Importar y después navega hasta donde guardaste el archivo JSON antes.

Import Saved Object

Ahora verás aparecer el patrón de índice que acabas de exportar. Si bien contamos con dos patrones de índice diferentes, serán para los mismos índices subyacentes de Elasticsearch. Los objetos guardados de cada espacio están completamente separados, por lo que ningún cambio que hagas en cualquiera de los patrones de índice afectará al patrón de índice del otro espacio. Si ya no deseas que el patrón de índice esté en el espacio original, ahora puedes eliminarlo y seguirá estando en el espacio donde lo copiaste.

Cómo consolidar múltiples inquilinos en Spaces

Si estás usando varios inquilinos (tenants) de Kibana con su propio índice de Elasticsearch para aislar a tus usuarios de Kibana, puedes usar la UI Exportar/Importar para consolidar a un solo inquilino mediante Spaces. Para exportar todos los objetos guardados de un inquilino, dirígete a Administración > Objetos guardados y haz clic primero en la casilla de verificación del encabezado para seleccionar todos los objetos y después en Exportar.

Export all Saved Objects

Después se te preguntará dónde quieres guardar el archivo JSON.

Una vez que hayas exportado los objetos guardados, dirígete a la instancia de destino de Kibana, crea el espacio de destino si no existe y selecciona el espacio. Vuelve a Administración > Objetos guardados, selecciona Importar y después busca el archivo JSON que acabas de guardar. Esto importará todos los objetos guardados seleccionados a un espacio.

Cómo mover dashboards de un espacio a otro

El uso de la UI Importar/Exportar de Kibana funciona bien si mueves objetos guardados individuales, pero deja mucho que desear cuando intentas mover un dashboard y las visualizaciones, las búsquedas guardadas y los patrones de índice relacionados en su totalidad. Si deseas mover un dashboard a otro espacio, la manera más fácil de hacerlo es mediante las API de Importar/Exportar de dashboards.

Cómo exportar el dashboard

Para exportar un dashboard, primero debemos determinar la ID de ese dashboard. Abre el dashboard que deseas exportar y, al inspeccionar la URL, el identificador largo entre "/app/kibana#/dashboard/" y "?" es la ID. La ID del dashboard se destacó en la siguiente URL:

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

De manera similar, también usaremos la URL del dashboard para determinar el identificador de la URL del espacio del dashboard. El identificador de la URL del espacio se incluye al comienzo de la URL, entre "/s/" y "/app/kibana#dashboard". Si no puedes ver una "/s/" en la URL, significa que estás en el espacio Predeterminado. Todas las URL de Kibana, incluidas las URL de API, usan un prefijo de espacio en formato "/s/{spaceID}" para marcar una diferencia entre los espacios, salvo en el caso del espacio Predeterminado, donde no se usa ningún prefijo. El identificador de la URL del espacio se destaca en la siguiente URL:

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

Una vez que tengamos la ID de los dashboards, podemos ejecutar una solicitud "GET" frente a "{spacePrefix}/api/kibana/dashboards/export?dashboard={dashboardID}" a través del uso de un comando CURL similar al siguiente, que exportará un dashboard con ID "d203dd90-deac-11e8-869e-d73106bbd5ad" del espacio "marketing" y lo guardará, junto con todas sus dependencias, en un archivo export.json:

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

De manera similar, el siguiente comando CURL exportará un dashboard con ID "d203dd90-deac-11e8-869e-d73106bbd5ad" desde el espacio Predeterminado y lo guardará en un archivo export.json.

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

Cómo importar el dashboard

Ahora que hemos terminado con la parte más difícil, podemos importar el dashboard a su nuevo espacio. Para ello, una vez más tendremos que determinar el identificador del espacio de destino de la URL para construir el prefijo de espacio que aparece en la URL. Con el selector de espacio, selecciona el espacio de destino al que deseas mover el dashboard e inspecciona la URL de manera similar a como determinamos el espacio del dashboard que queremos exportar.

Ahora podemos ejecutar una solicitud "POST" al <{spacePrefix}/api/kibana/dashboards/import</div> con el archivo export.json que guardamos antes. El siguiente comando CURL importará el dashboard al espacio de ventas:

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

Del mismo modo, el siguiente comando CURL importará el dashboard al espacio predeterminado:

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

Una vez que hayas importado el dashboard, si ya no deseas que exista en su espacio original, puedes eliminarlo.

Pruébalo tú mismo

Kibana Spaces puede ser muy útil para despejar y agrupar los dashboards y visualizaciones. Ya sea para permitir a más usuarios usar el mismo Kibana o para implementar un flujo de trabajo, pruébalo tú mismo y cuéntanos cómo sacas provecho de Spaces.