Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Instale o MongoDB Community Edition no Red Hat ou CentOS

Nesta página

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

Observação

MongoDB Atlas

O MongoDB Atlas é uma opção de serviço MongoDB hospedada na nuvem que não requer nenhuma sobrecarga de instalação e oferece uma camada grátis para começar.

Use este tutorial para instalar o MongoDB 5.0 MongoDB Community Edition no Red Hat Enterprise Linux, CentOS Linux ou Oracle Linux [1] usando o gerenciador de pacotes yum.

Este tutorial instala a MongoDB Community Edition 5.0. 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.

Observação

Aviso da EOL

  • MongoDB 5.0 MongoDB Community Edition remove o suporte para RHEL /CentOS/Oracle 6 em x86_64

  • A edição MongoDB 5.0 Community remove o suporte para RHEL/CentOS/Oracle 7 em s390x

MongoDB 5.0 MongoDB Community Edition suporta as seguintes versões 64-bit do Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [1], Rocky Linux e AlmaLinux [2] em x86_64 arquitetura:

  • RHEL /CentOS/Oracle/Rocky/AlmaLinux 8

  • RHEL/CentOS/Oracle 7

MongoDB 5.0 MongoDB Community Edition também suporta a arquitetura ARM64 em RHEL / CentOS / Oracle / Rocky / AlmaLinux 8.

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 que oferece considerações de desempenho e recomendações de configuração para produção de sistemas do MongoDB.

Siga estas etapas para instalar o MongoDB Community Edition usando o gerenciador de pacotes yum.

1

Crie um arquivo /etc/yum.repos.d/mongodb-org-5.0.repo para instalar o MongoDB diretamente utilizando o yum:

Você também pode baixar os .rpm arquivos diretamente do repositório MongoDB. Os downloads são organizados pela versão do Red Hat / CentOS (por exemplo, 8), depois pela versão do MongoDB (por exemplo, 5.0) e depois pela arquitetura (por exemplo, x86_64).

2

Para instalar a versão estável mais recente do MongoDB, emita o seguinte comando:

sudo yum install -y mongodb-org

Como alternativa, para instalar uma versão específica do MongoDB, especifique cada pacote de componente individualmente e anexe o número da versão ao nome do pacote , como no exemplo a seguir:

sudo yum install -y mongodb-org-5.0.26 mongodb-org-database-5.0.26 mongodb-org-server-5.0.26 mongodb-org-shell-5.0.26 mongodb-org-mongos-5.0.26 mongodb-org-tools-5.0.26

Observação

yum atualiza pacotes automaticamente quando novas versões são disponibilizadas. Se você quiser impedir atualizações do MongoDB, fixe o pacote adicionando a seguinte diretriz exclude ao seu arquivo /etc/yum.conf:

exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

A maioria dos sistemas operacionais do tipo Unix limita os recursos do sistema que um processo pode usar. Esses limites podem impactar negativamente a operação do MongoDB e devem ser ajustados. Consulte Configurações do UNIX ulimit para obter as configurações recomendadas para sua plataforma.

Observação

Se o valor ulimit para o número de arquivos abertos estiver abaixo 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)

O gerenciador de pacotes cria os diretórios padrão durante a instalação. O proprietário e o nome do grupo são mongod.

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.

Importante

Se o SELinux estiver no modo enforcing , você deverá personalizar sua política do SELinux para MongoDB fazendo os dois ajustes de política a seguir:

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

Importante

Além dos itens anteriores, você também precisará personalizar ainda mais sua política do SELinux nos dois casos a seguir, se o SELinux estiver no modo enforcing :

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

    onde 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>

    onde 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>

Observação

Talvez seja necessário reiniciar o mongod para que a porta personalizada seja reconhecida.

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.

Sistema de Inicialização

Para executar e gerenciar seu processo do mongod, você utilizará o sistema de inicialização embutido do sistema operacional. Versões recentes do Linux tendem a utilizar systemd (que utiliza o comando systemctl), enquanto versões mais antigas do Linux tendem a utilizar System V init (que utiliza o comando service).

Se você não tiver certeza de qual sistema de inicialização sua plataforma usa, execute o seguinte comando:

ps --no-headers -o comm 1

Em seguida, selecione a aba apropriada abaixo com base no resultado:

  • systemd - selecione a aba systemd (systemctl) abaixo.

  • init - selecione a aba System V Init (service) abaixo.


Para remover completamente o MongoDB de um sistema, você deve remover os próprios aplicativos MongoDB, os arquivos de configuração e quaisquer diretórios que contenham dados e registros. A seção a seguir orienta você nas etapas necessárias.

Aviso

Esse processo removerá completamente o MongoDB, sua configuração e todos os bancos de dados. Este processo não é reversível, portanto, certifique-se de fazer backup de todas as suas configurações e dados antes de continuar.

1

Interrompa o processo mongod com o seguinte comando:

sudo service mongod stop
2

Remova todos os pacotes do MongoDB que você instalou anteriormente.

sudo yum erase $(rpm -qa | grep mongodb-org)
3

Remova bancos de dados e arquivos de log do MongoDB.

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

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 que seja acessível aos clientes remotos.

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 a um endereço IP não localhost (por exemplo, acessível publicamente), certifique-se de 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. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.

Para obter mais informações sobre como configurar bindIp, veja Vinculação de IP.

O MongoDB Community Edition está disponível em seu próprio repositório dedicado e contém os seguintes pacotes com suporte oficial:

Nome do Pacote
Descrição
mongodb-org
Um metapackage que instala automaticamente os pacotes do componente listados abaixo.
mongodb-org-database

Um metapackage que instala automaticamente os pacotes do componente listados abaixo.

Nome do Pacote
Descrição
mongodb-org-server
Contém o daemon mongod, o script de inicialização associado e um arquivo de configuração (/etc/mongod.conf). Utilize o script de inicialização para iniciar o mongod com o arquivo de configuração. Para obter detalhes, consulte a seção "Executar o MongoDB Community Edition" acima.
mongodb-org-mongos
Contém o daemon mongos.
mongodb-org-shell
Contém o shell mongo legado.
mongodb-mongosh
Contém o Shell do MongoDB (mongosh).
mongodb-org-tools

Um metapackage que instala automaticamente os pacotes do componente listados abaixo:

Nome do Pacote
Descrição
mongodb-database-tools

Contém as seguintes ferramentas de banco de dados MongoDB:

mongodb-org-database-tools-extra
Contém o script install_compass
← Instale o MongoDB Community Edition no Linux