OpenSearch · 22 min read · Sep 12, 2025
Como Instalar OpenSearch via Docker no Ubuntu 22.04

OpenSearch é um projeto orientado pela comunidade da Amazon e um fork do Elasticsearch e Kibana. É um mecanismo de busca totalmente open-source e uma suíte de análises com recursos ricos e funcionalidades inovadoras. O principal componente do projeto OpenSearch é o OpenSearch (um fork do Elasticsearch) e os OpenSearch Dashboards (um fork do Kibana). Ambos os componentes fornecem recursos como segurança empresarial, alertas, aprendizado de máquina, SQL, gerenciamento de estado de índice e muito mais.
OpenSearch é 100% open-source e licenciado sob a licença Apache 2.0. Ele permite que você ingresse, proteja, busque, agregue, visualize e analise dados para uma série de casos de uso, como análise de logs, busca de aplicações, busca empresarial e muito mais.
Neste tutorial, você instalará e configurará o OpenSearch - um mecanismo de busca open-source e suíte de análises - e os OpenSearch Dashboards - uma ferramenta de visualização open-source - via Docker em um servidor Ubuntu 22.04. Você implantará um cluster OpenSearch com múltiplos contêineres e um único OpenSearch Dashboard via Docker e Docker Compose. Você também protegerá sua implantação com certificados TLS personalizados e autenticação e autorização habilitadas.
Este guia utiliza um servidor Ubuntu genérico fresco, então este tutorial inclui a instalação do motor Docker e do Docker Compose em um sistema Ubuntu 22.04.
Pré-requisitos
Para completar este guia, você deve ter os seguintes requisitos:
- Um servidor Ubuntu 22.04 com RAM mínima de 4-8GB - Este exemplo usa um servidor Ubuntu com o nome do host ‘’ e um endereço IP ‘’.
- Um usuário não-root com privilégios de administrador sudo/root.
Quando esses requisitos estiverem prontos, você pode começar a instalação do OpenSearch.
Configurando o Sistema
Neste primeiro passo, você preparará seu sistema Ubuntu para a implantação do OpenSearch. Você precisará desativar o SWAP e a paginação, em seguida, aumentará o mapeamento máximo de memória através do arquivo ‘/etc/sysctl.conf ‘.
Execute o comando abaixo para desativar o swap em seu sistema. O comando ‘sed’ aqui desativará o swap permanentemente através do arquivo ‘/etc/fstab ‘ adicionando o comentário ‘ # ‘ ao início da linha de configuração do swap. O comando ‘ swapoff ‘ desativará o swap na sessão atual.
sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab
sudo swapoff -aEm seguida, verifique o status do swap através do comando abaixo. Se desativado, você deve obter uma saída ‘ 0 ‘ na seção de swap.
free -mSaída:

Por último, você adicionará a configuração ao arquivo ‘ /etc/sysctl.conf’ para aumentar os mapeamentos máximos de memória em seu sistema Ubuntu.
Execute o comando abaixo para adicionar o parâmetro ‘ vm.max_map_count=262144 ‘ ao final da linha do arquivo ‘ /etc/sysctl.conf’ . Em seguida, aplique as alterações através do comando ‘ sysctl -p ‘.
sudo echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sudo sysctl -pAgora verifique os mapeamentos máximos de memória executando o comando abaixo. Se bem-sucedido, seu mapeamento máximo de memória deve ser ‘ 262144 ‘.
cat /proc/sys/vm/max_map_countSaída:

Com o swap desativado e o mapeamento máximo de memória aumentado para ‘262144’, você começará a instalação do motor Docker e do Docker Compose.
Instalando Docker CE e Docker Compose
Existem várias maneiras de implantar e instalar o OpenSearch, você pode instalar o OpenSearch de forma tradicional em uma máquina virtual ou instalá-lo no ambiente de contêiner.
Se você preferir a instalação tradicional em uma máquina virtual, pode instalar o OpenSearch manualmente via Tarball ou através do gerenciador de pacotes (para distribuições baseadas em RHEL). Para implantação em contêiner, você pode instalar o OpenSearch com Docker e Kubernetes.
Neste exemplo, você instalará o OpenSearch no ambiente de contêiner via motor Docker e Docker Compose. Então agora, você estará instalando pacotes Docker do repositório oficial do Docker.
Para começar, execute o comando apt abaixo para instalar as dependências básicas. Digite y quando solicitado e pressione ENTER para prosseguir.
sudo apt install ca-certificates curl gnupg lsb-releaseSaída:

