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

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE