Upgrade OpenSearch - Redhat/CentOs
Antes de iniciar a ação, é importante lembrar que o servidor que deseja atualizar deve estar na versão 7.10.2 do ElasticSearch.
Para conferir a versão do seu ElasticSearch, faça login no servidor usando um cliente SSH execute o comando abaixo:
curl -u elastic:senha* -X GET "localhost:9200?pretty"
Se o seu servidor estiver em uma versão inferior a 7.10.2, siga os passos abaixo. Caso esteja na versão 7.10.2, siga para o próximo passo.
*O campo de senha deve ser preenchido com a senha configurada em sua aplicação atualmente.
Atualizando o ELK para a versão 7.10.2:
Importante: Se o seu servidor estiver na versão 7.4 ou em alguma versão anterior a versão 7.10, clique aqui para acessar o tutorial a ser utilizado antes de realizar esse upgrade.
1. Efetuar login no servidor com um cliente SSH.
2. Pare os serviços do ElasticSearch:
systemctl stop elasticsearch.service
3. Liste as versões disponíveis da aplicação:
yum –showduplicates list elasticsearch
4. Selecione a versão 7.10.2 do ElasticSearch:
sudo yum install elasticsearch-7.10.2-1.x86_64
5. Recarregue os serviços:
systemctl daemon-reload
6. Inicie os serviços do ElasticSearch:
sudo systemctl start elasticsearch.service
7. Confira se a versão foi atualizada:
curl -u elastic:senhacorreta* -X GET "localhost:9200/?pretty"
Upgrade para o OpenSearch
1. Acesse https://opensearch.org/downloads.html, efetuar o download da versão 1.3.1 do OpenSearch no formato tar.gz.
Atenção: Neste tutorial o “x.x.x” referente a versão deverá ser substituído pelo número da versão que estiver disponível quando você fizer o download.
2. Efetue login no servidor com um cliente SSH.
3. Importe o arquivo baixado para o diretório /tmp.
4. Acessar o diretório /tmp
cd /tmp
5. Extrair o arquivo do OpenSearch:
tar -zxf opensearch-x.x.x-linux-x64.tar.gz
6. Renomeie e mova a pasta do OpenSearch para o diretório /etc/ ou para o diretório que desejar mantê-lo:
cd /tmp
sudo mv opensearch-x.x.x/ opensearch/
sudo cp -r opensearch/ /etc/
7. Após realizar a cópia dos arquivos, os arquivos da pasta /tmp podem ser removidos:
cd /tmp
rm -rf opensearch-x.x.x/
8. Digite o comando abaixo para listar os aliases do seu cluster:
curl -X GET -u elastic:senhacorreta* "localhost:9200/_cat/aliases"
9. Remova todos aliases que possuem “kibana” em seu nome já que a partir de agora não utilizaremos mais o Kibana e isso pode causar erros na hora de iniciar a nova aplicação.
curl -u elastic:senhacorreta* -X DELETE "localhost:9200/.kibana_*?pretty"
10. Desative a replicação para impedir que o Elasticsearch OSS replique enquanto você realiza o upgrade:
curl -u elastic:senhacorreta* -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.enable": "primaries"
}
}
'
11. Defina as seguintes variáveis de ambiente:
ES_HOME: Caminho de onde está a instalação do ElasticSearch atualmente.
export ES_HOME=/usr/share/elasticsearch/
ES_PATH_CONF: Caminho de onde está presente as configurações do ElasticSearch atualmente.
export ES_PATH_CONF=/etc/elasticsearch/
OPENSEARCH_HOME: Caminho de onde será feita a instalação do OpenSearch.
export OPENSEARCH_HOME=/etc/opensearch/
OPENSEARCH_PATH_CONF: Caminho de onde será armazenada as configurações do OpenSearch.
export OPENSEARCH_PATH_CONF=/etc/opensearch/config
12. Acesse o diretório do OpenSearch:
cd /etc/opensearch/
13. Execute o comando para começar o upgrade da aplicação:
sudo ./bin/opensearch-upgrade
Se caso ao executar o comando acima você receber uma mensagem “Unable to detect installed elasticsearch version”, execute os passos abaixo:
1. Acesse novamente o arquivo de configuração do ElasticSearch:
cd /etc/elasticsearch
2. Entre no arquivo de configuração do ElasticSearch:
sudo vim elasticsearch.yml
3. Procure pela linha abaixo e comente-a no arquivo. Para comentar, basta inserir um “#” antes dela:
# xpack.security.enabled: true
4. Salve o arquivo
- Aperte ESC.
- Digite “wq!” e pressione enter.
5. Reinicie os serviços do ElasticSearch e tente novamente.
sudo systemctl restart elasticsearch.service
14. Upgrade concluído:
15. Pare os serviços do ElasticSearch:
sudo systemctl stop elasticsearch.service
Instalando os plugins de segurança do OpenSearch:
1. Acesse a pasta das ferramentas de segurança dos plugins do OpenSearch:
cd /etc/opensearch/plugins/opensearch-security/tools
2. Verifique se o script “install_demo_configuration.sh” é um arquivo executável:
Como podemos ver na imagem acima, atualmente o script não está no modo executável.
3. Caso não seja, execute o comando abaixo e em seguida o script ficará com uma cor diferente e um asterisco ao final dele:
sudo chmod +x install_demo_configuration.sh
4. Execute o script para iniciar a instalação das configurações de segurança do OpenSearch:
sudo ./install_demo_configuration.sh
5. Inicie os serviços do OpenSearch:
cd /etc/opensearch
./bin/opensearch -d
6. Se a mensagem de erro abaixo relacionada a licença que era utilizada no ElasticSearch for mostrada:
Acesse o diretório do OpenSearch:
cd /etc/opensearch/config
Abra o arquivo de configuração:
vim opensearch.yml
E comente a linha abaixo:
# xpack.license.self_generated.type: "basic"
Salve, feche o arquivo e tente iniciar a aplicação novamente.
Para salvar aperte ESC, digite “wq!” e em seguida aperte enter.
7. Se ao iniciar os serviços for exibida mensagens de erro relacionado a falta de permissão para acessar arquivos do ElasticSearch, como a mensagem abaixo:
Acesse os diretórios e altere as permissões das pastas do ElasticSearch:
cd /var/lib
sudo chown -R seuusuario:seugrupo elasticsearch/
cd /var/log
sudo chown -R seuusuario:seugrupo elasticsearch/
E tente novamente iniciar os serviços.
Caso seja exibida novamente a mensagem relacionado a falta de permissão, acesse o diretório exibido no erro e altere as suas permissões como demonstrado no passo acima.
Obs: Após a atualização, a aplicação estará alocada no URL começado com https://, caso deseje alterar para o URL iniciado com http://, acesse o arquivo opensearch.yml
vim /etc/opensearch/config/opensearch.yml
Comente a linha: “plugins.security.ssl.http.enabled: true”
Acesse o OpenSearch pelo navegador com o usuário e senha “admin”:
8. Reative a replicação:
curl -u elastic:senhacorreta* -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}
'
Obs: *Todos os campos onde é mostrado “senhacorreta” deve ser preenchido com a senha configurada em seu servidor.
Criando o service do OpenSearch para facilitar a inicialização dos serviços:
1. Crie um arquivo chamado opensearch.service:
sudo vi /etc/systemd/system/opensearch.service
2. Edite o arquivo inserindo as informações abaixo (perceba que será necessário inserir o usuário de seu servidor no campo “user”):
[Unit]
Description=OpenSearch
[Service]
Type=simple
User=*insira aqui o usuário do seu servidor*
ExecStart=/etc/opensearch/bin/opensearch
Restart=on-failure
RestartSec=3
StartLimitBurst=3
StartLimitInterval=60
WorkingDirectory=/
[Install]
WantedBy=multi-user.target
3. Salve o arquivo.
Aperte ESC, digite “wq!” e aperte enter.
4. Execute-o:
systemctl start opensearch.service
5. Verifique o status para confirmar que ele foi iniciado corretamente:
systemctl status opensearch.service
Alterando a senha de acesso ao OpenSearch
Ao realizar o upgrade do ElasticSearch para o OpenSearch, a ferramenta automaticamente alterna o usuário e a senha de acesso da aplicação para “admin”. Segue abaixo um tutorial de como alterar esta senha.
1. Acesse o diretório onde se encontram as ferramentas de segurança da aplicação:
cd /etc/opensearch/plugins/opensearch-security/tools
2. Verifique se o script hash.sh está executável (caracteriza-se pela cor diferente do branco):
3. Caso não esteja, execute o comando abaixo:
chmod +x hash.sh
4. Execute o script:
./hash.sh
5. Após executar, será perguntado qual senha deseja colocar em sua aplicação, digite a senha desejada, aperte enter e então aparecerá sua senha criptografa.
6. Copie a senha gerada.
7. Acesse o arquivo internal_users.yml
cd /etc/opensearch/plugins/opensearch-security/securityconfig
8. Entre no arquivo:
vim internal_users.yml
O primeiro campo de usuário “admin” é o usuário principal configurado atualmente. No campo de “hash” você irá colar a senha que você copiou no passo anterior e caso deseje, também pode alterar o “admin” por algum usuário desejado.
No nosso caso, alteramos o usuário para “elastic” que é o que costumamos utilizar.
9. Acesse novamente o diretório dos scripts de segurança:
cd /etc/opensearch/plugins/opensearch-security/tools
10. Execute o comando abaixo para fazer backup da sua configuração atual antes de fazer as alterações:
./securityadmin.sh -backup my-backup-directory \
-icl \
-nhnv \
-cacert ../../../config/root-ca.pem \
-cert ../../../config/kirk.pem \
-key ../../../config/kirk-key.pem
11. Execute o comando abaixo para salvar as alterações de usuário e senha.
./securityadmin.sh -f ../securityconfig/internal_users.yml \
-t internalusers \
-icl \
-nhnv \
-cacert ../../../config/root-ca.pem \
-cert ../../../config/kirk.pem \
-key ../../../config/kirk-key.pem
12. Reinicie os serviços do Opensearch:
sudo systemctl restart opensearch.service
13. Teste a conexão com o novo usuário e senha:
curl -u usuario:senhacorreta* -X GET "localhost:9200?pretty"
O comando deve exibir uma resposta parecida com esta:
Desativando os serviços do ElasticSearch para não iniciarem mais junto com o servidor:
sudo systemctl disable elasticsearch.service
Ativando os serviços do OpenSearch e OpenSearch Dashboards para iniciarem junto com o servidor:
sudo systemctl enable opensearch.service
No Comments