Em seguida, execute o comando abaixo para adicionar a chave GPG e o repositório para pacotes Docker.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullSaída:
Depois disso, atualize e atualize seu índice de pacotes Ubuntu através do comando apt abaixo.
sudo apt updateSaída:

Com o repositório Docker adicionado, você pode agora instalar o motor Docker e o plugin Docker Compose usando o comando apt abaixo. Quando solicitado, digite y e pressione ENTER para prosseguir.
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-pluginSaída:

O serviço Docker será iniciado e habilitado automaticamente. Você pode verificar o serviço Docker através do seguinte comando utilitário systemctl.
sudo systemctl is-enabled docker
sudo systemctl status dockerVocê deve obter uma saída indicando que o serviço Docker está habilitado e será executado automaticamente na inicialização. E o status do serviço Docker está em execução.
Por último, para permitir que seu usuário não-root execute o contêiner Docker, você deve adicionar seu usuário ao grupo ‘ docker ‘. Execute o comando usermod abaixo para adicionar seu usuário ao grupo ‘ docker ‘. Além disso, certifique-se de alterar o nome de usuário pelo seu.
sudo usermod -aG docker aliceAgora você pode fazer login como seu usuário e executar o contêiner Docker através do comando abaixo.
su - alice
docker run hello-worldQuando bem-sucedido, você deve receber a mensagem hello-world do contêiner Docker como a captura de tela a seguir.

Baixando Imagens Docker do OpenSearch
Neste passo, você fará o download das imagens do OpenSearch e dos OpenSearch Dashboards do DockerHub. Em seguida, você também executará um novo contêiner OpenSearch para fins de teste.
Execute o seguinte comando para baixar as imagens do OpenSearch e dos OpenSearch Dashboards.
docker pull opensearchproject/opensearch:latest
docker pull opensearchproject/opensearch-dashboards:latestSaída:


Após o download ser concluído, execute o comando abaixo para verificar a lista de imagens Docker em seu sistema. Você verá que as imagens do OpenSearch e dos OpenSearch Dashboards estão disponíveis em seu sistema.
docker imagesSaída:
Em seguida, você também pode executar o OpenSearch via Docker diretamente usando o comando abaixo. Isso criará e executará o contêiner OpenSearch em um modo único e exporá as portas TCP padrão 9200 e 9600 na máquina host.
docker run -d -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearchproject/opensearch:latestVerifique a lista do contêiner em execução através do comando ‘ docker ps ‘ abaixo.
docker psVocê deve receber uma saída como esta - O contêiner OpenSearch foi criado e está em execução. As portas TCP 9200 e 9600 estão expostas tanto no contêiner quanto na máquina host Docker.
Você pode acessar seu contêiner OpenSearch através do comando curl abaixo. O nome de usuário e a senha padrão para o contêiner OpenSearch são ‘ admin ‘.
curl https://localhost:9200 -ku 'admin:admin'Quando bem-sucedido, você deve obter uma saída como esta - O contêiner OpenSearch está em execução e acessível através da máquina host Docker.

Agora você pode executar o comando ‘docker’ abaixo para parar e excluir o contêiner OpenSearch. Porque no próximo passo, você criará um cluster OpenSearch via Docker Compose. Certifique-se de alterar o nome do contêiner no seguinte comando.
docker stop container-name ou container-id
docker rm container-name ou container-idPara garantir que o contêiner OpenSearch seja removido, execute o comando ‘docker ps ‘ com a opção adicional ‘ -a ‘. Isso mostrará os contêineres disponíveis com ambos os status, em execução e encerrados.
docker ps -aSaída:

Configurando o Diretório do Projeto
Faça login como seu usuário com o seguinte comando. Este exemplo usa um usuário ‘alice’, então certifique-se de alterar o nome de usuário no comando abaixo.
su - aliceAgora crie um novo diretório de projeto ‘ opensearch-project ‘ que será usado como o diretório raiz principal do seu projeto, e o diretório ‘ certs ‘ que será usado para armazenar certificados TLS personalizados.
mkdir -p ~/opensearch-project/certs; cd ~/opensearch-projectDentro do diretório ‘ opensearch-project’, execute o comando abaixo para criar novos arquivos que serão usados para criar contêineres OpenSearch e os OpenSearch Dashboards.
touch docker-compose.yml opensearch.yml opensearch_dashboards.yml internal_users.ymlA lista de arquivos:
- docker-compose.yml - a configuração principal do Docker Compose para o projeto OpenSearch.
- opensearch.yml - configuração personalizada para os contêineres OpenSearch.
- opensearch_dashbaords.yml - configuração personalizada para o contêiner OpenSearch Dashboards.
- internal_users.yml - autenticação e autorização de usuários personalizados para o OpenSearch e os OpenSearch Dashboards.
Gerando Certificados SSL/TLS
Neste passo, você gerará múltiplos certificados TLS que serão usados para proteger sua implantação do OpenSearch. Você gerará os seguintes certificados:
- Certificados CA Raiz: Esses certificados serão usados para assinar outros certificados.
- Certificados de Admin: Esses certificados serão usados para obter direitos administrativos para realizar todas as tarefas relacionadas ao plugin de segurança.
- Certificados dos OpenSearch Dashboards: Esses certificados serão usados para proteger os OpenSearch Dashboards e permitir que você acesse os OpenSearch Dashboards via conexões HTTPS.
- Certificados de Nó e Cliente: Esses certificados serão usados por nós e clientes dentro do cluster OpenSearch.
Para começar, execute o comando abaixo para criar novos diretórios que serão usados para armazenar os certificados TLS.
mkdir -p certs/{ca,os-dashboards}Crie uma nova variável de ambiente ‘MYDN’ que será usada para criar novos certificados TLS. Certifique-se de alterar os detalhes com suas informações.
export MYDN="/C=CA/ST=ONTARIO/L=TORONTO/O=HWDOMAIN"Agora você está pronto para gerar certificados TLS para sua implantação do OpenSearch.

