Instalar OpenSearch e OpenSearch 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
- 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
- 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.
- 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
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.
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.
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.
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
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.
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.
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
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
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.
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).
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
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
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.
Materiais semelhantes

Como escolher o Mini PC certo

Como ver publicações curtidas no Instagram
Substituir disco RAID1 com mdadm

Corrigir erro código 43 no GPU NVIDIA/Intel

Desativar tela sensível ao toque no iPhone e iPad
