Guia de tecnologias

Instalar e configurar Apache Solr no AlmaLinux 9

8 min read DevOps Atualizado 01 Oct 2025
Apache Solr no AlmaLinux 9: instalação e segurança
Apache Solr no AlmaLinux 9: instalação e segurança

logotipo do Apache Solr

Apache Solr (Solr) é uma plataforma de busca empresarial baseada na biblioteca Apache Lucene. É open source, escrita em Java, e oferece alta disponibilidade, replicação, tolerância a falhas e desempenho robusto para aplicações corporativas. Este tutorial mostra como instalar e otimizar o Apache Solr em um servidor AlmaLinux 9, além de proteger a instância com autenticação básica e criar o primeiro índice (core).

O que você vai aprender

  • Requisitos mínimos e preparação do sistema
  • Instalar Java OpenJDK 11
  • Baixar e instalar Apache Solr 9.2.1 a partir do binário
  • Ajustar heap, limites de sistema (ulimits) e hugepages
  • Configurar firewalld para permitir acesso ao painel
  • Habilitar autenticação básica com security.json
  • Criar um core de teste e validar a instalação
  • Troubleshooting, segurança adicional e recomendações operacionais

Pré-requisitos

  • Um servidor AlmaLinux 9 com pelo menos 2–4 GB de RAM (ex.: usado neste guia: hostname almalinux9 com 8 GB de RAM). Ajuste heap conforme memória disponível.
  • Um usuário não-root com privilégios sudo
  • Acesso à rede para baixar pacotes e liberar portas

1. Instalar Java OpenJDK 11

Apache Solr 9 requer Java 11 ou superior. Vamos instalar o OpenJDK 11 pelo repositório AppStream do AlmaLinux.

Execute:

sudo dnf install java-11-openjdk java-11-openjdk-devel

instalando java openjdk

Verifique a versão do Java:

java --version

A saída deve confirmar que o Java 11 está instalado.

Dica: se tiver múltiplas versões do Java instaladas, use o comando sudo alternatives --config java para selecionar a versão padrão.

2. Baixar e instalar Apache Solr

Você pode instalar Solr usando o pacote binário oficial. Antes, instale utilitários necessários:

sudo dnf install curl lsof chkconfig -y

Baixe o pacote binário da versão usada neste guia (9.2.1):

curl -qO https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz

Extraia apenas o instalador do pacote:

tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh --strip-components=2

Você deverá ver o script install_solr_service.sh no diretório atual.

Em seguida, execute o instalador:

sudo bash ./install_solr_service.sh solr-9.2.1.tgz

Quando a instalação terminar com sucesso, verá mensagens indicando que o serviço foi criado e iniciado.

instalando solr

O Solr, por padrão, roda na porta 8983 e usa SOLR_HOME em /var/solr/data.

Se precisar matar um processo manualmente (só em casos especiais):

kill -9 

Inicie o serviço Solr (caso não esteja iniciado):

sudo service solr start

Verifique o status:

sudo service solr status

start solr service

verify solr

Observação: em sistemas modernos com systemd em vez de scripts SysV, os comandos systemctl start solr / systemctl status solr também funcionam.

3. Otimizar a instalação do Apache Solr

Ajustes típicos para ambiente de produção incluem configurar a memória heap, hugepages e host de binding.

Ajuste shmmax e nr_hugepages (valores de exemplo):

sudo sh -c 'echo 4294967295 > /proc/sys/kernel/shmmax'
sudo sh -c 'echo 1536 > /proc/sys/vm/nr_hugepages'

Edite o arquivo de configuração do Solr:

sudo nano /etc/default/solr.in.sh

Defina a heap do Solr para um valor adequado à memória do servidor. Regra prática: não alocar mais do que 50–75% da memória física ao heap, deixando espaço para o SO e page cache.

SOLR_HEAP="4g"

Configure o host de binding (use IP interno) para evitar expor a interface administrativa na internet pública:

SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

Salve e reinicie o serviço para aplicar as alterações:

sudo service solr restart

configuring solr

Verifique o status novamente e confirme que a heap foi aplicada:

sudo service solr status

setup solr ulimit

Importante: após alterações em /proc/sys ou hugepages, um reboot pode ser necessário para efeitos persistentes entre reboots — considere adicionar parâmetros equivalentes em /etc/sysctl.conf ou arquivos em /etc/sysctl.d/.

4. Configurar ulimits e firewalld

Solr pode requerer muitos descritores de arquivo e processos. Ajuste /etc/security/limits.conf para o usuário solr:

sudo nano /etc/security/limits.conf

Adicione no final:

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

Após salvar, verifique os limites do usuário solr:

sudo -H -u solr bash -c "ulimit -aH"

setup ulimit

Reinicie o serviço Solr para que a nova configuração seja aplicada:

sudo service solr restart

Se a mensagem de aviso do ulimit desaparecer, as mudanças foram aplicadas corretamente.

Abra a porta 8983 no firewall (firewalld):

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

Se tudo estiver correto, a porta 8983 aparecerá na lista de regras.

setup firewalld

Agora acesse o painel via navegador em http://192.168.10.15:8983/ (ou IP/hostname que você definiu).

apache solr dashboard

Nota de segurança: para produção, exponha o painel apenas em redes internas ou atrás de um proxy reverso com TLS e autenticação.

5. Proteger o Solr com autenticação básica

Por padrão, o Solr é instalado sem autenticação. Uma das opções de proteção é a autenticação básica (BasicAuthPlugin). Neste exemplo, criaremos um arquivo security.json em /var/solr/data para ativá-la.

Crie o arquivo:

sudo nano /var/solr/data/security.json

Cole o conteúdo abaixo (exemplo que cria o usuário solr com senha SolrRocks). O campo credentials contém valores hash; mantenha a estrutura exatamente como abaixo se estiver seguindo este exemplo:

{  
  "authentication":{  
    "blockUnknown": true,  
    "class":"solr.BasicAuthPlugin",  
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},  
    "realm":"My Solr users",  
    "forwardCredentials": false  
  },  
  "authorization":{  
    "class":"solr.RuleBasedAuthorizationPlugin",  
    "permissions":[{"name":"all", "role":"admin"}],  
    "user-role":{"solr":"admin"}  
  }  
}

Salve e reinicie o Solr:

sudo service solr restart

Após reiniciar, abra http://192.168.10.15:8983/ e você verá a tela de login. Insira o usuário solr e a senha SolrRocks para acesso ao painel.

Apache Solr login

No menu Segurança (Security) você confirmará que o plugin basic_auth está ativo.

solr authentication

Importante: não use senhas em texto claro em produção. Gere credenciais adequadas e armazene hashes seguros fora do diretório de dados, se possível.

6. Criar o primeiro índice (core)

Edite o arquivo de configuração para que o comando do cliente bin/solr funcione com autenticação básica:

sudo nano /etc/default/solr.in.sh

Descomente e defina:

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

Reinicie o serviço Solr para aplicar:

sudo service solr restart

Crie um core de teste chamado test1_core:

su - solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"

A saída deverá indicar Created new core test1_core.

No painel administrativo, acesse Core Admin e verifique se test1_core está listado.

verify core

Troubleshooting comum

  • Erro de Java: verifique java --version e alternatives se múltiplas versões
  • Porta 8983 ocupada: lsof -i :8983 ou ss -ltnp para identificar o processo
  • Permissões do usuário solr: logs em /var/solr/logs/ ou journalctl -u solr podem apontar erros
  • Ulimits não aplicados para sessões existentes: faça logout/login ou reinicie o sistema para garantir que PAM aplique /etc/security/limits.conf
  • SELinux bloqueando recursos: verifique ausearch / audit.log e, se necessário, crie regras ou ajuste contextos. Em ambientes controlados, considere manter SELinux em enforcing, mas teste politicamente suas regras.

Comandos úteis de diagnóstico:

sudo tail -n 200 /var/solr/logs/solr.log
journalctl -u solr --no-pager | tail -n 200
sudo -u solr ls -la /var/solr/data

Abordagens alternativas e escalabilidade

  • SolrCloud: para clusters com replicação automática, sharding e coordenadores, use SolrCloud em vez de instância standalone.
  • Contêineres: empacotar Solr em Docker/Kubernetes facilita deploys repetíveis e escalonamento. Use StatefulSets e PVs para dados persistentes.
  • Hospedagem gerenciada: se operar infraestrutura não for desejável, considere serviços de search gerenciados (SaaS) compatíveis com APIs de busca.

Checklist por papel

Administrador de sistema (Ops):

  • Instalar Java e Solr
  • Configurar SOLR_HEAP e host de binding
  • Ajustar ulimits e hugepages
  • Configurar firewall e SELinux
  • Implementar backup regular dos dados

Desenvolvedor:

  • Validar esquema e managed-schema
  • Criar configsets versionáveis
  • Testar indexação e consultas no core de dev

Equipe de segurança:

  • Habilitar autenticação e RBAC
  • Forçar TLS/HTTPS no painel e APIs
  • Restringir acesso ao painel administrativo por rede
  • Revisar logs e alertas de acesso

Playbook de instalação rápida (SOP)

  1. Atualizar sistema: sudo dnf update -y
  2. Instalar Java: sudo dnf install java-11-openjdk java-11-openjdk-devel -y
  3. Baixar Solr e extrair instalador
  4. Rodar install_solr_service.sh e iniciar serviço
  5. Ajustar /etc/default/solr.in.sh (heap, host)
  6. Ajustar ulimits e firewall
  7. Criar security.json e reiniciar
  8. Criar core de teste e validar

