Configurando o Elasticsearch em Ambientes Linux

A instalação e configuração do Elasticsearch em sistemas operacionais baseados em Linux requerem uma série de passos, desde a preparação do ambiente até os ajustes finos dos parâmetros do serviço. É fundamental que o Java Development Kit (JDK) versão 8 ou supeiror esteja previamente instalado e configurado no sistema para que o Elasticsearch funcione corretamente.

Obtenção do Software Elasticsearch

O primeiro passo é adquirir o pacote binário do Elasticsearch. Recomenda-se baixar a versão mais recente diretamente do portal oficial da Elastic. Para este guia, consideraremos um arquivo .tar.gz, como elasticsearch-7.x.x-linux-x86_64.tar.gz, que será descompactado no sistema.

Processo de Instalação e Configuração Inicial

1. Descompactação do Pacote

Após transferir o arquivo .tar.gz para o seu servidor Linux, utilize o comando tar para extrair seu conteúdo para um diretório apropriado, como /opt/. O uso de /opt/ é uma prática comum para software de terceiros:

sudo tar -zxvf elasticsearch-7.x.x-linux-x86_64.tar.gz -C /opt/

Para simplificar o gerenciamento e evitar o versionamento no caminho, renomeie o diretório descompactado:

sudo mv /opt/elasticsearch-7.x.x /opt/elasticsearch

2. Criação de Usuário Dedicado

Para garantir a segurança e a estabilidade do sistema, o Elasticsearch não deve ser executado com privilégios de root. Crie um usuário de sistema específico para o Elasticsearch:

sudo useradd es_user
sudo passwd es_user

Você será solicitado a definir e confirmar uma senha para o novo usuário es_user.

3. Atribuição de Permissões de Diretório

Conceda ao usuário es_user as permissões de acesso e modificação necessárias sobre o diretório de instalação do Elasticsearch:

sudo chown -R es_user:es_user /opt/elasticsearch

4. Alternando para o Usuário do Elasticsearch

Mude para o usuário es_user para prosseguir com as etapas de configuração e inicialização do serviço. Todos os comandos subsequentes para o Elasticsearch devem ser executados sob este usuário:

su - es_user

5. Início Rápido do Elasticsearch (Modo Foreground)

Para uma verificação inicial e rápida do funcionamento, você pode iniciar o Elasticsearch em primeiro plano, utilizando as configurações padrão. Isso exibirá os logs diretamente no terminal:

/opt/elasticsearch/bin/elasticsearch

Para parar o serviço neste modo, pressione Ctrl+C.

6. Confirmação de Operação

Enquanto o Elasticsearch estiver rodando (em um terminal separado, se estiver em primeiro plano), abra uma nova sessão de terminal e execute o seguinte comando para confirmar que o serviço está acessível:

curl -X GET 'http://localhost:9200'

Uma resposta em formato JSON, contendo informações sobre a versão do Elasticsearch e o cluster, indicará que o serviço está funcionando corretamente.

Configuração Detalhada do Elasticsearch

Para uma implantação em ambiente de produção, é essencial personalizar as configurações do Elasticsearch. O arquivo de configuração principle é elasticsearch.yml, localizado no diretório /opt/elasticsearch/config/.

1. Edição de elasticsearch.yml

Acesse o diretório de configuração como es_user e edite o arquivo elasticsearch.yml:

cd /opt/elasticsearch/config
vim elasticsearch.yml

Ajuste as seguintes propriedades conforme necessário. As linhas comentadas (#) no arquivo original fornecem contexto útil:

# Nome do cluster para identificação
cluster.name: meu_cluster_producao

# Nome único para este nó
node.name: no_servidor_alpha

# Caminhos para armazenar dados e logs do Elasticsearch.
# Assegure-se de que estes diretórios existam e que 'es_user' tenha permissão de escrita.
path.data: /home/es_user/dados/elastic_data
path.logs: /home/es_user/logs/elastic_logs

# Configurações de rede
# network.host: 0.0.0.0 permite que o Elasticsearch seja acessível de qualquer interface de rede.
# Em produção, considere restringir isso a IPs específicos e usar um firewall.
network.host: 0.0.0.0
http.port: 9200

# Lista inicial de nós mestres elegíveis para descoberta de cluster.
# Isso ajuda na formação do cluster ao iniciar.
cluster.initial_master_nodes: ["no_servidor_alpha"]

# Habilitação de CORS (Cross-Origin Resource Sharing) para acesso de aplicações web.
# O uso de "*" permite acesso de qualquer origem, o que pode ser inseguro em produção.
http.cors.enabled: true
http.cors.allow-origin: "*"

# Definição dos papéis deste nó no cluster.
node.master: true
node.data: true

Crie os diretórios de dados e logs especificados e atribua as permissões corretas ao es_user:

mkdir -p /home/es_user/dados/elastic_data
mkdir -p /home/es_user/logs/elastic_logs

2. Otimização dos Parâmetros JVM

Os parâmetros de memória da Java Virtual Machine (JVM) para o Elasticsearch são configurados no arquivo jvm.options, localizado em /opt/elasticsearch/config/. É uma prática recomendada alocar aproximadamente metade da memória RAM disponível do sistema para o Elasticsearch, mas nunca excedendo 30GB e sempre deixando memória suficiente para o sistema operacional e o cache de disco.

Para um exemplo de redução de memória em ambientes de desenvolvimento ou com recursos limitados:

# Edite /opt/elasticsearch/config/jvm.options
# Altere as configurações de -Xms e -Xmx para valores como 512m ou 1g,
# dependendo da sua RAM disponível.
-Xms512m
-Xmx512m

3. Ajustes de Limites do Sistema Operacional

O Elasticsearch exige que alguns limites do sistema operacional sejam ajustados para garantir sua operação eficiente e evitar erros. Saia do usuário es_user e volte para root para realizar essas modificações:

exit
sudo vim /etc/security/limits.conf

Adicione as seguintes linhas ao final do arquivo /etc/security/limits.conf, substituindo es_user pelo nome do seu usuário dedicado:

es_user    -    nofile    65536
es_user    -    nproc     4096

Além disso, é necessário aumentar o limite de vm.max_map_count. Edite o arquivo /etc/sysctl.conf:

sudo vim /etc/sysctl.conf

Adicione ou modifique a seguinte linha:

vm.max_map_count = 262144

Após salvar /etc/sysctl.conf, aplique as novas configurações imediatamente:

sudo sysctl -p

Iniciando o Serviço Elasticsearch em Segundo Plano

Com todas as configurações aplicadas, inicie o Elasticsearch como um processo em segundo plano (daemon) sob o usuário es_user:

su - es_user
/opt/elasticsearch/bin/elasticsearch -d

Para verificar se o processo do Elasticsearch está ativo, você pode usar o comando jps (se o JDK estiver configurado corretamente e o usuário tiver permissão para executá-lo) ou ps aux | grep elasticsearch:

jps

A presença de um processo Java que inclui "Elasticsearch" na listagem indica que o serviço foi iniciado com sucesso.

Tags: elasticsearch Linux Instalação configuracao JVM

Publicado em 7-28 23:18