Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / /

Instalar o MongoDB Community no Red Hat ou CentOS usando .tgz Tarball

Nesta página

  • Visão geral
  • Considerações
  • Instale o MongoDB Community Edition
  • Execute o MongoDB Community Edition
  • Informações adicionais

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.

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.

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.

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.

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.

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.

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

Siga estas etapas para instalar manualmente o MongoDB Community Edition a partir do .tgz.

1

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

  1. Na menu suspenso Version, selecione a versão do MongoDB para baixar.

  2. No menu suspenso Platform, selecione a versão e arquitetura do sistema operacional.

  3. No menu suspenso Package, selecione tgz.

  4. Clique em Download.

2

Por exemplo, a partir de uma shell do sistema, você pode extrair utilizando o comando tar:

tar -zxvf mongodb-linux-*-8.0.4.tgz
3

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/
4

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.

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.

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 um diretório de dados e/ou diretório de registros diferente dos diretórios padrão:

  1. Crie o novo diretório ou diretórios.

  2. 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)

  3. 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.

  4. Configure o SELinux, se aplicado. Consulte Configurar o 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

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:

  1. Verifique se o seu sistema tem o pacote checkpolicy instalado:

    sudo yum install checkpolicy
  2. 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
  3. 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.

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:

  1. Verifique se o seu sistema tem o pacote checkpolicy instalado:

    sudo yum install checkpolicy
  2. 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
  3. 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
  1. 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 dados

    • mongod_log_t para diretório do arquivo de log

    • mongod_var_run_t para o diretório de arquivo de pid

    Observação

    Certifique-se de incluir o .* no final do diretório.

  2. 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 dados

    • mongod_log_t para diretório de log

    • mongod_var_run_t para o diretório de arquivo de pid

  3. 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'
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.

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.

1

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
2

Para executar MongoDB, execute o processo mongod no prompt do sistema.

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

Para detalhes sobre as opções de linha de comando --dbpath e --logpath, consulte Opções.

3

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.

4

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.

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, ou

  • por 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.

Voltar

Instale no Red Hat