La línea de comandos and Las interfaces dearchivos 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
yumoapten Linux obrewen macOS, o con el instalador MSI en Windows, se ha proporcionado un archivo de configuración por defecto como parte de la instalación:PlataformaMétodoarchivo de configuraciónLinux
aptAdministrador de paquetesyumozypper./etc/mongod.confmacOS
brewGestor 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.cfgSi instaló MongoDB mediante un archivo
TGZoZIPdescargado, debe crear su propio archivo de configuración. El ejemplo básico de configuración es un buen punto de partida.
Para instalaciones de paquetes de MongoDB en Linux o macOS, también se proporciona un script de inicialización que utiliza este archivo de configuración por defecto. Este script de inicialización puede ser utilizado para iniciar el mongod en estas plataformas de la siguiente manera:
En los sistemas Linux que utilizan el sistema de inicialización systemd (el comando
systemctl):sudo systemctl start mongod En sistemas Linux que utilizan el sistema init SystemV (el
servicecomando):sudo service mongod start En macOS, utiliza el gestor de paquetes
brew:brew services start mongodb-community@8.2
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
Modifica los valores en el archivo mongod.conf de tu sistema para controlar la configuración de tu instancia de base de datos.
Configura la base de datos
Considera 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:
forkestrue, lo que habilita un modo demonio paramongod, esto separa (es decir, "... "hace fork") la base de datos MongoDB de la sesión actual y permite que ejecutes la base de datos como un servidor convencional.bindIpes,localhostlo 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").portes27017, que es el puerto por defecto de MongoDB para instancias de bases de datos. MongoDB puede vincularse a cualquier puerto. También puede filtrar el acceso según el puerto mediante herramientas de filtrado de red.Nota
Los sistemas similares a UNIX requieren privilegios de superusuario para conectar procesos a puertos inferiores a 1024.
quiettruees. 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 lasetParameterejecución.dbPathes/var/lib/mongo, que especifica en dónde MongoDB almacenará sus archivos de datos.Si se instaló MongoDB en Linux mediante un gestor de paquetes, como
yumoapt, el archivo/etc/mongod.confincluido con la instalación de MongoDB establece los siguientes valoresdbPathpredeterminados, según la distribución de Linux:PlataformaGestor de paquetespredeterminadodbPathRHEL / CentOS y Amazon
yum/var/lib/mongoSUSE
zypper/var/lib/mongoUbuntu y Debian
apt/var/lib/mongodbmacOS
brew/usr/local/var/mongodbLa cuenta de usuario bajo la que se ejecuta
mongodnecesitará acceso de lectura y escritura a este directorio.systemLog.pathes/var/log/mongodb/mongod.logque es dondemongodguardará su salida. Si no configura este valor,mongodguarda toda la salida en la salida estándar (por ejemplo,stdout.)logAppendes,truelo que garantiza que no sobrescriba un archivo de registro existente después de la operación de inicio delmongodservidor.
Dada la configuración por defecto, algunos de estos valores pueden ser redundantes. Sin embargo, en muchas situaciones, el hecho de expresar la configuración explícitamente incrementa la inteligibilidad general del sistema.
Consideraciones de seguridad
Las siguientes opciones de configuración son útiles para limitar el acceso a una instancia de mongod:
net: bindIp: localhost,10.8.0.10,192.168.4.24,/tmp/mongod.sock security: authorization: enabled
net.bindIpEste ejemplo proporciona cuatro valores en la opción
bindIp:localhostla interfaz localhost;10.8.0.10un dirección IP privada que normalmente se utiliza para redes locales e interfaces de VPN;192.168.4.24una interfaz de red privada que se utiliza normalmente para redes locales; y/tmp/mongod.sock, una ruta de socket de dominio Unix.
Debido a que las instancias de producción de MongoDB necesitan ser accesibles desde varios servidores de bases de datos, es importante vincular MongoDB a múltiples interfaces a las que se pueda acceder desde sus servidores de aplicaciones. Al mismo tiempo es importante limitar estas interfaces a interfaces controladas y protegidas en la capa de red.
security.authorization- Configurar esta opción en
trueactiva el sistema de autorización dentro de MongoDB. Si está habilitado, deberá iniciar sesión conectándose por primera vez a través de la interfazlocalhostpara crear credenciales de usuario.
Tip
Configuración de replicación y fragmentación
Configuración de replicación
La configuración del set de réplicas es sencilla y solo requiere que el replSetName tenga un valor que sea coherente entre todos los nodos 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 Replica Set seguridad 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 general del set de réplicas.
| [1] | Los clústeres sharded y los sets de réplicas pueden usar X.509 para verificación de membresía en lugar de keyfiles. Para obtener más detalles, consulte X.509. |
Configuración de particionado
El particionado requiere mongod instancias con diferentes mongod configuraciones para los servidores de configuración y las particiones. Los servidores de configuración almacenan los metadatos del clúster, mientras que las particiones almacenan los datos.
Para configurar las instancias del servidor de configuración mongod, en el archivo de configuración, especifica configsvr para la configuración de sharding.clusterRole.
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 set de réplicas, los servidores de configuración deben ejecutar el motor de almacenamiento WiredTiger. Initiate el set de réplicas y agregar miembros.
Para configurar las instancias de mongod partición, especifica shardsvr para la setting de sharding.clusterRole y, si ejecutas como un set de réplicas, el nombre del set de réplicas:
sharding: clusterRole: shardsvr replication: replSetName: shardA
Si se ejecuta como un set de réplicas, initiate el set de réplicas de la partición y añade miembros.
Para el router (es decir, mongos), configura al menos un mongos proceso con la siguiente configuración:
sharding: configDB: csRS/10.8.0.12:27001
Puedes especificar miembros adicionales del set de réplicas de servidores de configuración especificando los nombres de host y los puertos en forma de una lista separada por comas después del nombre del set de réplicas.
Tip
La sección Particionado del manual para obtener más información sobre particionado y configuración de clústeres.
Ejecutar múltiples instancias de base de datos en el mismo sistema
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, use una Configuración base para cada instancia, pero tenga en cuenta los siguientes valores de configuración:
storage: dbPath: /var/lib/mongo/db0/ processManagement: pidFilePath: /var/lib/mongo/db0.pid
El valor dbPath controla la ubicación del directorio de datos de la instancia mongod. Asegúrate de que cada base de datos tenga un directorio de datos distinto y bien etiquetado. El pidFilePath controla donde el proceso mongod coloca su archivo de ID de proceso (PID). Como este rastrea el archivo específico mongod, 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 el script de inicio según sea necesario para controlar estos procesos.
| [2] | Los sistemas single-tenant con SSD u otros discos de alto rendimiento pueden ofrecer niveles aceptables de rendimiento para múltiples instancias mongod. Además, es posible que se encuentre con que varias bases de datos con conjuntos de trabajo pequeños pueden funcionar de manera aceptable en un solo sistema. |
Configuraciones de diagnóstico
Las siguientes opciones de configuración controlan varios comportamientos para fines de mongod diagnóstico:
operationProfiling.modeestablece el nivel de perfilador de base de datos. El perfilador no está activo por defecto debido al posible impacto del propio perfilador en el rendimiento. A menos que esta configuración esté activada, las consultas no se perfilan.operationProfiling.slowOpThresholdMsconfigures 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
REPLcon el textoapplied 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.verbositycontrola la cantidad de registros quemongodescribe en el registro. Utiliza esta opción solo si tienes un problema que no se refleja en el nivel de registro normal.También puede especificar el nivel de verbosidad para componentes específicos utilizando el ajuste
systemLog.component.<name>.verbosity. Para los componentes disponibles, consultecomponent verbosity settings.
Para obtener más información, consulte también Generador de perfiles de base de datos y Rendimiento de MongoDB.