Instalar o MongoDB Community no Red Hat ou CentOS usando .tgz Tarball
Nesta página
Visão geral
Use este tutorial para instalar manualmente o MongoDB 8.0 MongoDB Community Edition no Red Hat Enterprise Linux, CentOS Linux ou Oracle Linux [1] utilizando um tarball .tgz
baixado.
Versão do MongoDB
Este tutorial instala o MongoDB 8.0 Community Edition. Para instalar uma versão diferente do MongoDB Community, use o menu suspenso de versão no canto superior esquerdo desta página para selecionar a documentação dessa versão.
Método de instalação
Embora o MongoDB possa ser instalado manualmente através de um .tgz
tarball baixado, conforme descrito neste documento, é recomendado utilizar o gerenciador de pacotes do yum
em seu sistema para instalar o MongoDB, se possível. A utilização de um gerenciador de pacotes instala automaticamente todas as dependências necessárias, fornece um arquivo de exemplo mongod.conf
para você começar e simplifica futuras tarefas de atualização e manutenção.
➤ Consulte Instalar o MongoDB usando o Gerenciador de pacotes yum para obter instruções.
Considerações
MongoDB Shell, mongosh
Ao utilizar o pacote .tgz
para instalar o servidor, você precisa seguir as instruções de instalação do mongosh para baixar e instalar o mongosh separadamente.
Suporte a plataformas
MongoDB 8.0 O MongoDB Community Edition suporta as seguintes versões de 64bits do Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [1], Rocky Linux e AlmaLinux [2] em x86_64 arquitetura:
RHEL/CentOS Stream/Oracle/Rocky/AlmaLinux 9
RHEL/CentOS Stream/Oracle/Rocky/AlmaLinux 8
O MongoDB é compatível somente com as versões de 64 bits dessas plataformas.
No mongoDB 8.0, a edição Community no RHEL /CentOS/Oracle/Rocky/AlmaLinux também é compatível com a arquitetura ARM64 em plataformas selecionadas.
Consulte Suporte da Plataforma para obter mais informações.
[1] | (1, 2) O MongoDB é compatível apenas com o Oracle Linux que executa o Red Hat Compatible Kernel (RHCK). O MongoDB não suporta o Unbreakable Enterprise Kernel (UEK). |
[2] | Os produtos locais do MongoDB lançados para RHEL versão 8.0+ são compatíveis e suportados no Rocky Linux versão 8.0+ e AlmaLinux versão 8.0+, dependendo dessas distribuições cumprirem sua obrigação de fornecer compatibilidade total com RHEL. |
Notas de produção
Antes de implantar o MongoDB em um ambiente de produção, considere o documento Notas de produção para implantações autogerenciadas, que oferece considerações de desempenho e recomendações de configuração para implantações de produção do MongoDB.
Instale o MongoDB Community Edition
Pré-requisitos
Use o comando a seguir para instalar as dependências necessárias para o tarball MongoDB Community .tgz
:
sudo yum install libcurl openssl xz-libs
Procedimento
Siga estas etapas para instalar manualmente o MongoDB Community Edition a partir do .tgz
.
Baixar o tarball.
Após instalar os pacotes de pré-requisitos exigidos, baixe o MongoDB Community tgz
tarball a partir do seguinte link:
➤ Centro de downloads do MongoDB
Na menu suspenso Version, selecione a versão do MongoDB para baixar.
No menu suspenso Platform, selecione a versão e arquitetura do sistema operacional.
No menu suspenso Package, selecione tgz.
Clique em Download.
Certifique-se de que os binários estejam em um diretório listado na PATH
variável de ambiente.
Os binários do MongoDB estão no diretório bin/
do tarball. Você também pode:
Copiar os binários em um diretório listado em sua variável
PATH
, como/usr/local/bin
(atualize/path/to/the/mongodb-directory/
com seu diretório de instalação conforme apropriado)sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/ Crie links simbólicos para os binários a partir de um diretório listado na variável sua
PATH
, como/usr/local/bin
(atualize/path/to/the/mongodb-directory/
com seu diretório de instalação conforme apropriado):sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
Instale o MongoDB Shell ().mongosh
Instalar mongosh
em seguida, use o MongoDB Shell para conectar à sua implantação.
Faça o download do pacote para a versão de mongosh
de que você precisa no Centro de Download do MongoDB e descompacte o pacote.
Execute o MongoDB Community Edition
ulimit
A maioria dos sistemas operacionais do tipo Unix limita os recursos do sistema que um processo pode usar. Esses limites podem impacto negativamente a operação do MongoDB e devem ser ajustados. Consulte Configurações do UNIX ulimit
para sistemas autogerenciados para obter as configurações recomendadas para sua plataforma.
Observação
Se o valor ulimit
para o número de arquivos abertos estiver em 64000
, o MongoDB gerará um aviso de inicialização.
Caminhos de Diretório
Para Usar Diretórios Padrão
Por padrão, o MongoDB é executado com a conta de usuário mongod
e utiliza os seguintes diretórios padrão:
/var/lib/mongo
(o diretório de dados)/var/log/mongodb
(o diretório log)
Criar os dados MongoDB e diretórios de log:
sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb
Por padrão, o MongoDB é executado com a conta de usuário mongod
. Crie um grupo mongod
e um grupo mongodb
. Certifique-se de que o mongod
pertence ao grupo e, em seguida, defina o proprietário e o grupo destes diretórios como mongod
:
sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongodb
Para Usar Diretórios Não Padrão
Para usar um diretório de dados e/ou diretório de registros diferente dos diretórios padrão:
Crie o novo diretório ou diretórios.
Edite o arquivo de configuração
/etc/mongod.conf
e modifique os campos de acordo:storage.dbPath
para especificar um novo caminho de diretório de dados (por exemplo,/some/data/directory
)systemLog.path
para especificar um novo caminho de arquivo de log (por exemplo,/some/log/directory/mongod.log
)
Certifique-se de que o usuário que executa o MongoDB tenha acesso ao diretório ou diretórios:
sudo chown -R mongod:mongod <directory> Se você alterar o usuário que executa o processo MongoDB,deverá conceder ao novo usuário acesso a esses diretórios.
Configure o SELinux, se aplicado. Consulte Configurar o SELinux.
Configurar SELinux
Aviso
Uma política do SELinux configurada incorretamente pode ser insegura ou impedir que sua instância mongod
funcione.
Se o SELinux estiver no modo enforcing
, você deverá personalizar sua política do SELinux para MongoDB para
Permitir acesso a
cgroup
Permitir acesso a
netstat
Permitir acesso a cgroup
A política atual do SELinux não permite que o processo do MongoDB acesse /sys/fs/cgroup
, que é necessário para determinar a memória disponível no seu sistema. Se você pretende executar o SELinux no modo enforcing
, terá que fazer o seguinte ajuste em sua política do SELinux:
Verifique se o seu sistema tem o pacote
checkpolicy
instalado:sudo yum install checkpolicy Crie um arquivo de política personalizado
mongodb_cgroup_memory.te
:cat > mongodb_cgroup_memory.te <<EOF module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read }; EOF Depois de criado, compile e carregue o módulo de política personalizada executando estes três comandos:
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod sudo semodule -i mongodb_cgroup_memory.pp
O processo MongoDB agora pode acessar os arquivos corretos com SELinux configurado para enforcing
.
Permitir acesso a netstat
para FTDC
A política atual do SELinux não permite que o processo do MongoDB abra e leia /proc/net/netstat
, o que é necessário para a captura de dados de diagnóstico em tempo integral (FTDC). Se você pretende executar o SELinux no modo enforcing
, terá que fazer o seguinte ajuste em sua política do SELinux:
Verifique se o seu sistema tem o pacote
checkpolicy
instalado:sudo yum install checkpolicy Crie um arquivo de política personalizado
mongodb_proc_net.te
:cat > mongodb_proc_net.te <<EOF module mongodb_proc_net 1.0; require { type cgroup_t; type configfs_t; type file_type; type mongod_t; type proc_net_t; type sysctl_fs_t; type var_lib_nfs_t; class dir { search getattr }; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir { search getattr } ; allow mongod_t cgroup_t:file { getattr open read }; allow mongod_t configfs_t:dir getattr; allow mongod_t file_type:dir { getattr search }; allow mongod_t file_type:file getattr; allow mongod_t proc_net_t:file { open read }; allow mongod_t sysctl_fs_t:dir search; allow mongod_t var_lib_nfs_t:dir search; EOF Depois de criado, compile e carregue o módulo de política personalizada executando estes três comandos:
checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod sudo semodule -i mongodb_proc_net.pp
Usando um caminho de diretório personalizado do MongoDB
Atualize a política SELinux para permitir que o serviço do
mongod
utilize o novo diretório:sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*> Especifique um dos seguintes tipos conforme apropriado:
mongod_var_lib_t
para diretório de dadosmongod_log_t
para diretório do arquivo de logmongod_var_run_t
para o diretório de arquivo de pid
Observação
Certifique-se de incluir o
.*
no final do diretório.Atualize a política de usuário do SELinux para o novo diretório:
sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory> Especifique um dos seguintes tipos conforme apropriado:
mongod_var_lib_t
para diretório de dadosmongod_log_t
para diretório de logmongod_var_run_t
para o diretório de arquivo de pid
Aplique as políticas atualizadas do SELinux ao diretório:
sudo restorecon -R -v </some/MongoDB/directory>
Por exemplo:
Dica
Certifique-se de incluir o .*
no final do diretório para as operações do semanage fcontext
.
Se utilizar um caminho de dados MongoDB não padrão do
/mongodb/data
:sudo semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*' sudo chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data' sudo restorecon -R -v '/mongodb/data' Se estiver usando um diretório de log MongoDB não padrão do
/mongodb/log
(por exemplo, se o caminho do arquivo de log for/mongodb/log/mongod.log
):sudo semanage fcontext -a -t mongod_log_t '/mongodb/log.*' sudo chcon -Rv -u system_u -t mongod_log_t '/mongodb/log' sudo restorecon -R -v '/mongodb/log'
Usando uma porta MongoDB personalizada
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>
Importante
Além dos itens anteriores, se o SELinux estiver no modo enforcing
, você também precisará personalizar ainda mais sua política do SELinux para cada uma dessas situações:
Você está usando um caminho de diretório personalizado em vez de usar o caminho padrão para qualquer combinação de:
Você está usando uma porta personalizada em vez de usar a porta MongoDB padrão.
Se você fez outras modificações na instalação do MongoDB.
Procedimento
Siga estas etapas para executar o MongoDB Community Edition em seu sistema. Estas instruções pressupõem que você esteja usando as configurações padrão.
Crie os dados e diretórios de log.
Crie um diretório onde a instância do MongoDB armazenará seus dados. Por exemplo:
sudo mkdir -p /var/lib/mongo
Crie um diretório em que a instância do MongoDB armazene seu log. Por exemplo:
sudo mkdir -p /var/log/mongodb
O usuário que inicia o processo do MongoDB deve ter permissão de leitura e gravação nesses diretórios. Por exemplo, se você pretende executar o MongoDB como você mesmo:
sudo chown `whoami` /var/lib/mongo # Or substitute another user sudo chown `whoami` /var/log/mongodb # Or substitute another user
Verifique se o MongoDB foi iniciado com sucesso.
Verifique se o MongoDB começou com sucesso verificando a saída do processo para a seguinte linha no arquivo de log /var/log/mongodb/mongod.log
:
[initandlisten] waiting for connections on port 27017
Você poderá ver avisos não críticos como resultado do processo. Desde que veja a linha de registro mostrada acima, você pode ignorar com segurança esses avisos durante sua avaliação inicial do MongoDB.
Comece a usar o MongoDB.
Inicie uma sessão mongosh
na mesma máquina host que o mongod
. Você pode executar mongosh
sem nenhuma opção de linha de comando para se conectar a um mongod
que esteja sendo executado em seu host local com a porta padrão 27017.
mongosh
Para obter mais informações sobre como se conectar usando mongosh
, como se conectar a uma instância mongod
em execução em um host e/ou porta diferente, consulte a documentação do mongosh.
Para ajudá-lo a começar a usar o MongoDB, o MongoDB fornece Guias de Introdução em várias edições de driver. Para obter a documentação do driver, consulte Iniciar o desenvolvimento com o MongoDB.
Informações adicionais
Vinculação ao localhost por padrão
Por padrão, o MongoDB é iniciado com bindIp
, definido como 127.0.0.1
, que se vincula à interface de rede localhost. Isso significa que o mongod
só pode aceitar conexões de clientes que estejam executando na mesma máquina. Os clientes remotos não conseguirão se conectar ao mongod
e o mongod
não conseguirá inicializar um conjunto de réplicas, a menos que esse valor seja definido como uma interface de rede válida.
Este valor pode ser configurado de duas maneiras:
no arquivo de configuração do MongoDB com
bindIp
, oupor meio do argumento linha de comando
--bind_ip
Aviso
Antes de vincular sua instância a um endereço IP acessível publicamente, você deve proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte Lista de verificação de segurança para implantações autogerenciadas. No mínimo, considere habilitar a autenticação e fortalecer a infraestrutura de rede.
Para obter mais informações sobre como configurar bindIp
, consulte Vinculação de IP em implementações autogerenciadas.