OpenSearch · 29 min read · Oct 12, 2025

Como Instalar o OpenSearch no Debian 12

OpenSearch é um fork de código aberto do Elasticsearch e Kibana desenvolvido pela Amazon. É um mecanismo de busca em tempo real, distribuído e escalável que permite busca de texto completo, bem como análises. É usado para indexar e pesquisar grandes quantidades de dados. É comumente implantado ao lado do OpenSearch Dashboards (um fork do Kibana), um poderoso painel de visualização de dados para o OpenSearch. O OpenSearch Dashboards permite que você explore os dados de log do OpenSearch e crie painéis e consultas para obter insights sobre sua aplicação.

Este tutorial mostrará como instalar o OpenSearch em um servidor Debian 12. Você também aprenderá como proteger sua instalação com certificados TLS personalizados e habilitar a autenticação no OpenSearch.

Pré-requisitos

  • Um servidor rodando Debian 12 com um mínimo de 4GB de RAM.

  • Um usuário não-root com privilégios sudo.

  • O Firewall descomplicado (UFW) está habilitado e em execução.

  • Um Nome de Domínio Totalmente Qualificado (FQDN) como opensearch.example.com apontando para seu servidor. Isso é benéfico se você quiser servir o OpenSearch Dashboards via SSL usando um servidor proxy.

  • Tudo está atualizado. $ sudo apt update && sudo apt upgrade

  • Alguns pacotes essenciais são necessários para o tutorial e o Craft CMS funcionar. Alguns desses já estarão no seu servidor. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Passo 1 - Configurar o Firewall

O primeiro passo antes de instalar qualquer pacote é configurar o firewall para permitir conexões HTTP e HTTPS.

Verifique o status do firewall.

$ sudo ufw status

Você deve ver algo como o seguinte.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Permita as portas HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Verifique o status novamente para confirmar.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Passo 2 - Preparar o Sistema

Antes de instalar o OpenSearch, precisamos preparar e otimizar nosso sistema para ele. Existem várias etapas envolvidas, que incluem desabilitar qualquer memória swap se você a tiver, definir o número de mapas de memória para seu sistema e configurar o nome do host do sistema.

Primeiro, verifique se você tem memória swap habilitada.

$ free -m

Se você tiver swap habilitado, então você deve ver uma saída semelhante.

               total        used        free      shared  buff/cache   available
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Execute os seguintes comandos para desabilitar o espaço swap permanentemente.

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstab

Verifique a memória swap novamente e deve mostrar o seguinte.

               total        used        free      shared  buff/cache   available
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

O OpenSearch usa um diretório mapfs por padrão para armazenar seus índices. Os limites do sistema operacional padrão sobre contagens de nmap são muito baixos, o que pode causar erros de falta de memória.

Verifique o valor existente para a variável vm.max_map_count.

$ sysctl -n vm.max_map_count
65530

Para aumentar o número de mapas de memória usados por cada processo, execute o seguinte comando.

$ sudo sysctl -w vm.max_map_count=262144

Isso funcionará apenas até que o sistema seja reiniciado. Para tornar esse valor permanente, adicione a linha vm.max_map_count=262144 no arquivo /etc/sysctl.conf usando o seguinte comando.

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Você pode tornar a mudança permanente reiniciando o sistema ou executando o seguinte comando.

$ sudo sysctl -p

A etapa final é configurar o nome do host. Dependendo de onde você está hospedando seu servidor, algumas empresas de nuvem permitem que você defina seu nome do host diretamente através de seu painel de controle. No entanto, é melhor fazê-lo via terminal.

Execute o seguinte comando para definir o nome do host.

$ sudo hostnamectl set-hostname opensearch

Adicione o FQDN (Nome de domínio totalmente qualificado) ao arquivo /etc/hosts. Aqui, mapeamos o nome do host opensearch para o nome de domínio opensearch.example.com e o apontamos para o endereço IP do servidor. Substitua no comando abaixo pelo endereço IP do seu servidor.

$ echo "  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

Verifique o nome do host e o FQDN usando os seguintes comandos.

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Isso finaliza o processo de otimização do nosso sistema para trabalhar com o OpenSearch.

Passo 3 - Instalar o OpenSearch

Importe a chave GPG do OpenSearch usada para assinar o pacote de instalação.

