Uno de los conceptos clave en MongoDB es la gestión de bases de datos. Aspectos importantes como la seguridad, la copia de seguridad, el acceso a las bases de datos son conceptos importantes cuando se trata de la administración de bases de datos.
En este tutorial, aprenderá:
- Descripción general de la seguridad de la base de datos
- Procedimientos de respaldo - mongodump
- Monitoreo Mongodb
- Consideraciones de indexación y rendimiento
Descripción general de seguridad de MongoDB
MongoDB tiene la capacidad de definir mecanismos de seguridad para bases de datos. Por defecto, uno no querría que todos tuvieran acceso abierto a todas las bases de datos en MongoDB, por lo que el requisito de tener algún tipo de mecanismo de seguridad en MongoDB es importante.
Las siguientes son las mejores prácticas al implementar seguridad en bases de datos
-
Habilite el control de acceso: cree usuarios para que todas las aplicaciones y usuarios tengan algún tipo de mecanismo de autenticación al acceder a las bases de datos en MongoDB.
-
Configure el control de acceso basado en roles: a veces puede haber una agrupación lógica de permisos que pueden ser necesarios, que se pueden agrupar en roles. A continuación, se pueden asignar usuarios a estos roles.
-
Intente configurar MongoDB para usar algún tipo de protocolo de cifrado como TLS o SSL. Estos protocolos se pueden utilizar para cifrar el tráfico que fluye entre el cliente y el entorno de base de datos mongo.
-
Configurar la auditoría: los administradores normalmente necesitan saber quién está haciendo qué, lo que ayuda a analizar los problemas más adelante. La mejor forma es habilitar la auditoría en MongoDB.
-
Ejecute la instancia del servidor MongDB con un ID de usuario independiente que tenga acceso a los recursos necesarios en el entorno del servidor.
Procedimientos de copia de seguridad de Mongodb - mongodump
Al trabajar con MongDB, es importante asegurarse siempre de que exista un procedimiento de copia de seguridad en caso de que los datos dentro de MongoDB se corrompan por cualquier motivo.
A continuación se muestran los mecanismos de respaldo disponibles desde MongoDB
- Copia de seguridad copiando archivos de datos subyacentes : este es probablemente el mecanismo más fácil, todo lo que debe hacerse es copiar los archivos de datos en los que reside MongoDB y copiarlos en otra ubicación que idealmente debería ser otro servidor.
- Copia de seguridad de una base de datos con mongodump : la herramienta mongodump lee datos de una base de datos MongoDB y crea archivos BSON de alta fidelidad. Lo que debe tenerse en cuenta es que si el conjunto de datos es de gran volumen, entonces mongodump puede consumir muchos recursos, por lo que para mitigar este problema, la utilidad debe ejecutarse en un servidor secundario.
- Copia de seguridad de MongoDB Cloud Manager : MongoDB Cloud Manager respalda continuamente los conjuntos de réplicas de MongoDB y los clústeres fragmentados mediante la lectura de los datos de registro de operaciones del entorno de MongoDB. MongoDB Cloud Manager puede crear una recuperación en un punto en el tiempo almacenando datos de registro de operaciones para que pueda crear una restauración en cualquier momento para un conjunto de réplicas en particular o un clúster fragmentado.
Monitoreo Mongodb
El monitoreo es una de las actividades administrativas más críticas en MongoDB. Esto se debe a que puede ser más proactivo al monitorear el entorno en busca de posibles problemas que puedan surgir.
A continuación se muestran algunos de los ejemplos para implementar el monitoreo
- mongostat le dirá cuántas operaciones de base de datos, como insertar, consultar, actualizar, eliminar, etc., ocurren realmente en el servidor. Esto le dará una buena idea de cuánta carga está manejando el servidor e indicará si necesita recursos adicionales en el servidor o tal vez servidores adicionales para distribuir la carga.
- mongotop rastrea e informa la actividad actual de lectura y escritura de una instancia de MongoDB, e informa estas estadísticas por colección.
- MongoDB proporciona una interfaz web que expone información de diagnóstico y monitoreo en una página web simple. Puede navegar a la siguiente URL en su servidor local para abrir la utilidad de administración web http: // localhost: 28017
- El comando serverStatus, o db.serverStatus () del shell, devuelve una descripción general del estado de la base de datos, con detalles sobre el uso del disco, el uso de la memoria, las conexiones establecidas al entorno MongoDB, etc.
Consideraciones de rendimiento e indexación de MongoDB
- Los índices son muy importantes en cualquier base de datos y se pueden usar para mejorar la eficiencia de las consultas de búsqueda en MongoDB. Si continuamente realiza búsquedas en su documento, entonces es mejor agregar índices en los campos del documento que se utilizan en los criterios de búsqueda.
- Intente siempre limitar el número de resultados de la consulta devueltos. Suponga que tiene 2 nombres de campo en un documento, pero solo desea ver 2 campos del documento. Luego, asegúrese de que su consulta solo tenga como objetivo mostrar los 2 campos que necesita y no todos los campos.
- Si desea ver determinados valores de campo, utilice solo esos campos en la consulta. No consulte todos los campos de la colección si no son obligatorios.
Resumen:
- Es muy importante implementar seguridad en las bases de datos para garantizar que los datos de la base de datos se mantengan seguros.
- Los usuarios se pueden crear en la base de datos con el comando createUser. Se pueden asignar roles específicos a los usuarios para otorgarles permisos específicos sobre la propia base de datos.
- Se pueden agregar administradores para todas las bases de datos y solo para bases de datos específicas. Esto se logra otorgando el rol userAdmin o userAdminAnyDatabase.
- Siempre haga una copia de seguridad de su entorno MongoDB para que, en caso de cualquier desastre, los datos sean fácilmente recuperables.
- Supervise siempre su entorno MongoDB para ser más proactivo y vea los problemas antes de que ocurran.