Gerar Certificados CA
Gere uma chave privada para os certificados CA raiz usando o abaixo.
openssl genrsa -out certs/ca/ca.key 2048Agora gere um certificado CA raiz autoassinado através do comando abaixo. O valor do parâmetro ‘- subj’ está usando a variável de ambiente ‘ MYDN ‘ que você criou na sua sessão atual.
openssl req -new -x509 -sha256 -days 1095 -subj "$MYDN/CN=CA" -key certs/ca/ca.key -out certs/ca/ca.pemCom isso, você deve obter a chave privada CA raiz ‘ ca.key ‘ e o certificado CA raiz ‘ ca.pem ‘. Você pode verificar os certificados CA que você gerou através do seguinte comando.
ls certs/ca/Saída - Você deve obter a chave privada CA ‘ ca.key ‘ e o certificado CA ‘ ca.pem ‘.
Gerar Certificados de Admin
Gere a nova chave privada do certificado de admin ‘ admin-temp.key ‘ e converta o certificado gerado para um algoritmo compatível com PKCS#12 (3DES). Com isso, sua chave privada de admin deve ser ‘ admin.key ‘.
openssl genrsa -out certs/ca/admin-temp.key 2048
openssl pkcs8 -inform PEM -outform PEM -in certs/ca/admin-temp.key -topk8 -nocrypt -v1 PBE-SHA1-3DES -out certs/ca/admin.keyEm seguida, execute o comando abaixo para gerar o CSR (Certificate Signing Request) de admin a partir da chave privada ‘ admin.key ‘. Seu CSR gerado agora deve ser o arquivo ‘ admin.csr ‘.
openssl req -new -subj "$MYDN/CN=ADMIN" -key certs/ca/admin.key -out certs/ca/admin.csrAgora execute o comando abaixo para assinar o CSR de admin com o certificado CA raiz e a chave privada. A saída do certificado de admin é o arquivo ‘ admin.pem ‘.
openssl x509 -req -in certs/ca/admin.csr -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out certs/ca/admin.pemPor último, verifique a lista de seus certificados através do seguinte comando.
ls certs/ca/Saída - Você deve ver os arquivos de certificado de admin ‘ admin.pem ‘ e a chave privada ‘ admin.key ‘.
Gerar Certificados dos OpenSearch Dashboards
Gere o novo certificado que será usado para os OpenSearch Dashboards.
Execute o seguinte comando para gerar a chave privada ‘os-dashboards-temp.key’ e converter o certificado gerado para um algoritmo compatível com PKCS#12 (3DES). Com isso, sua chave privada de admin deve ser ‘ os-dashboards.key ‘.
openssl genrsa -out certs/os-dashboards/os-dashboards-temp.key 2048
openssl pkcs8 -inform PEM -outform PEM -in certs/os-dashboards/os-dashboards-temp.key -topk8 -nocrypt -v1 PBE-SHA1-3DES -out certs/os-dashboards/os-dashboards.keyEm seguida, execute o comando abaixo para gerar o CSR (Certificate Signing Request) para os OpenSearch Dashboards. Seu CSR gerado agora deve ser o arquivo ‘ os-dashboards.csr ‘.
openssl req -new -subj "$MYDN/CN=os-dashboards" -key certs/os-dashboards/os-dashboards.key -out certs/os-dashboards/os-dashboards.csrAgora execute o comando abaixo para assinar o CSR dos OpenSearch Dashboards com o certificado CA raiz e a chave privada. A saída do certificado de admin é o arquivo ‘ os-dashboards.pem’ .
openssl x509 -req -in certs/os-dashboards/os-dashboards.csr -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out certs/os-dashboards/os-dashboards.pemPor último, execute o seguinte comando para excluir o arquivo CSR dos OpenSearch Dashboards e verificar a lista de seus certificados para os OpenSearch Dashboards.
rm certs/os-dashboards/os-dashboards-temp.key certs/os-dashboards/os-dashboards.csr
ls certs/os-dashboards/Saída - Você deve ver os arquivos de certificado dos OpenSearch Dashboards ‘ os-dashboards.pem’ e a chave privada ‘ os-dashboards.key ‘.
Gerar Certificados para Nós do OpenSearch
Execute o seguinte comando para gerar certificados de nó. Com isso, você criará múltiplos diretórios sob o diretório ‘certs’ e gerará certificados TLS para múltiplos hosts.
for NODE_NAME in "os01" "os02" "os03"
do
mkdir "certs/${NODE_NAME}"
openssl genrsa -out "certs/$NODE_NAME/$NODE_NAME-temp.key" 2048
openssl pkcs8 -inform PEM -outform PEM -in "certs/$NODE_NAME/$NODE_NAME-temp.key" -topk8 -nocrypt -v1 PBE-SHA1-3DES -out "certs/$NODE_NAME/$NODE_NAME.key"
openssl req -new -subj "$MYDN/CN=$NODE_NAME" -key "certs/$NODE_NAME/$NODE_NAME.key" -out "certs/$NODE_NAME/$NODE_NAME.csr"
openssl x509 -req -extfile <(printf "subjectAltName=DNS:localhost,IP:127.0.0.1,DNS:$NODE_NAME") -in "certs/$NODE_NAME/$NODE_NAME.csr" -CA certs/ca/ca.pem -CAkey certs/ca/ca.key -CAcreateserial -sha256 -out "certs/$NODE_NAME/$NODE_NAME.pem"
rm "certs/$NODE_NAME/$NODE_NAME-temp.key" "certs/$NODE_NAME/$NODE_NAME.csr"
doneVerifique a lista de diretórios no diretório ‘certs’.
ls certs/Saída - Você deve obter novos diretórios ‘ os01, os02, e os03.

Por último, verifique a lista de certificados que estão disponíveis nos diretórios os01, os02, e os03 através do comando abaixo.
ls certs/os01/
ls certs/os02/
ls certs/os03/Saída - Em cada diretório, você deve obter dois certificados ‘ osX.key ‘ e ‘ osX.pem ‘.

