Docs Menu
Docs Home
/ /

Configuración de la base de datos en tiempo de ejecución para implementaciones autogestionadas

El Las interfaces delínea de comandos y archivos de configuración ofrecen a los administradores de MongoDB una gran cantidad de opciones y configuraciones para controlar el funcionamiento del sistema de base de datos. Este documento ofrece una descripción general de las configuraciones comunes y ejemplos de configuraciones recomendadas para casos de uso comunes.

Si bien ambas interfaces brindan acceso a la misma colección de opciones y configuraciones, este documento utiliza principalmente la interfaz del archivo de configuración.

  • Si instaló MongoDB con un administrador de paquetes como yum o apt en Linux o brew en macOS, o con el instalador MSI en Windows, se ha proporcionado un archivo de configuración predeterminado como parte de su instalación:

    Plataforma
    Método
    archivo de configuración

    Linux

    aptAdministrador de paquetes yum o zypper.

    /etc/mongod.conf

    macOS

    brew Gestor de paquetes

    /usr/local/etc/mongod.conf (en procesadores Intel), o

    /opt/homebrew/etc/mongod.conf (en Procesadores Apple M1)

    Windows

    Instalador MSI

    <install directory>\bin\mongod.cfg

  • Si instaló MongoDB mediante un archivo TGZ o ZIP descargado, debe crear su propio archivo de configuración. El ejemplo básico de configuración es un buen punto de partida.

Para la instalación de paquetes de MongoDB en Linux o macOS, también se proporciona un script de inicialización que utiliza este archivo de configuración predeterminado. Este script de inicialización puede usarse para iniciar en estas plataformas de la siguiente mongod manera:

  • En sistemas Linux que utilizan el sistema de inicio systemd (el systemctl comando):

    sudo systemctl start mongod
  • En sistemas Linux que utilizan el sistema init SystemV (el service comando):

    sudo service mongod start
  • En macOS, utilizando el administrador de paquetes brew:

    brew services start mongodb-community@7.0

Si instaló MongoDB con un TGZ ZIP archivo o, deberá crear su propio archivo de configuración. Encontrará un ejemplo básico de configuración más adelante en este documento. Una vez creado el archivo de configuración, puede iniciar una instancia de MongoDB con él usando las --config opciones -f mongod o de. Por ejemplo, en Linux:

mongod --config /etc/mongod.conf
mongod -f /etc/mongod.conf

Modifique los valores en el archivo mongod.conf en su sistema para controlar la configuración de su instancia de base de datos.

Considere la siguiente configuración básica:

processManagement:
fork: true
net:
bindIp: localhost
port: 27017
storage:
dbPath: /var/lib/mongo
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true

Para la mayoría de los servidores independientes, esta configuración básica es suficiente. Se parte de varias premisas, pero considere la siguiente explicación:

  • fork es,true que habilita un modo demonio para, que separa (es decir, "bifurca") MongoDB de la sesión actual y le permite ejecutar la base de datos como un servidor mongod convencional.

  • bindIp es,localhost lo que obliga al servidor a escuchar únicamente las solicitudes en la IP del host local. Se vincula únicamente a interfaces seguras a las que los sistemas de nivel de aplicación pueden acceder mediante el control de acceso proporcionado por el filtrado de red del sistema (es decir, el"cortafuegos").

  • port es,27017 que es el puerto predeterminado de MongoDB para las instancias de base de datos. MongoDB puede enlazarse a cualquier puerto. También puede filtrar el acceso según el puerto mediante herramientas de filtrado de red.

    Nota

    Los sistemas tipo UNIX requieren privilegios de superusuario para conectar procesos a puertos inferiores a 1024.

  • quiet truees. Esto desactiva todas las entradas excepto las más críticas en el archivo de salida/registro y no se recomienda para sistemas de producción. Si activa esta opción, puede usar para modificarla durante la setParameter ejecución.

  • dbPath es,/var/lib/mongo que especifica dónde MongoDB almacenará sus archivos de datos.

    Si se instaló MongoDB en Linux mediante un gestor de paquetes, como yum o apt, el archivo /etc/mongod.conf incluido con la instalación de MongoDB establece los siguientes valores dbPath predeterminados, según la distribución de Linux:

    Plataforma
    Gestor de paquetes
    predeterminado dbPath

    RHEL / CentOS y Amazon

    yum

    /var/lib/mongo

    SUSE

    zypper

    /var/lib/mongo

    Ubuntu y Debian

    apt

    /var/lib/mongodb

    macOS

    brew

    /usr/local/var/mongodb

    La cuenta de usuario bajo la que se ejecuta mongod necesitará acceso de lectura y escritura a este directorio.

  • systemLog.pathes /var/log/mongodb/mongod.log, que es dondemongodescribirá su salida. Si no se establece este valor, mongodescribe toda la salida en la salida estándar (p. ej., stdout).

  • logAppend es,true lo que garantiza que no sobrescriba un archivo de registro existente después de la operación de inicio del mongod servidor.