$  curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Crie o arquivo de repositório APT do OpenSearch.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Verifique todas as versões disponíveis do OpenSearch.

$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64

A versão mais recente do OpenSearch v2.12.0 exige que você defina a senha do demo admin antes da instalação ou ela falhará.

Você pode instalar a versão mais recente do OpenSearch usando o seguinte comando. Podemos definir a senha do demo admin usando a variável de ambiente no próprio comando de instalação. Escolha uma senha forte.

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch

Se você vir o seguinte aviso durante a instalação, pode ignorá-lo com segurança.

......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......

Ou você pode instalar uma versão específica.

$ sudo apt install opensearch=2.11.1

Recarregue o daemon de serviço.

$ sudo systemctl daemon-reload

Habilite o serviço OpenSearch.

$ sudo systemctl enable opensearch

Inicie o serviço OpenSearch.

$ sudo systemctl start opensearch

Verifique o status do serviço OpenSearch.

$ sudo systemctl status opensearch

Você deve obter a seguinte saída.

? opensearch.service - OpenSearch
     Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago
       Docs: https://opensearch.org/
   Main PID: 31109 (java)
      Tasks: 75 (limit: 4652)
     Memory: 1.3G
        CPU: 1min 3.128s
     CGroup: /system.slice/opensearch.service
             ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...

Passo 4 - Testar o OpenSearch

Antes de prosseguir, vamos verificar se a instalação está funcionando corretamente. Execute o seguinte comando para verificar se o OpenSearch está funcionando como pretendido.

$ curl -X GET https://localhost:9200 -u 'admin:' --insecure

Você deve obter uma saída semelhante.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Consulte o endpoint de plugins do OpenSearch para ver a lista de plugins disponíveis.

$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure

Você também pode usar o seguinte comando para o mesmo.

$ /usr/share/opensearch/bin/opensearch-plugin list

Você deve obter uma saída semelhante.

name       component                            version
opensearch opensearch-alerting                  2.12.0.0
opensearch opensearch-anomaly-detection         2.12.0.0
opensearch opensearch-asynchronous-search       2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs             2.12.0.0
opensearch opensearch-flow-framework            2.12.0.0
opensearch opensearch-geospatial                2.12.0.0
opensearch opensearch-index-management          2.12.0.0
opensearch opensearch-job-scheduler             2.12.0.0
opensearch opensearch-knn                       2.12.0.0
opensearch opensearch-ml                        2.12.0.0
opensearch opensearch-neural-search             2.12.0.0
opensearch opensearch-notifications             2.12.0.0
opensearch opensearch-notifications-core        2.12.0.0
opensearch opensearch-observability             2.12.0.0
opensearch opensearch-performance-analyzer      2.12.0.0
opensearch opensearch-reports-scheduler         2.12.0.0
opensearch opensearch-security                  2.12.0.0
opensearch opensearch-security-analytics        2.12.0.0
opensearch opensearch-skills                    2.12.0.0
opensearch opensearch-sql                       2.12.0.0

Você pode instalar plugins adicionais usando o seguinte comando.

$ /usr/share/opensearch/bin/opensearch-plugin install 

Você pode encontrar a lista de plugins disponíveis do OpenSearch em seu site oficial.

Passo 5 - Configurar o OpenSearch

As configurações padrão do OpenSearch não são adequadas para um ambiente de produção. Por padrão, o OpenSearch não está vinculado a uma interface de rede e não é acessível externamente. Além disso, nomes de usuário e senhas padrão estão sendo usados, o que pode causar problemas de segurança se usados diretamente em um ambiente de produção.

O OpenSearch armazena sua configuração no arquivo /etc/opensearch/opensearch.yml. Abra-o para edição.

$ sudo nano /etc/opensearch/opensearch.yml

Encontre a linha #network.host: 192.168.0.1 e descomente-a removendo o hash (#) na frente dela e alterando seu valor como mostrado. Isso vincula o OpenSearch a todas as interfaces disponíveis. Você também pode optar por inserir um IP específico para vinculá-lo a uma interface específica.

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0

Adicione as seguintes linhas no final do arquivo.

# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Como estamos instalando em um único servidor, definimos discovery.type como single-node. Definir plugins.security.disabled como false habilita o plugin de segurança do OpenSearch.

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Também precisamos especificar tamanhos iniciais e máximos de heap JVM (Java Virtual Memory). Essa configuração depende do tamanho da RAM do seu servidor. Por exemplo, estamos usando um servidor com 4GB de RAM, então estamos definindo o tamanho do heap para 3GB.

Crie e abra o heapsize.options no diretório /etc/opensearch/jvm.options.d para edição. Ele substituirá o valor padrão definido no arquivo /etc/opensearch/jvm.options.

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Adicione as seguintes linhas a ele.

-Xms3g
-Xmx3g

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o serviço OpenSearch para implementar as mudanças.

$ sudo systemctl restart opensearch

Você pode verificar o tamanho atual do heap e a memória máxima usando o seguinte comando.

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure

Você deve obter a seguinte saída.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Passo 6 - Configurar TLS para o OpenSearch

Aqui estaremos gerando certificados para proteger o OpenSearch. Os certificados TLS fornecem segurança permitindo que os clientes confirmem a identidade dos hosts e criptografem o tráfego entre um cliente e o host. Geraremos os seguintes certificados:

  1. Certificados CA Raiz - Estes são os certificados principais que assinarão todos os outros certificados.
  2. Certificados de Admin - Estes certificados são usados para obter direitos elevados para realizar tarefas administrativas relacionadas ao plugin de segurança.
  3. Certificados de Nó - Estes certificados são usados para comunicação entre um nó e o cliente.

Todos os certificados do OpenSearch são armazenados no diretório /etc/opensearch. O primeiro passo é remover os certificados padrão definidos durante a instalação do OpenSearch.

Mude para o diretório do OpenSearch.

$ cd /etc/opensearch

Remova os certificados padrão.

$ sudo rm -f *.pem

Abra o arquivo de configuração do OpenSearch para edição.

$ sudo nano opensearch.yml

Comente o seguinte código na parte inferior do arquivo colocando um hash na frente de cada linha dentro da seção Configuração de Demonstração de Segurança do OpenSearch como mostrado abaixo.

######## Início da Configuração de Demonstração de Segurança do OpenSearch ########
# WARNING: revise todas as linhas abaixo antes de entrar em produção
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#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]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
#  .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
#  .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
#  .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
#  .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
#  .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
#  .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
#  .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
#  .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## Fim da Configuração de Demonstração de Segurança do OpenSearch ########

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Em seguida, crie um diretório para armazenar os certificados dentro do diretório /etc/opensearch.

$ sudo mkdir /etc/opensearch/certs

Altere a permissão do diretório para o usuário atualmente logado para evitar usar sudo ao gerar os certificados.

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Mude para o diretório de certificados.

$ cd /etc/opensearch/certs

Gerar Certificados Raiz

Gere uma chave privada para o certificado raiz.

$ openssl genrsa -out root-ca-key.pem 2048

Gere um certificado CA raiz autoassinado. Estamos usando o parâmetro -subj para fornecer informações que estão embutidas no certificado. Se você não usar a flag -subj, será solicitado que você forneça todas essas informações.

$ openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Você pode alterar as informações para se adequar ao seu host específico.

As variáveis no parâmetro -subj significam o seguinte.

C = Nome do País (código de 2 letras), ST = Nome do Estado ou Província (Nome completo), L = Nome da Localidade (ex: cidade), O = Nome da Organização, OU = Nome da Unidade Organizacional (ex: seção), CN = Nome Comum (ex: FQDN do servidor)

Seu certificado raiz agora está ativo.

Gerar Certificados de Admin

Gere a chave privada para o certificado Admin usando o seguinte comando.

$ openssl genrsa -out admin-key-temp.pem 2048

Converta a chave privada para o formato PKCS#8 para uso em Java usando um algoritmo compatível com PKCS#12 (3DES).

$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

Gere o CSR (Certificate Signing Request) do Admin a partir da chave privada. Como este certificado não está vinculado a nenhum host e é usado para autenticar acesso elevado, estamos usando um valor de A para o Nome Comum (CN).

$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Assine o CSR do Admin com o certificado raiz e a chave privada que você acabou de criar.

$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

Gerar Certificados de Nó

Gere uma chave privada para o certificado do nó.

$ openssl genrsa -out node1-key-temp.pem 2048