Por último, você deve alterar a propriedade do diretório ‘ certs ‘ para ‘ 1000 ‘ através do comando abaixo. Isso permitirá que os contêineres Docker acessem o diretório ‘ certs ‘.
sudo chown -R 1000:1000 certs/Com os certificados TLS gerados, você agora gerará senhas hash e definirá usuários do OpenSearch.
Configurando Usuário
Neste passo, você gerará um hash de senha que será usado pelo OpenSearch e pelos OpenSearch Dashboards. Você gerará dois hashes de senha para dois usuários diferentes, em seguida, modificará o arquivo de configuração ‘internal_users.yml’ e os usuários do OpenSearch.
Execute o seguinte comando docker para gerar um novo hash de senha. Isso executará um contêiner OpenSearch temporário e executará o script ‘ hash.sh ‘ para gerar um hash de senha.
docker run -it --rm opensearchproject/opensearch sh -c "/usr/share/opensearch/plugins/opensearch-security/tools/hash.sh"Agora insira sua senha e você deve obter o hash da senha no seu terminal. Copie a senha hash gerada e execute novamente o comando para gerar outro hash de senha.
Saída - Para a senha hash gerada para os usuários do OpenSearch.

Em seguida, abra o arquivo ‘ internal_users.yml ‘ usando o seguinte comando do editor nano.
nano internal_users.ymlAdicione as seguintes linhas ao arquivo e certifique-se de alterar a senha hash pela sua senha gerada. Com isso, você definirá dois usuários para sua implantação do OpenSearch. o usuário ‘ admin ‘ como um administrador para o OpenSearch e o usuário ‘ kibanaserver ‘ que será usado para se conectar aos OpenSearch Dashboards.
---
# Este é o banco de dados de usuários internos
# O valor hash é um hash bcrypt e pode ser gerado com plugin/tools/hash.sh
_meta:
type: "internalusers"
config_version: 2
# Defina seus usuários internos aqui
admin:
hash: "$2y$12$y8UzXWoZKQc8GTgGsRz4g.CarjlC6sMPYN8XOD/NPQysRi2oq.Ws6"
reserved: true
backend_roles:
- "admin"
description: "Usuário Admin"
kibanaserver:
hash: "$2y$12$AKpGe4tM5nIWYFoM56yRue22pQh0jFfx59MUgUKnBu8qnyGeAm2Ze"
reserved: true
description: "Usuário OpenSearch Dashboards"Salve o arquivo e saia do editor quando terminar.

