Como Criar Índices Elasticsearch

How Create Elasticsearch Indices



Elasticsearch é uma parte da pilha ELK popular usada para análise e pesquisa de log. Os aplicativos e sistemas estão constantemente registrando dados que podem ser muito úteis para solucionar problemas e rastrear problemas. Usando a pilha ELK, você tem as melhores ferramentas para realizar essas tarefas com rapidez e facilidade.

Neste tutorial rápido, veremos Elasticsearch, especificamente como criar índices no mecanismo Elasticsearch. Embora você não precise de nenhum conhecimento abrangente sobre a pilha ELK para seguir este tutorial, ter um conhecimento básico dos seguintes tópicos pode ser vantajoso:







  • Usando o terminal, especificamente, cURL
  • Conhecimento básico de APIs e JSON
  • Fazendo solicitação HTTP

NOTA: Este tutorial também assume que você possui o Elasticsearch instalado e em execução em seu sistema.



O que são índices Elasticsearch?

Sem simplificar ou complicar demais as coisas, um índice Elasticsearch é uma coleção de documentos JSON relacionados.



Conforme mencionado em um post anterior, os índices do Elasticsearch são objetos JSON - considerados a unidade básica de armazenamento no Elasticsearch. Esses documentos JSON relacionados são armazenados em uma única unidade que constitui um índice. Pense nos documentos do Elasticsearch como tabelas em um banco de dados relacional.





Vamos relacionar um índice Elasticsearch como um banco de dados no mundo SQL.

  • MySQL => Bancos de dados => Tabelas => Colunas / Linhas
  • Elasticsearch => Índices => Tipos => Documentos JSON com Propriedades

Como Criar um Índice Elasticsearch

Elasticsearch usa uma API REST poderosa e intuitiva para expor seus serviços. Esta funcionalidade permite que você use solicitações HTTP para executar operações no cluster Elasticsearch. Portanto, usaremos a API de criação de índice para criar um novo índice.



Para este guia, usaremos cURL para enviar as solicitações e preservar a integridade e usabilidade para todos os usuários. No entanto, se você encontrar erros com cURL, considere o uso do console Kibana.

A sintaxe para criar um novo índice no cluster Elasticsearch é:

POR /

Para criar um índice, tudo o que você precisa fazer é passar o nome do índice sem outros parâmetros, o que cria um índice usando as configurações padrão.

Você também pode especificar vários recursos do índice, como no corpo do índice:

  • As configurações para o índice
  • Aliases de índice
  • Mapeamentos para campos de índice

O nome do índice é um parâmetro obrigatório; caso contrário, você obterá um erro para o URIL (/)

curl -X PUT localhost: 9200
{'erro': 'Método HTTP incorreto para uri [/] e método [PUT], permitido: [DELETE, HEAD, GET]', 'status': 405}

Para criar um novo índice com o nome single_index, passamos a solicitação:

PUT / single_index

Para cURL, use o comando:

curl -X PUT 'localhost: 9200 / single_index? pretty'

Este comando deve resultar em HTTP Status 200 OK e uma mensagem com reconhecido: verdadeiro como:

{
reconhecido: verdadeiro,
'shards_acknowledged': true,
'index': 'single_index'
}

A solicitação acima cria um índice single_index com configurações padrão, pois não especificamos nenhuma configuração.

Regras de nomenclatura de índice

Ao criar nomes para índices Elasticsearch, você deve aderir aos seguintes padrões de nomenclatura:

  1. O nome do índice deve estar apenas em letras minúsculas.
  2. Os nomes dos índices não podem começar com um traço (-), um sublinhado (_) ou um sinal de adição (+)
  3. Os nomes não podem ser. ou ..
  4. Os nomes dos índices não podem incluir caracteres especiais como: , /, *,?,,, |, `` (Caractere de espaço), ,, #
  5. O comprimento dos nomes de índice deve ser inferior a 255 bytes. Os caracteres multibyte contarão no comprimento total do nome do índice. Por exemplo, se um único caractere tiver 8 bytes de comprimento, o comprimento total restante do nome é 255 - 8
  6. Na versão mais recente do Elasticsearch, nomes que começam com a. são reservados para índices ocultos e índices internos usados ​​por plug-ins Elasticsearch.

Como criar um corpo de índice

Ao usar a solicitação PUT para criar um índice, você pode passar vários argumentos que definem as configurações para o índice que deseja criar. Os valores que você pode especificar no corpo incluem:

  • Apelido: Especifica nomes de alias para o índice que você deseja criar; este parâmetro é opcional.
  • Definições: Isso define as opções de configuração para o índice que você deseja criar. Se você não especificar nenhum parâmetro, o índice será criado usando as configurações padrão.
  • Mapeamentos: Isso define o mapeamento para campos no índice. As especificações que você pode incluir nos mapeamentos incluem:
    • O nome do campo
    • O tipo de dados
    • O parâmetro de mapeamento

Para obter um exemplo de criação de um índice com configurações corporais, considere a solicitação abaixo:

PUT / single_index_with_body
{
'definições': {
'numero_de_shards': 2,
'numero_de_replicas': 2
},
mapeamentos: {
'propriedades': {
'field1': {'type': 'object'}
}
}
}

Para um pedido equivalente cURL:

curl -XPUT 'http: // localhost: 9200 / single_index_with_body' -H 'Content-Type: application / json' -d '{' settings ': {' number_of_shards ': 2,' number_of_replicas ': 2},' mappings ' : {'propriedades': {'campo1': {'tipo': 'objeto'}}}} '

A solicitação acima cria um novo índice com o nome single_index_with_body com 2 números de shards e 2 réplicas. Ele também cria um mapeamento com um campo de nome field1 e digite como um objeto JSON.

Depois de enviar a solicitação, você receberá uma resposta com o status da solicitação como:

{
reconhecido: verdadeiro,
'shards_acknowledged': true,
'index': 'single_index_with_body'
}

Acknowledged mostra se o índice foi criado com sucesso no cluster, enquanto shards_acknowledged mostra se o número necessário de cópias de shard foi iniciado para cada shard no índice especificado antes do tempo limite.

Como visualizar o índice Elasticsearch

Para visualizar as informações sobre o índice que você criou, use uma solicitação semelhante à de criação de um índice, mas use o método HTTP em vez de PUT como:

GET / single_index_with_body

Para cURL,

curl -XGET http: // localhost: 9200 / single_index_with_body

Este comando fornecerá informações detalhadas sobre o índice solicitado como:

{
'single_index_with_body': {
'apelido' : { },
'mapeamentos': {
'propriedades': {
'field1': {
'tipo': 'objeto'
}
}
},
'definições' : {
'índice': {
'roteamento': {
'alocação': {
'incluir' : {
'_tier_preference': 'data_content'
}
}
},
'numero_de_shards': '2',
'provided_name': 'single_index_with_body',
'creation_date': '1611045687208',
'numero_de_replicas': '2',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'versão': {
'criado': '7100299'
}
}
}
}
}

Conclusão

Este guia discutiu como trabalhar com Elasticsearch para criar uma API de índice para criar novos índices. Também discutimos como criar nomes adequados para os índices e definições de configuração.

Usando este guia, agora você pode criar e visualizar índices usando a API Elasticsearch.