Rollback mínimo: se instalação falhar, pare o serviço com sudo service solr stop, restaure /etc/default/solr.in.sh e /var/solr/data/security.json a partir do backup e reinicie.

Critérios de aceitação

  • O serviço Solr responde em http://:8983/
  • O dashboard exige autenticação e permite login com usuário configurado
  • O core test1_core foi criado e aparece no painel
  • ulimit -aH para o usuário solr reflete 65000 para nofile e nproc
  • Não há erros críticos nos logs de Solr após reinício

Testes e casos de aceitação

  • Teste 1: Acesso ao painel
    • Passo: Abrir http://192.168.10.15:8983/ -> Esperado: tela de login
  • Teste 2: Autenticação
    • Passo: Login com solr:SolrRocks -> Esperado: acesso ao dashboard
  • Teste 3: Criar core
    • Passo: Executar comando de criação -> Esperado: core criado com sucesso
  • Teste 4: Consulta simples
    • Passo: Indexar documento e executar query q=*:* -> Esperado: documento retornado
  • Teste 5: Persistência após reboot
    • Passo: Reboot do nodo -> Esperado: Solr sobe e cores permanecem disponíveis

Segurança e hardening

  • Sempre rode Solr atrás de um proxy reverso (nginx/HAProxy) com TLS obrigatória
  • Restrinja acesso administrativo a redes internas ou VPN
  • Use senhas fortes e rotação periódica de credenciais
  • Habilite logging centralizado e alertas para falhas de autenticação
  • Aplique atualizações de segurança do Java e do Solr regularmente
  • Considere ativar Audit Logging para ações administrativas

Migração e compatibilidade

  • Ao migrar entre versões do Solr, verifique compatibilidade do index (Lucene). Use utilitários oficiais de upgrade ou reindex quando necessário.
  • Faça backup com /opt/solr/bin/solr backup ou copie fisicamente os diretórios de dados com parada controlada do serviço.
  • Ao usar SolrCloud, migre configsets e shards com cautela; pratique em ambiente de staging antes da migração em produção.

Fluxograma para escolher método de autenticação

flowchart TD
  A[Precisa proteger Solr?] -->|Sim| B{Ambiente}
  B --> C[Instância única e rede interna]
  B --> D[Cluster ou exposição pública]
  C --> E[Usar BasicAuth + firewall interno]
  D --> F[Usar TLS + proxy reverso + autenticação federada
  F --> G[LDAP/Kerberos/JWT conforme política]
  A -->|Não| H[Deixar sem autenticação 'não recomendado']

Glossário rápido

  • Solr: Plataforma de busca baseada em Lucene.
  • SolrCloud: Modo de cluster com sharding e réplica.
  • Jetty: Servidor web embutido que executa Solr.
  • Heap: Memória JVM alocada para Solr.

Dicas operacionais finais

  • Monitore uso de heap, GC e latência de consultas (JMX, Prometheus + Grafana)
  • Teste restores de backup para garantir planos de recuperação
  • Documente configurações e segredos fora do servidor, em cofres seguros
  • Para produção, prefira deployments automáticos via IaC e pipelines CI/CD

Conclusão

Parabéns — você instalou e configurou o Apache Solr no AlmaLinux 9, ajustou heap e ulimits, abriu a porta no firewall, habilitou autenticação básica e criou o primeiro core de teste. Use as seções de troubleshooting e segurança deste guia para maturar a sua implantação em direção a um ambiente de produção seguro e resiliente.

Resumo rápido:

  • Instalação: Java 11 + Solr 9.2.1 via binário
  • Otimização: SOLR_HEAP, hugepages, ulimits
  • Segurança: BasicAuth, firewall, recomendações para TLS
  • Operação: testes, backups e monitoramento

Nota: adapte todos os valores (heap, IP, portas) à sua topologia e política de segurança.

Autor
Edição

Materiais semelhantes

Integrar Dropbox com Pages/Keynote/Numbers no iPad
Tutoriais

Integrar Dropbox com Pages/Keynote/Numbers no iPad

Como colocar vídeo em loop no iPhone
Tutoriais iPhone

Como colocar vídeo em loop no iPhone

Toques personalizados no iPhone com iOS 26
Tutoriais

Toques personalizados no iPhone com iOS 26

Corrigir Integridade de memória desativada no Windows
Segurança

Corrigir Integridade de memória desativada no Windows

ONLYOFFICE no Manjaro: instalação v6.1
Linux

ONLYOFFICE no Manjaro: instalação v6.1

Criar instalador USB do Windows 11 via Prompt de Comando
Windows

Criar instalador USB do Windows 11 via Prompt de Comando