Configurando o Script docker-compose.yml
Neste passo, você criará um novo script Docker Compose para implantar o OpenSearch e os OpenSearch Dashboards. Você criará múltiplos contêineres OpenSearch para configurar o cluster OpenSearch, e configurará um contêiner OpenSearch Dashboards que estará conectado ao cluster OpenSearch.
Abra o arquivo ‘ docker-compose.yml ‘ usando o seguinte comando do editor nano.
nano docker-compose.ymlAdicione as seguintes linhas ao arquivo.
version: '3.7'
services:
os01:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # tamanho mínimo e máximo da heap Java, recomenda-se definir ambos para 50% da RAM do sistema
node.name: os01
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os01/os01.key # caminho relativo
plugins.security.ssl.transport.pemcert_filepath: certificates/os01/os01.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os01/os01.key
plugins.security.ssl.http.pemcert_filepath: certificates/os01/os01.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # junto com as configurações de memlock abaixo, desativa a troca
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data1:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
ports:
- 9200:9200
- 9600:9600 # necessário para o Performance Analyzer
os02:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # tamanho mínimo e máximo da heap Java, recomenda-se definir ambos para 50% da RAM do sistema
node.name: os02
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os02/os02.key # caminho relativo
plugins.security.ssl.transport.pemcert_filepath: certificates/os02/os02.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os02/os02.key
plugins.security.ssl.http.pemcert_filepath: certificates/os02/os02.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # junto com as configurações de memlock abaixo, desativa a troca
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data2:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
os03:
restart: always
image: opensearchproject/opensearch:latest
environment:
OPENSEARCH_JAVA_OPTS: "-Xms1024m -Xmx1024m" # tamanho mínimo e máximo da heap Java, recomenda-se definir ambos para 50% da RAM do sistema
node.name: os03
discovery.seed_hosts: os01,os02,os03
cluster.initial_master_nodes: os01,os02,os03
plugins.security.ssl.transport.pemkey_filepath: certificates/os03/os03.key # caminho relativo
plugins.security.ssl.transport.pemcert_filepath: certificates/os03/os03.pem
plugins.security.ssl.http.pemkey_filepath: certificates/os03/os03.key
plugins.security.ssl.http.pemcert_filepath: certificates/os03/os03.pem
DISABLE_INSTALL_DEMO_CONFIG: "true"
JAVA_HOME: /usr/share/opensearch/jdk
bootstrap.memory_lock: "true" # junto com as configurações de memlock abaixo, desativa a troca
network.host: "0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- "./opensearch.yml:/usr/share/opensearch/config/opensearch.yml"
- "./internal_users.yml:/usr/share/opensearch/config/opensearch-security/internal_users.yml"
- "os-data3:/usr/share/opensearch/data"
- "./certs:/usr/share/opensearch/config/certificates:ro"
osdashboards:
restart: always
image: opensearchproject/opensearch-dashboards:latest
ports:
- 5601:5601
volumes:
- "./certs:/usr/share/opensearch-dashboards/config/certificates:ro"
- "./opensearch_dashboards.yml:/usr/share/opensearch-dashboards/config/opensearch_dashboards.yml"
environment:
OPENSEARCH_HOSTS: '["https://os01:9200","https://os02:9200","https://os03:9200"]' # deve ser uma string sem espaços quando especificada como uma variável de ambiente
DISABLE_INSTALL_DEMO_CONFIG: "true"
volumes:
os-data1:
os-data2:
os-data3:Salve e saia do arquivo ‘ docker-compose.yml ‘ quando terminar.
Com isso, você criará 4 contêineres/serviços para as implantações do OpenSearch. Abaixo estão informações detalhadas sobre cada contêiner.
- 3 contêineres OpenSearch os01, os02, e os03 - Isso será usado para criar o cluster OpenSearch. Esses contêineres são baseados na imagem ‘ opensearchproject/opensearch:latest ‘ e nas mesmas configurações ‘ opensearch.yml ‘ e ‘ internal_users.yml’.
- Um contêiner OpenSearch Dashboards ‘osdashboards’ é baseado na imagem ‘ opensearchproject/opensearch-dashboards:latest ‘ e está conectado a três hosts do OpenSearch os01, os02, e os03. Além disso, você desativará a configuração de demonstração no contêiner OpenSearch Dashboards.
- Todos os contêineres OpenSearch e OpenSearch Dashboards serão protegidos através de certificados TLS personalizados que estão disponíveis no diretório ‘ certs ‘.
- O contêiner OpenSearch exporá duas portas 9200 e 9600, e o contêiner OpenSearch Dashboards exporá a porta 5601.
Configurando OpenSearch e OpenSearch Dashboards
Neste passo, você criará uma nova configuração para o OpenSearch ‘opensearch.yml’ e os OpenSearch Dashboards ‘opensearch_dashbaords.yml’. No final, você deve garantir que todas as configurações e certificados necessários estejam disponíveis no diretório do projeto OpenSearch.
Abra o arquivo de configuração do OpenSearch ‘ opensearch.yml ‘ usando o seguinte comando do editor nano.
sudo nano opensearch.ymlAdicione as seguintes linhas ao arquivo. Certifique-se de alterar o caminho dos certificados CA e DN para ambos os certificados de admin e de nó. Com isso, você configurará um cluster OpenSearch com o nome ‘ os-cluster ‘.
cluster.name: os-cluster
network.host: 0.0.0.0
bootstrap.memory_lock: "true" # junto com as configurações de memlock abaixo, desativa a troca
plugins.security.allow_unsafe_democertificates: true
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemtrustedcas_filepath: certificates/ca/ca.pem
plugins.security.ssl.transport.enabled: true
plugins.security.ssl.transport.pemtrustedcas_filepath: certificates/ca/ca.pem
plugins.security.ssl.transport.enforce_hostname_verification: false
plugins.security.authcz.admin_dn:
- 'CN=ADMIN,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
- 'CN=os00,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os01,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os02,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os03,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os04,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os05,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os06,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
- 'CN=os07,O=HWDOMAIN,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]
cluster.routing.allocation.disk.threshold_enabled: false
opendistro_security.audit.config.disabled_rest_categories: NONE
opendistro_security.audit.config.disabled_transport_categories: NONESalve o arquivo ‘opensearch.yml’ e saia do editor quando terminar.