Dada la configuración predeterminada, algunos de estos valores pueden ser redundantes. Sin embargo, en muchas situaciones, indicar explícitamente la configuración aumenta la inteligibilidad general del sistema.

Las siguientes opciones de configuración son útiles para limitar el acceso a una mongod instancia:

net:
bindIp: localhost,10.8.0.10,192.168.4.24,/tmp/mongod.sock
security:
authorization: enabled
net.bindIp

Este ejemplo proporciona cuatro valores a la bindIp opción:

  • localhost, la interfaz localhost;

  • 10.8.0.10, una dirección IP privada que normalmente se utiliza para redes locales e interfaces VPN;

  • 192.168.4.24, una interfaz de red privada que normalmente se utiliza para redes locales; y

  • /tmp/mongod.sock, una ruta de socket de dominio Unix.

Dado que las instancias de producción de MongoDB deben ser accesibles desde múltiples servidores de bases de datos, es importante vincular MongoDB a múltiples interfaces accesibles desde los servidores de aplicaciones. Al mismo tiempo, es importante limitar estas interfaces a las controladas y protegidas en la capa de red.

security.authorization
Al configurar esta opción en true, se habilita el sistema de autorización en MongoDB. Si está habilitada, deberá iniciar sesión mediante la interfaz localhost por primera vez para crear las credenciales de usuario.

Tip

La configuración del conjunto de réplicas es sencilla y solo requiere que replSetName el valor de sea consistente entre todos los miembros del conjunto. Considere lo siguiente:

replication:
replSetName: set0

Use nombres descriptivos para los conjuntos. Una vez configurados, use mongosh para agregar hosts al conjunto de réplicas.

Para habilitar la autenticación del set de réplicas usando archivos clave , agrega la siguiente opción keyFile [1]:

security:
keyFile: /srv/mongodb/keyfile

La configuración habilita la autenticación y especifica un archivo de claves que los miembros del conjunto de réplicas deben usar cuando se autentican entre sí.keyFile

Tip

La sección Seguridad del conjunto de réplicas para obtener información sobre cómo configurar la autenticación con conjuntos de réplicas.

El documento de replicación para obtener más información sobre la replicación en MongoDB y la configuración del conjunto de réplicas en general.

[1] Los clústeres fragmentados y los conjuntos de réplicas pueden usar X.509 para la verificación de membresía en lugar de archivos de claves. Para más detalles, consulte X..509

La fragmentación requiere instancias mongod con diferentes mongod configuraciones para los servidores de configuración y los fragmentos. Los servidores de configuración almacenan los metadatos del clúster, mientras que los fragmentos almacenan los datos.

Para configurar las instancias mongod del configsvr servidor de configuración, en el sharding.clusterRole archivo de configuración, especifique para la configuración.

Nota

Los servidores de configuración deben implementarse como un set de réplicas.

sharding:
clusterRole: configsvr
net:
bindIp: 10.8.0.12
port: 27001
replication:
replSetName: csRS