Converta a chave privada do nó para o formato PKCS#8.

$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem

Crie um novo CSR para o certificado do nó a partir da chave privada. Certifique-se de alterar o valor da variável CN para o nome do host do seu nó. Este certificado está vinculado aos seus hosts e deve corresponder ao nome do host ou ao endereço IP do nó.

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Crie um arquivo de extensão SAN (Subject Alternative Name) que contenha o nome do host do nó ou FQDN ou endereço IP.

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

Assine o CSR do certificado do nó com o certificado raiz e a chave privada que você acabou de criar.

$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Preparando Certificados para Instalação

Remova qualquer certificado temporário, CSR e o arquivo de extensão SAN.

$ rm -f *temp.pem *csr *ext

Em seguida, instalaremos o certificado CA raiz no servidor. Para isso, converta o certificado CA raiz para o formato .crt.

$ openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Copie o arquivo root-ca.crt para o diretório /usr/local/share/ca-certificates/.

$ sudo cp root-ca.crt /usr/local/share/ca-certificates/

Adicione o certificado CA raiz ao seu servidor Debian usando o seguinte comando.

$ sudo update-ca-certificates

Você deve ver a seguinte saída ( 1 added) confirmando que o certificado CA raiz foi adicionado ao seu sistema.

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Altere a propriedade do diretório de volta para o usuário opensearch.

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Altere a permissão no diretório para 0700.

$ sudo chmod 0700 /etc/opensearch/certs

Altere a permissão nos certificados para 0600.

$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt

Passo 7 - Instalar TLS no OpenSearch

Agora que todos os certificados foram gerados e configurados, é hora de instalar e adicionar os certificados à sua instalação do OpenSearch.

O primeiro passo é criar um script bash que adicionará todos os certificados criados e as configurações do plugin de segurança TLS ao arquivo de configuração do OpenSearch (/etc/opensearch/opensearch.yml).

Crie um arquivo chamado add-opensearch-tls.sh e abra-o para edição.

$ cd ~
$ nano add-opensearch-tls.sh

Cole o seguinte código nele.

#! /bin/bash

# Antes de executar este script, certifique-se de substituir o CN no 
# nome distinto do nó por um registro DNS A real.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Torne o arquivo executável.

$ chmod +x add-opensearch-tls.sh

Execute o script.

$ ./add-opensearch-tls.sh

Você deve obter a seguinte saída.

plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,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"]

Abra o arquivo /etc/opensearch/opensearch.yml para verificar se suas configurações foram aplicadas.

$ sudo nano /etc/opensearch/opensearch.yml

Role para o final do arquivo e você deve ver o seguinte.

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,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"]

Uma vez satisfeito, salve o arquivo pressionando Ctrl + X.

Passo 8 - Criando Usuário OpenSearch

Neste passo, removeremos todos os usuários de demonstração, exceto o usuário admin, e substituiremos a senha padrão do admin usando um script.

Mude para o diretório de ferramentas do plugin de segurança do OpenSearch.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Execute o script hash.sh para gerar uma nova senha.

$ ./hash

O script falhará e você receberá o seguinte erro porque o caminho para o executável Java (JDK) não foi definido.

************************************************************************
 Esta ferramenta será descontinuada na próxima versão principal do OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
WARNING: nor OPENSEARCH_JAVA_HOME nor JAVA_HOME is set, will use 
./hash.sh: line 35: java: command not found

Execute o comando novamente declarando a variável de ambiente OPENSEARCH_JAVA_HOME com a localização do JDK.

$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Você obterá uma saída semelhante.

**********************************************************************
 Esta ferramenta será descontinuada na próxima versão principal do OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