Em seguida, abra o arquivo de configuração dos OpenSearch Dashboards ‘ opensearch_dashboards.yml ‘ usando o comando do editor nano abaixo.
nano opensearch_dashboards.ymlAdicione as seguintes linhas ao arquivo. Certifique-se de alterar o nome de usuário e a senha dos OpenSearch Dashboards com os detalhes do usuário ‘ kibanaserver ‘ no arquivo ‘internal_users.yml**.
server.name: os_dashboards
server.host: "0.0.0.0"
opensearch.username: kibanaserver
opensearch.password: password
opensearch.requestHeadersWhitelist: [authorization, securitytenant]
opensearch_security.multitenancy.enabled: true
opensearch_security.multitenancy.tenants.preferred: [Private, Global]
opensearch_security.readonly_mode.roles: [kibana_read_only]
# Use esta configuração se você estiver executando opensearch-dashboards sem https
opensearch_security.cookie.secure: false
# Criptografe o tráfego entre o navegador e os OpenSearch-Dashboards
server.ssl.enabled: true
server.ssl.certificate: "/usr/share/opensearch-dashboards/config/certificates/os-dashboards/os-dashboards.pem"
server.ssl.key: "/usr/share/opensearch-dashboards/config/certificates/os-dashboards/os-dashboards.key"
# Criptografe o tráfego entre os OpenSearch-Dashboards e o Opensearch
opensearch.ssl.certificateAuthorities: ["/usr/share/opensearch-dashboards/config/certificates/ca/ca.pem"]
opensearch.ssl.verificationMode: fullSalve e saia do arquivo quando terminar.

Por último, execute o comando apt abaixo para instalar o pacote tree e verificar a lista de arquivos e diretórios da sua implantação do OpenSearch.
sudo apt install tree
tree .Você deve receber uma saída como esta.

Com isso, toda a preparação para implantar o OpenSearch via Docker está finalizada. Você está pronto para implantar o OpenSearch via Docker e Docker Compose.
Implantando o Cluster OpenSearch e os OpenSearch Dashboards
Antes de começar, certifique-se de que você está no diretório do projeto OpenSearch ‘ opensearch-project ‘. Em seguida, execute o seguinte comando ‘ docker compose ‘ para criar e iniciar a implantação do OpenSearch.
docker compose up -dVocê deve receber uma saída como esta - Existem 3 contêineres OpenSearch os01, os02, e os03 criados e iniciados. Além disso, o contêiner OpenSearch Dashboards ‘ osdashboards ‘ é criado e iniciado.

Verifique a lista de serviços/contêineres em execução no seu projeto OpenSearch através do seguinte comando.
docker compose psSe você ver que o ‘ STATUS ‘ está ‘ Up ‘, então o contêiner/serviço está em execução. Na seção ‘ PORTS ‘ você deve ver as portas expostas pelo contêiner para a máquina host.
Com o cluster OpenSearch em execução, você deve agora aplicar a nova configuração de usuário que você criou através do arquivo ‘ internal_users.yml ‘. Para conseguir isso, você pode executar o seguinte comando ‘ docker ‘. Além disso, certifique-se de esperar cerca de 30-60 segundos antes de executar este comando para garantir que o cluster OpenSearch esteja em execução.
O seguinte comando executará o script ‘ securityadmin.sh ‘ no contêiner/service ‘ os01 ‘ e aplicará novos usuários no seu cluster OpenSearch.
docker compose exec os01 bash -c "chmod +x plugins/opensearch-security/tools/securityadmin.sh && bash plugins/opensearch-security/tools/securityadmin.sh -cd config/opensearch-security -icl -nhnv -cacert config/certificates/ca/ca.pem -cert config/certificates/ca/admin.pem -key config/certificates/ca/admin.key -h localhost"Saída:

Em seguida, execute o comando abaixo para garantir que o contêiner esteja em execução. Então, você pode verificar a lista de portas abertas na máquina host Docker através do comando ss abaixo.
docker compose ps
ss -tulpnSaída - as portas 9200 e 9600 estão sendo usadas pelo cluster OpenSearch e a porta 5601 está sendo usada pelos OpenSearch Dashboards.