Para implementar servidores de configuración como un conjunto de réplicas, los servidores de configuración deben ejecutar el motor de almacenamiento WiredTiger. Initiate el conjunto de réplicas y agregar miembros.

Para configurar las mongod instancias del fragmento, especifique shardsvr para la sharding.clusterRole configuración y, si se ejecuta como un conjunto de réplicas, el nombre del conjunto de réplicas:

sharding:
clusterRole: shardsvr
replication:
replSetName: shardA

Si se ejecuta como un conjunto de réplicas, initiate el conjunto de réplicas de fragmentos y agrega miembros.

Para el enrutador (es decir,), configuremongos mongos al menos un proceso con la siguiente configuración:

sharding:
configDB: csRS/10.8.0.12:27001

Puede especificar miembros adicionales del conjunto de réplicas del servidor de configuración especificando nombres de host y puertos en forma de una lista separada por comas después del nombre del conjunto de réplicas.

Tip

La sección Fragmentación del manual para obtener más información sobre la fragmentación y la configuración del clúster.

En muchos casos, no se recomienda mongod ejecutar varias instancias de en un solo sistema. En algunos tipos de implementaciones []2 y para fines de prueba, es posible que sea necesario ejecutar más de un en un solo mongod sistema.

En estos casos, utilice una configuración base para cada instancia, pero considere los siguientes valores de configuración:

storage:
dbPath: /var/lib/mongo/db0/
processManagement:
pidFilePath: /var/lib/mongo/db0.pid

El valordbPathcontrola la ubicación del directorio de datos de la instanciamongod. Asegúrese de que cada base de datos tenga un directorio de datos distinto y bien etiquetado. El valorpidFilePathcontrola dónde el procesomongodcoloca su archivo de ID de proceso (PID). Dado que este valor rastrea el archivomongodespecífico, es crucial que el archivo sea único y esté bien etiquetado para facilitar el inicio y la detención de estos procesos.

Cree scripts de inicio adicionales y/o ajuste su configuración de MongoDB existente y su script de inicio según sea necesario para controlar estos procesos.

[2] Los sistemas de un solo inquilino con SSD u otros discos de alto rendimiento pueden ofrecer niveles de rendimiento aceptables para varias mongod instancias. Además, es posible que varias bases de datos con conjuntos de trabajo pequeños funcionen correctamente en un solo sistema.

Las siguientes opciones de configuración controlan varios comportamientos para fines de mongod diagnóstico:

  • operationProfiling.mode establece el nivel del perfilador de base de datos. El perfilador no está activo de forma predeterminada debido a su posible impacto en el rendimiento. A menos que esta opción esté activada, no se perfilan las consultas.

  • operationProfiling.slowOpThresholdMs configures the threshold which determines whether a query is "slow" for the purpose of the logging system and the profiler. The default value is 100 milliseconds. Set to a lower value if the logging system and the database profiler do not return useful results or set to a higher value to only log the longest running queries.

    Los miembros secundarios de un set de réplicas ahora registran entradas de oplog que tardan más que el umbral de una operación lenta en aplicarse. Estos mensajes lentos del oplog:

    • Se registran para los secundarios en el diagnostic log.

    • Se documentan en el registro bajo el componente REPL con el texto applied op: <oplog entry> took <num>ms.

    • No depende de los niveles de registro (ya sea a nivel del sistema o del componente)

    • No depende del nivel de perfil.

    • Se ven afectados por slowOpSampleRate.

    El perfilador no captura entradas lentas del oplog.

  • systemLog.verbosity controla la cantidad de salida de mongod registro que escribe en el registro. Use esta opción solo si experimenta un problema que no se refleja en el nivel de registro normal.

    También puede especificar el nivel de detalle para componentes específicos mediante la systemLog.component.<name>.verbosity opción. Para conocer los componentes disponibles,component verbosity settings consulte.

Para obtener más información, consulte también Generador de perfiles de base de datos y Rendimiento de MongoDB.

Volver

Configuración y Mantenimiento

En esta página