[Password:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

Ele gerará o hash da senha que precisaremos mais tarde.

Abra o arquivo de configuração de usuários do OpenSearch internal_users.yml no diretório /etc/opensearch/opensearch-security/ para edição.

$ sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Comente todos os usuários de demonstração adicionando hash na frente deles como mostrado.

---
# 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

## Usuários de demonstração

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reserved: true
#  backend_roles:
#  - "admin"
#  description: "Usuário admin de demonstração"

#anomalyadmin:

Adicione o usuário admin com o hash que você gerou acima como mostrado.

---
# 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$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reserved: true
  backend_roles:
  - "admin"
  description: "Usuário admin"

## Usuários de demonstração

#admin:

Uma vez terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Agora que os certificados TLS estão instalados e os usuários de demonstração foram removidos ou atribuídos novas senhas, é hora de aplicar as alterações de configuração. Para aplicar as alterações, invocaremos o script securityadmin.sh dentro do diretório /usr/share/opensearch/plugins/opensearch-security/tools. O script requer que o serviço OpenSearch esteja em execução.

Reinicie o serviço OpenSearch.

$ sudo systemctl restart opensearch

Mude para o diretório /usr/share/opensearch/plugins/opensearch-security/tools.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Execute o script usando o seguinte comando.

$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

O plugin de segurança armazena sua configuração - incluindo usuários, permissões, funções e configurações de backend em um índice de sistema no cluster OpenSearch. Armazenar essas configurações no cluster permite que você altere as configurações sem reiniciar o cluster e elimina a necessidade de editar o arquivo de configuração em cada nó. Isso é realizado executando o script securityadmin.sh.

  • A opção -cd especifica onde os arquivos de configuração do plugin de segurança estão localizados.
  • A opção -icl ( --ignore-clustername) informa ao plugin de segurança para fazer o upload da configuração independentemente do nome do cluster. Você também pode especificar o nome do cluster em vez de usar a opção -cn ( --clustername).
  • Como os certificados são autoassinados, usamos a opção -nhnv ( --disable-host-name-verification).
  • As opções --cacert, --cert e --key definem a localização do certificado raiz, do certificado admin e da chave privada para o certificado admin. Se a chave privada tiver uma senha, você pode defini-la usando a opção -keypass.

Você pode aprender mais sobre a configuração do plugin de segurança na documentação do OpenSearch.

Você deve ter obtido uma saída semelhante à mostrada abaixo com o comando acima.

**********************************************************************
 Esta ferramenta será descontinuada na próxima versão principal do OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
************************************************************************
Security Admin v7
Will connect to opensearch:9200 ... done
Connected as "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
OpenSearch Version: 2.12.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /etc/opensearch/opensearch-security/
Will update '/config' with /etc/opensearch/opensearch-security/config.yml 
   SUCC: Configuration for 'config' created or updated
Will update '/roles' with /etc/opensearch/opensearch-security/roles.yml 
   SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with /etc/opensearch/opensearch-security/roles_mapping.yml 
   SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with /etc/opensearch/opensearch-security/internal_users.yml 
   SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with /etc/opensearch/opensearch-security/action_groups.yml 
   SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with /etc/opensearch/opensearch-security/tenants.yml 
   SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with /etc/opensearch/opensearch-security/nodes_dn.yml 
   SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with /etc/opensearch/opensearch-security/whitelist.yml 
   SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with /etc/opensearch/opensearch-security/audit.yml 
   SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with /etc/opensearch/opensearch-security/allowlist.yml 
   SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success

Verifique as novas credenciais usando o seguinte comando.

Durante o teste anterior, direcionamos solicitações para localhost. Agora que os certificados TLS estão configurados e os novos certificados se referem ao registro DNS real do host, as solicitações para localhost falharão na verificação do CN, e o certificado será considerado inválido. Portanto, adicione seu registro DNS real no comando abaixo para verificar.

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Você deve ver a seguinte resposta.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Passo 9 - Instalar OpenSearch Dashboards

Como já instalamos o OpenSearch, podemos pular a etapa de importação da chave GPG do OpenSearch.

Para instalar os dashboards do OpenSearch, execute o seguinte comando para criar um repositório APT para ele.

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Atualize a lista de repositórios do sistema.

$ sudo apt update

Liste todas as versões disponíveis dos dashboards do OpenSearch.

$ sudo apt list -a opensearch-dashboards

Você deve ver uma saída semelhante.

Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64

Instale a versão mais recente do OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards

Ou instale uma versão específica do OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards=2.12.0

A versão dos dashboards do OpenSearch e do OpenSearch deve ser a mesma, caso contrário, você pode enfrentar vários problemas.

Recarregue o daemon de serviço.

$ sudo systemctl daemon-reload

Habilite o serviço OpenSearch Dashboards.

$ sudo systemctl enable opensearch-dashboards

Inicie o serviço OpenSearch Dashboards.

$ sudo systemctl start opensearch-dashboards

Verifique o status do serviço OpenSearch Dashboards.

$ sudo systemctl status opensearch-dashboards

Você deve ver a seguinte saída.

? opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago
   Main PID: 7098 (node)
      Tasks: 11 (limit: 9484)
     Memory: 175.4M
        CPU: 5.389s
     CGroup: /system.slice/opensearch-dashboards.service
             ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".

Passo 10 - Configurar OpenSearch Dashboards

Os dashboards do OpenSearch armazenam sua configuração no arquivo /etc/opensearch-dashboards/opensearch_dashboards.yml. Abra-o para edição.

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Encontre a linha # server.host: "localhost" e descomente-a removendo o hash na frente dela e alterando seu valor como mostrado.

# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: 0.0.0.0

Definir o valor de server.host como 0.0.0.0 vincula o OpenSearch Dashboard a qualquer IP externo, tornando-o acessível pela Web. Se você quiser servir os Dashboards via SSL usando um proxy reverso, deixe este valor inalterado.

Role para baixo para encontrar a seguinte seção.

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Altere os valores conforme configurado para nossa instalação do OpenSearch.

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: 
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Uma vez terminado, salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Reinicie o serviço OpenDashboards.

$  sudo systemctl restart opensearch-dashboards

Abra a porta 5601 no firewall UFW.

$ sudo ufw allow 5601

Abra a URL http://:5601 ou http://opensearch.example.com:5601 para lançar o site do OpenSearch Dashboards.

Login do OpenSearch Dashboards

Se você estiver satisfeito em acessar o OpenSearch Dashboards via HTTP e com um número de porta na URL, pode parar aqui. No entanto, é melhor servir os Dashboards via SSL. Para isso, instalaremos o Nginx como um proxy reverso e serviremos SSL através dele.

Passo 11 - Instalar Nginx

O Debian 12 vem com uma versão mais antiga do Nginx. Você precisa baixar o repositório oficial do Nginx para instalar a versão mais recente.

Importe a chave de assinatura do Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Adicione o repositório para a versão principal do Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Atualize os repositórios do sistema.

$ sudo apt update

Instale o Nginx.

$ sudo apt install nginx

Verifique a instalação. Em sistemas Debian, o seguinte comando funcionará apenas com sudo.

$ sudo nginx -v
nginx version: nginx/1.25.4

Inicie o servidor Nginx.

$ sudo systemctl start nginx

Verifique o status do serviço.

$ sudo systemctl status nginx
? nginx.service - nginx - servidor web de alto desempenho
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago
       Docs: https://nginx.org/en/docs/
    Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 3977 (nginx)
      Tasks: 3 (limit: 9484)
     Memory: 2.7M
        CPU: 9ms
     CGroup: /system.slice/nginx.service
             ??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??3978 "nginx: worker process"
             ??3979 "nginx: worker process"

Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - servidor web de alto desempenho...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - servidor web de alto desempenho.

Passo 12 - Instalar SSL

Precisamos instalar o Certbot para gerar o certificado SSL. Você pode instalar o Certbot usando o repositório do Debian ou pegar a versão mais recente usando a ferramenta Snapd. Estaremos usando a versão Snapd.

O Debian 12 não vem com o Snapd instalado. Instale o pacote Snapd.

$ sudo apt install snapd

Execute os seguintes comandos para garantir que sua versão do Snapd esteja atualizada.

$ sudo snap install core && sudo snap refresh core

Instale o Certbot.

$ sudo snap install --classic certbot

Use o seguinte comando para garantir que o comando Certbot possa ser executado criando um link simbólico para o diretório /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifique se o Certbot está funcionando corretamente.

$ certbot --version
certbot 2.9.0

Execute o seguinte comando para gerar um Certificado SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

O comando acima fará o download de um certificado para o diretório /etc/letsencrypt/live/craftcms.example.com em seu servidor.

Gere um certificado de grupo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Verifique o serviço do agendador de renovação do Certbot.

$ sudo systemctl list-timers

Você encontrará snap.certbot.renew.service como um dos serviços agendados para ser executado.

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
Sat 2024-03-02 16:25:00 UTC 3h 27min left  -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left       Sat 2024-03-02 06:29:02 UTC 6h ago    apt-daily.timer              apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left       -                           -         dpkg-db-backup.timer         dpkg-db-backup.service
.....

Faça um teste do processo para verificar se a renovação do SSL está funcionando corretamente.

$ sudo certbot renew --dry-run

Se você não vir erros, está tudo pronto. Seu certificado será renovado automaticamente.

Passo 13 - Configurar Nginx

Abra o arquivo /etc/nginx/nginx.conf para edição.

$ sudo nano /etc/nginx/nginx.conf

Adicione a seguinte linha antes da linha include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Crie e abra o arquivo /etc/nginx/conf.d/opensearch.conf para edição.

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Cole o seguinte código nele. Substitua opensearch.example.com pelo seu nome de domínio.

server {

    listen 443 ssl;
    listen [::]:443 ssl;

    http2 on;
    http3 on;
    quic_retry on;

    server_name opensearch.example.com;

    access_log  /var/log/nginx/opensearch.access.log;
    error_log   /var/log/nginx/opensearch.error.log;

    ssl_certificate      /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_early_data on;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://localhost:5601;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Salve o arquivo pressionando Ctrl + X e digitando Y quando solicitado.

Verifique sua configuração do Nginx.

$ sudo nginx -t

Reinicie o servidor Nginx.

$ sudo systemctl restart nginx

Visite https://opensearch.example.com em seu navegador para lançar os Dashboards do OpenSearch.

Passo 14 - Acessar e usar os Dashboards do OpenSearch

Se você usou o Nginx, acesse os Dashboards via a URL https://opensearch.example.com ou use http://opensearch.example.com:5601 e você deve obter a página de login.

Credenciais de Login do OpenSearch Dashboards

Digite admin e a senha personalizada do admin que você configurou para o OpenSearch no passo 4 e clique no botão Log in para prosseguir.

Página Adicionar Dados do OpenSearch Dashboards

Clique no botão Add data para começar a adicionar dados diretamente ou clique no link Explore on my own se você quiser navegar primeiro. Vamos navegar primeiro e isso deve levá-lo a um pop-up que fala sobre o modo escuro do OpenSearch Dashboards.

Pop-up de Tema do OpenSearch Dashboards

Clique no botão Dismiss para prosseguir. Em seguida, você será solicitado a escolher um inquilino.

Tela de Seleção de Inquilino do OpenSearch Dashboards

Inquilinos nos Dashboards do OpenSearch são espaços para salvar padrões de índice, visualizações, painéis e outros objetos dos Dashboards do OpenSearch. Cada usuário pode criar vários inquilinos para múltiplos usos. Inquilinos são úteis para compartilhar seu trabalho com segurança com outros usuários dos Dashboards do OpenSearch. O OpenSearch oferece a opção de escolher entre três opções.

  • Global - Este inquilino é compartilhado entre todos os usuários dos Dashboards do OpenSearch.
  • Privado - Este inquilino é exclusivo para cada usuário e não pode ser compartilhado.
  • Personalizado - Administradores podem criar inquilinos personalizados e atribuí-los a funções específicas. Uma vez criados, você pode usar esses inquilinos para fornecer espaços a um conjunto específico de usuários.

Por enquanto, vamos ficar com a opção padrão de um inquilino Privado. Clique no botão Confirm para prosseguir. Você será recebido com a seguinte página.

Página Inicial do OpenSearch Dashboards

Em seguida, verificaremos a conexão entre o OpenSearch e os Dashboards do OpenSearch.

Clique no botão Dev Tools no canto superior direito e você verá um mini pop-up sobre a interface do console para os Dashboards do OpenSearch.

Pop-up do Console de Ferramentas de Desenvolvimento do OpenSearch Dashboards

Clique no botão Dismiss, insira a consulta GET / no console à esquerda e clique no pequeno botão de play no meio. Você deve ver a seguinte saída à direita.

Verificação de Conexão do Console do OpenSearch Dashboards

Isso confirma que os Dashboards do OpenSearch estão recebendo dados do OpenSearch e ambos estão funcionando bem. Você pode começar a adicionar dados a partir daqui.

Conclusão

Isso conclui o tutorial sobre como instalar o OpenSearch em um servidor Debian 12. Se você tiver alguma dúvida, poste nos comentários abaixo.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.