Por último, você pode verificar a autenticação no cluster OpenSearch através do nome de usuário e senha que você criou no arquivo ‘internal_users.yml’.
Faça uma autenticação como um usuário admin no cluster OpenSearch.
curl https://192.168.5.100:9200 -u admin:password -kSaída - A autenticação é bem-sucedida e você deve ver detalhes do software OpenSearch que você está usando atualmente em seu cluster.

Faça uma autenticação como um usuário kibanaserver no cluster OpenSearch.
curl https://192.168.5.100:9200 -u kibanaserver:password -kSaída - A autenticação é bem-sucedida e você deve ver detalhes do software OpenSearch que você está usando atualmente em seu cluster.

Com isso, você agora implantou o cluster OpenSearch e os OpenSearch Dashboards via Docker e Docker Compose. No próximo passo, você acessará sua implantação dos OpenSearch Dashboards e verificará a conexão entre os OpenSearch Dashboards e o cluster OpenSearch.
Além disso, quando você tiver um erro na sua implantação do OpenSearch, pode verificar os logs de cada contêiner através do comando ‘ docker compose ‘ abaixo.
Uso básico ‘ docker compose ‘ para verificar logs.
docker compose logs
docker compose logs SERVICEVerificando logs para contêineres/serviços específicos através do comando ‘ docker compose ‘.
docker compose logs osdashboards
docker compose logs os01
docker compose logs os02
docker compose logs os03Acessando os OpenSearch Dashboards
Abra seu navegador da web e visite o endereço IP do seu servidor seguido pela porta dos OpenSearch Dashboards ‘ 5601 ‘ (ou seja: https://192.168.5.100:5601/). Você deve obter a página de login dos OpenSearch Dashboards.
Insira o usuário ‘kibanaserver’ e a senha, em seguida, clique em ‘ Log in ‘.

Quando bem-sucedido, você deve obter a seguinte página. Clique em ‘ Explore on my own ‘ e você deve ver a página inicial dos OpenSearch Dashboards.

Com isso, você tem os OpenSearch Dashboards em execução e a autenticação está habilitada. Além disso, os OpenSearch Dashboards estão em execução sob conexões HTTPS seguras através dos certificados SSL/TLS que você gerou.
Em seguida, verifique a conexão entre os OpenSearch Dashboards e o cluster OpenSearch através da API OpenSearch.
Clique no menu à esquerda, vá para a seção Management e clique em ‘ Dev Tools ‘.
Agora insira a consulta ‘ GET / ‘ no console e clique no botão de play. Quando bem-sucedido, você deve ver a saída do lado direito com informações detalhadas sobre seu servidor OpenSearch. Além disso, você pode ver no canto superior direito o código HTTP ‘ 200 - OK ‘ que confirma que a consulta foi executada sem erro.

Insira outra consulta ‘ GET _cat/nodes?format=json&filter_path=ip,name ‘ para verificar os nós do OpenSearch que estão disponíveis no cluster OpenSearch. Você deve ver três nós diferentes no cluster OpenSearch, os01 com endereço IP 172.23.0.5, os02 com endereço IP ‘ 172.23.0.3 ‘, e os3 com endereço IP ‘ 172.23.0.2 ‘.

Isso confirma que os OpenSearch Dashboards estão conectados ao cluster OpenSearch.
Conclusão
Neste tutorial, você instalou o OpenSearch via Docker e Docker Compose no servidor Ubuntu 22.04. Você criou um Cluster OpenSearch com 3 contêineres diferentes no Docker. Você também protegeu o OpenSearch com certificados TLS, habilitou autenticação e autorização, e configurou usuários no OpenSearch. Além disso, você também configurou e otimizou um servidor Linux Ubuntu para implantar o OpenSearch.
Você também instalou os OpenSearch Dashboards via Docker e Docker Compose. Em seguida, você também conectou o contêiner dos OpenSearch Dashboards ao Cluster OpenSearch.
Com essa configuração, você agora pode explorar mais sobre o OpenSearch, adicionar algumas integrações ao seu OpenSearch, configurar autenticações adicionais e muito mais. Você pode aprender mais sobre tudo isso no site oficial da documentação do OpenSearch.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.