Guia de tecnologias

Instalar OpenSearch e OpenSearch Dashboards no Rocky Linux 9

8 min read Busca e Análise Atualizado 30 Sep 2025
Instalar OpenSearch e Dashboards no Rocky Linux 9
Instalar OpenSearch e Dashboards no Rocky Linux 9

Visão geral rápida

OpenSearch é um mecanismo de busca e suíte de análise open source (fork de Elasticsearch/Kibana) com recursos para segurança empresarial, alertas, SQL e mais. OpenSearch Dashboards é a interface de visualização (fork do Kibana). Este artigo cobre uma instalação single-node em Rocky Linux 9, incluindo endurecimento TLS e autenticação via plugin de segurança.

Important: Este tutorial usa exemplos com hostname node-rock1 e IP 192.168.5.25. Substitua pelos seus valores. Muitos comandos exigem sudo.

Intenção e variantes de uso

  • Instalar OpenSearch via RPM em Rocky Linux 9.
  • Variantes relacionadas: instalar OpenSearch Dashboards; proteger OpenSearch com TLS; configurar usuários e permissões; ajustar JVM e requisitos de sistema.

Índice

  • Pré-requisitos
  • Preparar o sistema
  • Instalar OpenSearch (repositório RPM)
  • Configurar OpenSearch (single-node, heap JVM)
  • Gerar e aplicar certificados TLS (CA, admin, node)
  • Configurar usuários e aplicar securityadmin
  • Instalar e configurar OpenSearch Dashboards
  • Acessar e testar Dashboards
  • Troubleshooting e erros comuns
  • Checklist de segurança e operação
  • Runbook de incidentes e rollback
  • Glossário e referências rápidas

Pré-requisitos

  • Servidor com Rocky Linux 9 (ex.: node-rock1, IP 192.168.5.25). Recomendado mínimo 4 GB de RAM; exemplo usa 8 GB.
  • Usuário não-root com privilégios sudo/root.
  • SELinux em modo permissivo (ou ajuste as políticas conforme necessário).
  • Conectividade de rede entre cliente e servidor para as portas 9200 (OpenSearch) e 5601 (Dashboards).

Notas: Se você planeja um cluster de produção, siga práticas de alta disponibilidade e ajuste recursos (RAM, CPU, discos NVMe) conforme a carga.

Preparar o sistema

  1. Configure hostname e /etc/hosts:
sudo hostnamectl set-hostname node-rock1
echo '192.168.5.25 node-rock1.hwdomain.lan node-rock1' | sudo tee -a /etc/hosts

Efetue logout/login e verifique:

sudo hostname -f

Configurar FQDN do host

  1. Desabilite swap (recomendado para Elasticsearch/OpenSearch):
sudo sed -i '/ swap / s/^\  *\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
free -m

A saída deve mostrar Swap = 0.

Swap desabilitado

  1. Ajuste vm.max_map_count para índices e mapeamentos em memória:
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/max_map_count

Valor vm.max_map_count definido

Notas: O valor 262144 é um padrão recomendado para workloads típicos de elasticsearch/opensearch. Ajuste quando necessário.

Instalar OpenSearch

Adicione o repositório oficial e instale o pacote:

sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
sudo dnf repolist
sudo dnf info opensearch
sudo dnf install opensearch -y

Durante a instalação será solicitado aceitar a chave GPG do repositório.

Verificar repositórios OpenSearch

Após instalar, recarregue systemd e habilite o serviço:

sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch
sudo systemctl status opensearch

A saída deve indicar active (running) e enabled.

Iniciar e habilitar OpenSearch

Configurar OpenSearch (single-node)

Arquivos principais: /etc/opensearch/opensearch.yml e /etc/opensearch/jvm.options

Edite opensearch.yml:

sudo nano /etc/opensearch/opensearch.yml

Adicione/ajuste estas chaves mínimas para single-node:

network.host: 192.168.5.25
discovery.type: single-node
plugins.security.disabled: false

