Skip to main content

Upgrade OpenSearch - Ubuntu

Antes de iniciar a ação, é importante lembrar que o servidor que deseja atualizar deve estar na versão 7.10.2 do ElasticSearch e que o servidor tambem atenda aos requisitos minimos da matriz de compatibilidade:

https://opensearch.org/docs/latest/opensearch/install/compatibility/

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"

opensearch-001.png

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:

apt-cache madison elasticsearch

Se ao executar o comando acima não for retornada a listagem com as versões disponíveis da aplicação, execute os passos abaixo. Caso tenha listado normalmente, siga para o passo 4.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
apt update
apt-cache madison elasticsearch

4. Selecione a versão 7.10.2 do ElasticSearch:

apt-get install elasticsearch=7.10.2

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/versions/opensearch-1-3-1.html , faça download da versão 1.3.1  do OpenSearch no formato tar.gz.

opensearch-002.png

Atenção: Neste tutorial o “x.x.x” refere-se a versão, e deverá ser substituído pelo número da versão 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"

opensearch-003.png

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"

opensearch-004.png

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"
}
}
'

opensearch-005.png

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/

opensearch-006.png

ES_PATH_CONF: Caminho de onde está presente as configurações do ElasticSearch atualmente.

export ES_PATH_CONF=/etc/elasticsearch/

opensearch-007.png

OPENSEARCH_HOME: Caminho de onde será feita a instalação do OpenSearch.

export OPENSEARCH_HOME=/etc/opensearch/

opensearch-008.png

OPENSEARCH_PATH_CONF: Caminho de onde será armazenada as configurações do OpenSearch.

export OPENSEARCH_PATH_CONF=/etc/opensearch/config

2022-04-14 15_34_56-10.0.0.57 (md2net).png

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:

opensearch-011.png

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:

opensearch-012.png

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

opensearch-013.png

4. Execute o script para iniciar a instalação das configurações de segurança do OpenSearch:

sudo ./install_demo_configuration.sh

opensearch-014.png

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:

opensearch-015.png

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"

opensearch-016.png

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:

opensearch-017.png

ou

image-1655225245858.png

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/
sudo chown -R seuusuario:seugrupo /etc/opensearch/

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”

opensearch-018.png

Acesse o OpenSearch pelo navegador com o usuário e senha “admin”:

opensearch-019.png

8. Reative a replicação:

curl -u admin:admin -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 nano /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):

opensearch-020.png

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

opensearch-021.png

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.

opensearch-022.png

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:

opensearch-023.png

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