O Elasticsearch 8 é um mecanismo de pesquisa e análise de código aberto poderoso e flexível, conhecido por sua escalabilidade, velocidade e recursos de indexação de dados em tempo real. A versão 8.x traz melhorias significativas, incluindo recursos de segurança aprimorados com gerenciamento simples de certificados, recursos de pesquisa de texto enriquecidos e execução de consultas mais eficiente. Ele também introduz suporte nativo para campos de tempo de execução, facilitando a personalização de como os dados são indexados e pesquisados sem alterar o esquema subjacente. Esses avanços tornam o Elasticsearch 8.xa uma solução robusta para gerenciar e analisar grandes volumes de dados.
Para instalar o Elasticsearch 8 no Debian 12, 11 ou 10, você pode usar o repositório APT oficial fornecido pelo Elasticsearch. Este guia orientará você nas etapas de configuração do Elasticsearch, garantindo que você tenha acesso aos recursos e melhorias mais recentes.
Atualize o Debian antes da instalação do Elasticsearch
Na primeira etapa, você precisa garantir que seu sistema Debian Linux esteja atualizado. Esta etapa atualizará todo o software existente para as versões mais recentes e preparará seu sistema para instalação.
Execute o seguinte comando para atualizar seu sistema Debian:
sudo apt update && sudo apt upgrade
Instalando os pacotes necessários
Antes de instalar o Elasticsearch 8 no Debian, devemos satisfazer pré-requisitos específicos. Isso envolve a instalação de alguns pacotes necessários, como software-properties-common, apt-transport-https e curl. Esses pacotes facilitam o gerenciamento de software e a transferência de dados pela rede.
Instale os pacotes necessários executando o seguinte:
sudo apt install software-properties-common apt-transport-https curl -y
Adicionar repositório APT do Elasticsearch 8 no Debian
A seguir, adicionaremos o repositório Elasticsearch APT ao nosso sistema Debian Linux. Primeiramente, importaremos a chave GPG para Elasticsearch, que garante a autenticidade do software que você está instalando. Execute o seguinte comando para importar a chave GPG:
curl -fSsL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch-8.gpg > /dev/null
A seguir, vamos importar o repositório Elasticsearch. Isso nos permitirá instalar o Elasticsearch diretamente usando o apt
gerenciador de pacotes:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-8.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch-8.list
Atualizando cache de índice APT
Devemos atualizar o índice do pacote APT após adicionar o repositório Elasticsearch ao nosso sistema. Isto garante que o APT conheça os novos pacotes do repositório recém-adicionado. Execute o seguinte comando para atualizar o índice APT:
sudo apt update
Instale o Elasticsearch 8 via comando APT
Agora que nosso sistema está preparado e o índice APT atualizado, podemos instalar o Elasticsearch 8. Use o seguinte comando para instalar o Elasticsearch:
sudo apt install elasticsearch
Nota: Se existirem duas entradas para o mesmo repositório Elasticsearch, você encontrará um erro durante a atualização do apt. Se você encontrar um erro 'Entrada duplicada de fontes.list', verifique /etc/apt/sources.list.d/elasticsearch-8.x.list para a entrada duplicada ou localize a entrada duplicada entre os arquivos em /etc/ apt/sources.list.d/ e o arquivo /etc/apt/sources.list.
Habilite o Elasticsearch no Debian após a instalação
Após a instalação, o serviço Elasticsearch é desabilitado na inicialização e inativo por padrão. Para ativar o serviço Elasticsearch e configurá-lo para iniciar automaticamente na inicialização, use o seguinte systemctl
comando:
sudo systemctl enable elasticsearch.service --now
Configurar o Elasticsearch 8
A próxima etapa do gerenciamento do Elasticsearch 8 em seu sistema Debian Linux é configurá-lo.
Familiarizando-se com as configurações padrão do Elasticsearch
Em uma nova instalação do Elasticsearch, o software coloca seus dados processados e armazenados no diretório /var/lib/elasticsearch. Se você precisar de modificações na configuração, /etc/elasticsearch é o seu diretório preferido. Se as opções de inicialização do Java precisarem de ajustes, essas configurações poderão ser ajustadas no arquivo de configuração /etc/default/elasticsearch.
Essas configurações padrão se adaptam a servidores autônomos onde o Elasticsearch opera exclusivamente em localhost. No entanto, se você pretende estabelecer um cluster Elasticsearch ou permitir conexões remotas, serão necessárias modificações na configuração padrão.
Refinando o arquivo de configuração do Elasticsearch
O arquivo de configuração do Elasticsearch contém muitos parâmetros que podem ser ajustados para atender às suas necessidades exclusivas. Para abrir este arquivo, execute o seguinte comando:
sudo nano /etc/elasticsearch/elasticsearch.yml
Um parâmetro importante é cluster.name, que designa o nome do cluster ao qual seu nó pertence. Por padrão, é “elasticsearch”, mas um nome mais distinto é aconselhável em um ambiente de produção.
Aqui está um exemplo:
cluster.name: my_application
A opção node.name é outra opção significativa que define o nome do nó Elasticsearch. Este nome é essencial para uma administração e gerenciamento tranquilos, especialmente ao trabalhar com vários nós.
Aqui está um exemplo:
node.name: node-1
Configure o Elasticsearch 8 com HTTPS no Debian
A seguir abordamos a configuração de HTTPS para sua instalação do Elasticsearch. A criptografia é essencial para proteger os dados, e permitir que o Elasticsearch 8 use HTTPS garante que os dados sejam transmitidos com segurança entre nós e clientes.
Gerar certificados SSL
A primeira etapa na configuração do Elasticsearch para HTTPS é gerar um certificado SSL. Este certificado é o que criptografará os dados entre seu servidor e clientes. O Elasticsearch possui uma ferramenta integrada chamada elasticsearch-certutil que você pode usar para gerar um certificado autoassinado. Execute o seguinte comando:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --silent --pem -out config/elastic-certificates.p12
Isso criará um arquivo .p12 no diretório de configuração. Este arquivo contém a chave privada e o certificado público. É essencial proteger este arquivo e garantir que ele não esteja acessível a usuários não autorizados.
Atualizar configuração do Elasticsearch 8
Em seguida, você precisa atualizar o arquivo de configuração do Elasticsearch localizado em /etc/elasticsearch/elasticsearch.yml para incluir os caminhos para seu certificado e chave privada. Abra o arquivo de configuração e adicione as seguintes linhas:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
Essas configurações habilitam SSL para a camada de transporte, especificam que usamos certificados para verificação SSL e definem os caminhos para o certificado e a chave privada.
Permitindo acesso remoto (opcional)
O Elasticsearch está configurado para escutar apenas localhost por padrão. No entanto, isto pode ser ajustado nos casos em que seja necessário acesso remoto. Procure a seção Rede e remova o comentário da linha network.host removendo o # da frente. Substitua o valor existente pelo seu endereço IP privado interno ou endereço IP externo.
Aqui está um exemplo:
# network.host: 192.168.0.1
Neste exemplo, network.host foi removido do comentário e ajustado para um endereço IP privado interno.
Por segurança, é aconselhável especificar endereços IP individuais. No entanto, você pode alterar a interface de rede para ouvir todos, definindo-a como 0.0.0.0 para vários endereços IP internos ou externos conectados ao servidor.
Após fazer as alterações necessárias, salve o arquivo de configuração (CTRL+O para salvar, CTRL+X para sair).
Para impor as alterações no arquivo de configuração, reinicie o serviço Elasticsearch com o comando:
sudo systemctl restart elasticsearch
Modificando as regras de firewall UFW para conexões remotas
Se você configurou o Elasticsearch para permitir conexões remotas, é vital ajustar as regras do firewall para acomodar essas conexões. O Firewall Descomplicado (UFW) pode ajudar nisso.
Você pode permitir que um endereço IP específico se conecte ao Elasticsearch executando este comando:
sudo ufw allow from <IP Address> to any port 9200
Não se esqueça de substituir com o endereço IP real do qual você deseja permitir conexões. Este comando abrirá a porta 9200 para o endereço IP especificado, permitindo que ele interaja com o Elasticsearch.
Por exemplo, se você deseja permitir a conexão do endereço IP 192.168.0.2, o comando seria:
sudo ufw allow from 192.168.0.2 to any port 9200
Depois disso, seu servidor Debian permitirá que o tráfego de 192.168.0.2 acesse o Elasticsearch através da porta 9200. Lembre-se de que a segurança de seus servidores é fundamental, portanto, certifique-se de conceder acesso apenas a endereços IP confiáveis.
Verificando a configuração do Elasticsearch 8
Depois de modificar a configuração do Elasticsearch, é vital verificar se as alterações foram implementadas corretamente e se a sua instância do Elasticsearch está funcionando conforme o esperado.
Verificando o status do serviço Elasticsearch 8
Primeiro, verifique o status do seu serviço Elasticsearch para confirmar se ele está ativo e em execução. Você pode fazer isso com o seguinte comando:
sudo systemctl status elasticsearch
Este comando gerará informações sobre o serviço Elasticsearch, incluindo se ele está ativo e em execução. Caso contrário, talvez seja necessário solucionar o problema ou revisar as alterações na configuração.
Testando acesso remoto (opcional)
Se você habilitou o acesso remoto, você pode testá-lo tentando conectar-se à sua instância do Elasticsearch a partir de uma máquina remota. Conforme discutido na seção anterior, o endereço IP a partir do qual você está se conectando deve ser permitido nas regras do seu firewall.
Você pode usar o comando curl para esta finalidade:
curl https://<Your_Elasticsearch_IP>:9200
Substituir com o endereço IP do seu servidor Elasticsearch. Se for bem-sucedido, este comando deverá retornar informações sobre sua instância do Elasticsearch.
Validando a integridade dos dados
Por fim, é essencial verificar a integridade dos dados do Elasticsearch, especialmente se você tiver feito alterações no diretório de dados da sua configuração. O Elasticsearch fornece APIs que você pode usar para verificar o status dos seus dados.
Por exemplo, para obter o status de todos os índices, use o seguinte comando:
curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty"
Este comando lista todos os índices em sua instância do Elasticsearch e seu status de integridade. Verifique o status de integridade dos seus índices para garantir que seus dados estejam seguros e acessíveis.
Observação: lembre-se de que manter a integridade e a segurança dos seus dados deve ser sempre uma prioridade. Sempre verifique suas alterações, valide sua configuração e monitore sua instância do Elasticsearch regularmente. Isso ajudará você a manter um sistema de gerenciamento de dados confiável, eficiente e seguro com o Elasticsearch.
Interagindo com o Elasticsearch 8 via cURL
Esta seção explorará comandos comuns que interagem com sua instância do Elasticsearch 8. Usaremos o curl
ferramenta de linha de comando, uma biblioteca flexível para transferência de dados usando diferentes protocolos.
Excluindo um índice
Um índice Elasticsearch é um conjunto de documentos que possuem características semelhantes. Se você tiver um índice chamado samples que deseja excluir, poderá fazer isso com o seguinte comando:
curl -X DELETE 'https://localhost:9200/samples'
Este comando envia uma solicitação HTTP DELETE para o URL especificado, que instrui o Elasticsearch a excluir o índice de amostras.
Listando todos os índices
Para recuperar uma lista de todos os índices em sua instância do Elasticsearch, use o endpoint _cat/indices com uma solicitação GET como esta:
curl -X GET 'https://localhost:9200/_cat/indices?v'
A resposta listará todos os índices, incluindo a integridade, status, tamanho e número de documentos do índice.
Buscando documentos de um índice
Para buscar todos os documentos de um índice específico, digamos amostra, use o endpoint _search:
curl -X GET 'https://localhost:9200/sample/_search'
Este comando recupera todos os documentos armazenados no índice de amostra.
Pesquisando com parâmetros de URL
Você pode usar a sintaxe de consulta do Lucene para pesquisas de texto básicas. Por exemplo, se você quiser encontrar documentos cuja área escolar seja Harvard, você usaria:
curl -X GET https://localhost:9200/samples/_search?q=school:Harvard
Este comando envia uma solicitação GET para o endpoint _search usando o parâmetro q para a consulta.
Pesquisando com Elasticsearch Query DSL
Para consultas mais complexas, você pode preferir usar o Query DSL do Elasticsearch, que permite usar JSON para definir consultas. Este formato é mais legível e acessível para depuração de consultas complexas.
Aqui está um exemplo:
curl -XGET --header 'Content-Type: application/json' https://localhost:9200/samples/_search -d '{
"query" : {
"match" : { "school": "Harvard" }
}
}'
Este comando faz o mesmo que o anterior, mas usa JSON para a definição da consulta. Dessa forma, o comando fica mais legível, principalmente quando se trata de consultas mais complexas.
Adicionando e atualizando documentos
Para adicionar um novo documento a um índice, você pode usar o método PUT junto com o endpoint _doc. Por exemplo, para adicionar um documento com ID 1 e uma área escolar de Harvard ao índice de amostras, você usaria:
curl -XPUT --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1 -d '{
"school" : "Harvard"
}'
Para atualizar um documento, você pode usar o método POST com o endpoint _update. Por exemplo, para adicionar um campo de alunos ao documento que acabamos de criar, você usaria:
curl -XPOST --header 'Content-Type: application/json' https://localhost:9200/samples/_doc/1/_update -d '{
"doc" : {
"students": 50000}
}'
Este comando instrui o Elasticsearch a atualizar o documento com um ID 1 no índice de amostras, adicionando um campo de alunos com valor 50.000.
Esses comandos são apenas uma pequena amostra do que você pode realizar com o Elasticsearch. A DSL de consulta do Elasticsearch
Gerencie o Elasticsearch 8 no Debian 12, 11 ou 10
Este segmento investiga o processo de remoção do Elasticsearch 8 do seu servidor Debian Linux. Você pode querer fazer isso por vários motivos, como o software não atender mais às suas necessidades ou você estar planejando mudar para uma solução alternativa. Independentemente dos motivos, as etapas descritas abaixo orientarão você durante o processo.
Remoção do Elasticsearch 8 do Debian
Erradicar o Elasticsearch do seu servidor envolve um comando simples. No entanto, lembre-se que esta ação é irreversível e eliminará todos os dados associados. Aqui está o comando para executar:
sudo apt remove elasticsearch
A execução do comando acima desinstalará efetivamente o Elasticsearch, liberando quaisquer recursos do sistema alocados anteriormente.
Remover repositório Elasticsearch APT
O repositório Elasticsearch permanecerá em seu sistema após a desinstalação. Se tiver certeza de que não irá reinstalar o Elasticsearch no futuro, é melhor se livrar dele para evitar confusão desnecessária.
Veja como remover o repositório Elasticsearch:
sudo rm /etc/apt/sources.list.d/elasticsearch-8.list
O comando acima excluirá o repositório Elasticsearch 8 do seu servidor Debian Linux.
Atualizando lista de repositórios
A etapa final é atualizar a lista de pacotes apt. Esta etapa é essencial para garantir que seu sistema não considere o Elasticsearch 8 para futuras atualizações ou instalações.
O comando para atualizar sua lista de repositórios é o seguinte:
sudo apt update
Conclusão
Com o Elasticsearch 8 instalado com sucesso em seu sistema Debian, você pode aproveitar seus recursos avançados de pesquisa e análise para gerenciar e analisar seus dados com eficiência. Atualize regularmente o Elasticsearch para se beneficiar dos recursos e melhorias de segurança mais recentes. Aproveite as funcionalidades poderosas do Elasticsearch 8.x, personalizadas para atender às demandas de gerenciamento e análise de dados modernos.