Salve e feche.

Ajuste o heap Java conforme RAM disponível (ex.: 2 GB se tiver 8 GB total):

sudo nano /etc/opensearch/jvm.options
# Altere ou confirme as linhas abaixo
-Xms2g
-Xmx2g

Reinicie o serviço para aplicar mudanças:

sudo systemctl restart opensearch
ss -tulpn | grep 9200 || sudo ss -tulpn

Isso fará o OpenSearch escutar por padrão na porta 9200.

Configurar OpenSearch

Segurança: gerar certificados TLS (CA, admin, node)

Para produção, a criptografia transport (entre nós) e HTTP (cliente<->servidor) deve estar habilitada. Vamos criar uma CA, uma cert admin (para securityadmin.sh) e um certificado para o nó.

Crie diretório de certificados:

sudo mkdir -p /etc/opensearch/certs
cd /etc/opensearch/certs

Remova certificados demo caso existam:

sudo rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem} || true

Criar Root CA

openssl genrsa -out root-ca-key.pem 2048
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

Arquivos: root-ca-key.pem, root-ca.pem

Criar certificado admin (para operações de segurança)

openssl genrsa -out admin-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

Criar certificado do nó

openssl genrsa -out node-rock1-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in node-rock1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node-rock1-key.pem
openssl req -new -key node-rock1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=node-rock1.hwdomain.lan" -out node-rock1.csr
echo 'subjectAltName=DNS:node-rock1.hwdomain.lan' > node-rock1.ext
openssl x509 -req -in node-rock1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node-rock1.pem -days 730 -extfile node-rock1.ext

Remova arquivos temporários e converta root-ca para formato CRT para trust system:

rm *temp.pem *csr *ext || true
openssl x509 -outform der -in root-ca.pem -out root-ca.crt
sudo cp root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Ajuste permissões e propriedade:

sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crt
ls -l /etc/opensearch/certs

Listar certificados criados

Notas: A inclusão do root-ca.crt nos anchors do sistema facilita conexões TLS confiáveis por ferramentas locais.

Adicionar TLS e configurações do plugin security no opensearch.yml

Crie um script simples para anexar as linhas necessárias (ou edite o arquivo manualmente):

sudo tee /usr/local/bin/opensearch-add-tls.sh > /dev/null <<'SH'
#! /bin/bash
set -e
CONF=/etc/opensearch/opensearch.yml
sudo tee -a $CONF <

Verifique /etc/opensearch/opensearch.yml para as novas linhas.

Adicionar configuração TLS

Reinicie OpenSearch:

sudo systemctl restart opensearch

Criar usuários internos e aplicar configurações de segurança

Gere hashes de senha usando a ferramenta fornecida:

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
# insira senha e copie o hash

Repita para gerar o hash do usuário kibanaserver.

Edite /etc/opensearch/opensearch-security/internal_users.yml e substitua usuários padrão por:

admin:
  hash: "$2y$..."   # substitua pelo seu hash
  reserved: true
  backend_roles:
  - "admin"
  description: "Admin user"

kibanaserver:
  hash: "$2y$..."   # substitua pelo hash do kibanaserver
  reserved: true
  description: "OpenSearch Dashboards user"

Reinicie e aplique as configurações com securityadmin.sh:

sudo systemctl restart opensearch
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.5.25 -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

Verifique via curl (substitua usuário/senha):

curl https://node-rock1:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

Resultados mostram informações do cluster e autenticação bem-sucedida.

Verificar usuário admin

Verificar usuário kibanaserver

Instalar OpenSearch Dashboards

OBS: Repositório de Dashboards pode usar SHA1 legado; ajuste as políticas de criptografia se necessário.

sudo update-crypto-policies --set LEGACY
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo -o /etc/yum.repos.d/opensearch-dashboards-2.x.repo
sudo dnf repolist
sudo dnf install opensearch-dashboards -y

Aceite a chave GPG quando solicitado. Inicie e habilite:

sudo systemctl start opensearch-dashboards
sudo systemctl enable opensearch-dashboards
sudo systemctl status opensearch-dashboards

Instalar OpenSearch Dashboards

Configurar OpenSearch Dashboards

Edite /etc/opensearch-dashboards/opensearch-dashboard.yml:

sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml

Ajuste host/porta do servidor Dashboards e credenciais para conectar ao OpenSearch:

server.port: 5601
server.host: "192.168.5.25"
opensearch.hosts: ["https://192.168.5.25:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: "kibanaserver"
opensearch.password: "kibanapass"

Observação: opensearch.ssl.verificationMode: none é útil para ambientes de teste onde o certificado não é reconhecido; em produção, prefira validar certificação ou usar um CA confiável.

Reinicie o serviço:

sudo systemctl restart opensearch-dashboards

Configurar OpenSearch Dashboards

Abrir firewall e acessar Dashboards

Abra a porta 5601 no firewalld:

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Acesse em http://192.168.5.25:5601 (ou https, conforme configuração). Faça login com o usuário kibanaserver.

Página de login do OpenSearch Dashboards

Após login você verá a tela de boas-vindas. Use Dev Tools > Console e execute GET / para checar a conexão (retorno 200 OK).

Dev Tools GET / retornando 200

Troubleshooting e erros comuns

  • Serviço não inicia: verifique journalctl -u opensearch e /var/log/opensearch/opensearch.log.
  • Erro bootstrap checks em ambientes com discovery.type não configurado: para single-node use discovery.type: single-node.
  • Problemas TLS: valide caminhos de certificados, permissões e DN (CN)/SAN corretos. Use openssl s_client -connect 192.168.5.25:9200 -showcerts para depurar.
  • SELinux bloqueando: verifique audit logs e permita contextos ou mantenha permissive enquanto cria regras específicas.
  • Falha no securityadmin.sh: confira se o admin.pem/admin-key.pem correspondem ao certificado de admin gerado e se o cacert é root-ca.pem.

Comandos úteis de diagnóstico

sudo journalctl -u opensearch -f
sudo tail -n 200 /var/log/opensearch/opensearch.log
ss -tulpn | grep 9200
curl -k https://localhost:9200 -u admin:SUASENHA

Checklist de pré-produção (role-based)

Administrador do sistema:

  • Garantir backups de /etc/opensearch e /etc/opensearch-dashboards
  • Criar usuário de administração com senha forte
  • Configurar logs rotacionados e monitoramento de espaço em disco

Engenheiro de plataforma:

  • Dimensionar heap e índices primários conforme uso
  • Configurar snapshots para repositório externo (S3/NFS)
  • Testar restauração de snapshot

Equipe de segurança:

  • Validar certificados e cadeia de confiança
  • Restringir acesso de rede com firewalls e proxies
  • Revisar roles e permissões no OpenSearch Security

Runbook de incidente rápido

  1. Sintoma: OpenSearch não responde (porta 9200 fechada)

    • Verificar systemctl status opensearch
    • Ver logs: sudo journalctl -u opensearch -n 200
    • Checar disco cheio: df -h
    • Se for erro de heap, reduzir índices ou aumentar Xmx/Xms temporariamente
  2. Sintoma: Erros TLS ao conectar Dashboards

    • Validar certificados: openssl s_client -connect 192.168.5.25:9200 -showcerts
    • Conferir opensearch.yml caminhos e permissões em /etc/opensearch/certs

Rollback mínimo (instalação RPM):

  • Remover configurações adicionadas ao opensearch.yml (backup do arquivo original obrigatório) e restaurar backup do /etc/opensearch antes de aplicar TLS. Reiniciar serviço.

Boas práticas de desempenho e tuning

  • Heap JVM: mantenha Xmx/Xms igual e com valor entre 50% da RAM disponível até máximo recomendado (não mais que 32 GB por JVM).
  • Disco: prefira SSD ou NVMe para índices e translog.
  • Monitoramento: métricas de CPU, GC, latência de busca e timeseries de índices.

Quando esta abordagem falha (contraexemplos)

  • Ambientes com múltiplos nós em produção exigem configuração de cluster, discovery.seed_hosts, e certificados com SANs que contenham todos os nós.
  • Para containers ou orquestração (Kubernetes), prefira operadores/Helm charts e secrets nativos em vez de RPMs.

Alternativas e caminhos de migração

  • Docker/Containers: usar imagens oficiais opensearchproject/opensearch e opensearchproject/opensearch-dashboards.
  • Kubernetes: usar OpenSearch Helm Chart ou operator para clusters gerenciados.
  • Tarball: instalar via tar.gz quando não for possível usar RPM.

Testes de aceitação

  • Teste 1: GET / retorna status 200 e informações do cluster com usuário admin.
  • Teste 2: Login no Dashboards com kibanaserver funciona e Dev Tools executa GET /.
  • Teste 3: TLS estabelecido (openss s_client) e certificado válido conforme root-ca instalado.

Checklist final antes de produção

  • Validar backups e snapshots automáticos
  • Provisionar monitoramento (Prometheus, Grafana, OpenSearch metrics)
  • Auditar roles e permissões do plugin security
  • Automatizar renovação de certificados (se não usar CA pública)

Segurança adicional e mitigação de riscos

  • Minimizar exposição: limite acesso a portas 9200/5601 apenas para redes autorizadas ou via VPN.
  • Habilitar TLS em todas as camadas: transport e http.
  • CLIs e scripts: não deixar senhas em texto plano; use secrets managers quando possível.

Glossário (1 linha cada)

  • OpenSearch: motor de busca e análise open source, fork do Elasticsearch.
  • OpenSearch Dashboards: interface de visualização (fork do Kibana).
  • Root CA: autoridade certificadora que assina certificados internos.
  • securityadmin.sh: ferramenta para aplicar configurações do plugin OpenSearch Security.

FAQ

Q: Posso usar certificados autossignados em produção? A: Sim, mas é recomendável usar uma CA interna bem gerida ou uma CA pública/trusted para evitar problemas de confiança e simplificar integrações.

Q: Posso executar OpenSearch com menos de 4 GB RAM? A: Para cargas muito leves, possivelmente, mas a estabilidade e performance podem ser comprometidas. Recomendado >=4 GB para testes e >=8 GB para pequenos ambientes.

Q: Como escalar para cluster? A: Adicione discovery.seed_hosts, configure multicast/seed, gere certificados SANs para cada nó e ajuste settings de réplicas e shards.

Conclusão

Você instalou e configurou OpenSearch e OpenSearch Dashboards no Rocky Linux 9 com TLS e autenticação básica via plugin de segurança. A partir daqui, explore snapshots, roles granulares, políticas de ingestão e monitoramento para operar em produção.

Resumo de ações recomendadas: mantenha backups, automatize certificados, monitore heap/GC e limite acesso de rede.


SOBRE ESTE GUIA

Este guia fornece um caminho prático para começar com OpenSearch em Rocky Linux 9. Para tópicos avançados (cluster multi-nó, tuning profundo, operadores Kubernetes), consulte a documentação oficial do OpenSearch.

Autor
Edição

Materiais semelhantes

Como escolher o Mini PC certo
Hardware

Como escolher o Mini PC certo

Como ver publicações curtidas no Instagram
Redes Sociais

Como ver publicações curtidas no Instagram

Substituir disco RAID1 com mdadm
Sistemas

Substituir disco RAID1 com mdadm

Corrigir erro código 43 no GPU NVIDIA/Intel
Suporte Técnico

Corrigir erro código 43 no GPU NVIDIA/Intel

Desativar tela sensível ao toque no iPhone e iPad
iOS

Desativar tela sensível ao toque no iPhone e iPad

Instalar OpenSearch e Dashboards no Rocky Linux 9
Busca e Análise

Instalar OpenSearch e Dashboards no Rocky Linux 9