Engenharia

Migração para o Kibana Spaces

Como migrar para o Spaces

A partir do Kibana 6.5, você pode usar o Spaces para organizar seus painéis, visualizações e outros objetos salvos em categorias. Além disso, ao usar os recursos de segurança, você pode controlar quais funções conseguem acessar quais espaços, o que permite que mais usuários usem a mesma instância do Kibana com seus próprios subconjuntos de objetos salvos.

Quando você fizer o upgrade para uma versão do Kibana compatível com o Spaces, todos os seus objetos salvos aparecerão no espaço Default (Padrão). E aí será possível mover os objetos entre os espaços usando um dos métodos mostrados abaixo.

Como mover um objeto salvo entre espaços

Para mover um objeto salvo de um espaço pro outro, você pode usar a opção Import/Export do Kibana. Mas observe que, ao mover um objeto salvo dessa forma, os objetos relacionados não serão automaticamente movidos. Se você desejar mover um painel e tudo o que é relacionado a ele de um espaço para outro, consulte “Como mover painéis de um espaço para outro”.

Por exemplo, para mover um padrão de índice de um espaço para outro, acesse Management > Saved Objects e depois selecione o objeto salvo que gostaria de mover. Ao clicar em Export, você poderá escolher onde salvar o JSON exportado.

Export Saved ObjectI

Depois, basta escolher um espaço diferente.

Change Space

Depois que tiver mudado o espaço atual, volte para Management > Saved Objects. Os objetos salvos de cada espaço são completamente separados, por isso você não verá o padrão de índice que acabou de exportar. Para importar o padrão de índice que você acabou de exportar, clique em Import e depois procure o local onde salvou o JSON.

Import Saved Object

Agora, você verá o padrão do índice que você acabou de importar. Embora tenhamos dois padrões diferentes, eles serão para os mesmos índices na Elasticsearch. Os objetos salvos de cada espaço são separados, por isso as alterações que você fizer a qualquer padrão de índice não afetarão o padrão de índice de outro espaço. Se você não quiser mais que o padrão de índice esteja no espaço original, fique à vontade para excluí-lo, pois ele continuará no espaço para onde foi copiado.

Consolidando multi-tenants no Spaces

Se estiver usando diversos tenants do Kibana, cada um com seu índice da Elasticsearch, para manter seus usuários do Kibana isolados, é possível usar a opção Export/Import para consolidar tudo em um tenant único usando o Spaces. Para exportar todos os seus objetos salvos de um tenant, acesse Management > Saved Objects e clique na caixa do cabeçalho que seleciona todos os objetos e depois em Export.

Export all Saved Objects

Depois, basta informar onde quer salvar o JSON.

Depois que exportar os objetos salvos, acesse a instância de destino do Kibana, crie o espaço de destino se ele ainda não existir e selecione-o. Acesse Management > Saved Objects e escolha a opção Import. Agora, localize o arquivo JSON que você acabou de salvar. Isso importará todos os objetos salvos selecionados para um espaço.

Como mover painéis de um espaço para o outro

A ferramenta Import/Export do Kibana funciona muito bem para mover objetos salvos individualmente, mas deixa um pouco a desejar se você precisar mover um painel e todas as suas visualizações relacionadas, buscas salvas e padrões de índice. Para mover um painel para um espaço diferente, é mais fácil usar as APIs Dashboard Import/Export.

Como exportar um painel

Para exportar um painel, primeiro precisamos determinar o ID desse painel. Abra o painel que deseja exportar e observe o url: o identificador longo entre /app/kibana#/dashboard/ e o ? é o ID. Veja o ID do painel realçado no url abaixo:

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

Também vamos de usar o url do painel para determinar o identificador url do espaço do painel. O identificador url do espaço está incluído no começo do url, entre /s/ e /app/kibana#dashboard. Se você não conseguir ver um /s/ no url, é porque está no espaço Default. Todos os urls no Kibana, incluindo os urls de API, têm um prefixo do espaço no formato /s/{IDdoespaço} para diferenciar de qual espaço se trata, exceto para o espaço Default, que não tem nenhum prefixo. Veja o identificador do url do espaço realçado no url abaixo:

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

Depois que obtivermos o ID do painel, podemos executar uma solicitação GET contra {prefixodoespaço}/api/kibana/dashboards/export?dashboard={IDdopainel} com um comando CURL similar ao seguinte, que exportará um painel com ID d203dd90-deac-11e8-869e-d73106bbd5ad do espaço marketing e o salvará junto com todo o material relacionado em um arquivo export.json:

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

Da mesma forma, o comando CURL a seguir exportará um painel com ID d203dd90-deac-11e8-869e-d73106bbd5ad do espaço Default e o salvará em um arquivo export.json.

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

Como importar um painel

Agora que a parte mais difícil está feita, podemos importar o painel para um novo espaço. Para fazer isso, precisaremos novamente determinar o identificador do url do espaço que queremos para construir o prefixo do espaço que aparece no url. Use o seletor de espaços para escolher para onde quer mover o painel e analise o url da mesma forma que fizemos para determinar o espaço do painel que queremos exportar.

Agora, podemos executar uma solicitação ‘POST’ para <{spacePrefix}/api/kibana/dashboards/import com o export.json que já salvamos. O seguinte comando CURL importará o painel para o espaço de vendas:

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

Da mesma forma, o comando CURL abaixo importará o painel para o espaço Default:

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

Depois da importação, se você não quiser mais que o painel exista no espaço original, basta excluí-lo de lá.

Tente você mesmo

O Kibana Spaces é muito útil para organizar a agrupar seus painéis e visualizações. Seja permitindo diversos usuários no mesmo Kibana ou implementando um fluxo de trabalho, experimente você mesmo e conte para nós como está tirando proveito do Spaces.