¿Cómo administrar MongoDB en Linux?

Popular:
¡MEJORA LA CONFIGURACIÓN DE TU SERVIDOR! APLICAR AVA Y LANZA CON UN 15% DE DESCUENTO
USA EL CÓDIGO PROMOCIONAL:

Gestionar MongoDB en un Linux VPS implica instalación, configuración, seguridad y optimización del rendimiento.

Gestionar MongoDB en un Linux VPS es esencial para desarrolladores y administradores de sistemas que buscan aprovechar todo el potencial de esta potente base de datos NoSQL. Desde la instalación y configuración hasta la seguridad y la optimización del rendimiento, una configuración de MongoDB bien gestionada garantiza fiabilidad, escalabilidad y eficiencia para sus aplicaciones.

Siguiendo los pasos completos descritos en nuestra guía, puede asegurarse de que su instancia de MongoDB no solo esté operativa, sino también segura y optimizada para el rendimiento. Implementar las mejores prácticas en instalación, autenticación, control de acceso y gestión de recursos proporcionará una base sólida para sus aplicaciones basadas en datos. La supervisión y el mantenimiento regulares garantizan además que su base de datos siga siendo receptiva y resistente a las demandas cambiantes.

Para quienes buscan agilizar la gestión de MongoDB, considere aprovechar herramientas de automatización y scripts para manejar tareas rutinarias de manera eficiente. Además, explorar interfaces gráficas como MongoDB Compass o NoSQLBooster puede simplificar las interacciones con la base de datos, especialmente para consultas complejas y visualización de datos. Al integrar estas herramientas en su flujo de trabajo, puede mejorar la productividad y mantener un entorno de MongoDB de alto rendimiento.
Baeldung.

1. Instalando MongoDB en Linux VPS

MongoDB se puede instalar usando gestores de paquetes como apt (para Debian/Ubuntu) o yum (para CentOS/RHEL).

Para Ubuntu/Debian

  1. Actualizar la lista de paquetes:
    sudo apt update 
    sudo apt upgrade -y
  2. Importar la clave GPG de MongoDB:
    curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-keyring.gpg

    **Ejecute el siguiente comando para añadir la clave pública faltante:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B00A0BD1E2C63C11
    o

    **Ejecute este comando para importar manualmente la clave:

    wget -qO - https://pgp.mongodb.com/server-5.0.asc | sudo tee /etc/apt/trusted.gpg.d/mongodb-server-5.0.

    Compruebe si la clave se añadió correctamente:

    gpg --dry-run --quiet --import --import-options import-show /etc/apt/trusted.gpg.d/mongodb-server
  3. Añadir el repositorio de MongoDB:
    Ubuntu:
    echo "deb [signed-by=/usr/share/keyrings/mongodb-server-keyring.gpg] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
    Debian:
    echo "deb [signed-by=/etc/apt/trusted.gpg.d/mongodb-server-5.0.asc] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  4. Instalar MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  5. Iniciar y habilitar MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod

Para CentOS/RHEL

  1. Añadir el repositorio de MongoDB:
    sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo <<EOF
    [mongodb-org-6.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
    EOF

  2. Instalar MongoDB:
    sudo yum install -y mongodb-org
  3. Iniciar y habilitar MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod

2. Protegiendo MongoDB

De forma predeterminada, MongoDB escucha en localhost (127.0.0.1). Para protegerlo:

Habilitar autenticación

  1. Crear un usuario administrador:
    mongosh
    use admin
    db.createUser({
    user: "admin",
    pwd: "StrongPassword",
    roles: [{ role: "root", db: "admin" }]
    })
  2. Habilitar autenticación en el archivo de configuración de MongoDB:
    sudo nano /etc/mongod.conf

    Busque la sección security y añada:

    security:
    authorization: enabled
  3. Reiniciar MongoDB:
    sudo systemctl restart mongod

Restringir el acceso externo

  1. Modificar MongoDB para escuchar solo en localhost:
    sudo nano /etc/mongod.conf

    Cambiar:

    bindIp: 127.0.0.1
  2. Usar UFW (Ubuntu) o FirewallD (CentOS) para permitir solo IPs específicas:
    sudo ufw allow from YOUR_IP to any port 27017

3. Gestionando MongoDB

Comprobar el estado del servicio MongoDB

sudo systemctl status mongod

Reiniciar MongoDB

sudo systemctl restart mongod

Detener MongoDB

sudo systemctl stop mongod

Habilitar MongoDB para iniciar al arrancar

sudo systemctl enable mongod

4. Gestionando bases de datos en MongoDB

Conectarse a MongoDB

mongosh

Crear una base de datos

use mydatabase

Mostrar bases de datos

show dbs

Crear una colección

db.createCollection("users")

Insertar datos

db.users.insertOne({ name: "John Doe", age: 30, email: "john@example.com" })

Buscar datos

db.users.find()

Eliminar una base de datos

use mydatabase
db.dropDatabase()

5. Copias de seguridad y restauraciones

Respaldar la base de datos MongoDB

mongodump --db=mydatabase --out=/backup/

Restaurar la base de datos MongoDB

mongorestore --db=mydatabase /backup/mydatabase/

6. Optimización del rendimiento

Indexación para consultas más rápidas

db.users.createIndex({ email: 1 })

Supervisar el rendimiento

db.serverStatus()

Limitar el uso de memoria

Modifique wiredTigerCacheSizeGB en /etc/mongod.conf:

storage:
wiredTiger:
engineConfig:
cacheSizeGB: 1

Usar agrupación de conexiones

Modifique /etc/mongod.conf:

net:
maxIncomingConnections: 1000

7. Registros y depuración

Ver los registros de MongoDB

sudo journalctl -u mongod --no-pager | tail -n 50

Comprobar los registros de errores

sudo cat /var/log/mongodb/mongod.log

8. Desinstalar MongoDB (si es necesario)

Para Ubuntu/Debian

sudo systemctl stop mongod
sudo apt purge -y mongodb-org*
sudo rm -r /var/log/mongodb /var/lib/mongodb

Para CentOS/RHEL

sudo systemctl stop mongod
sudo yum remove -y mongodb-org*
sudo rm -r /var/log/mongodb /var/lib/mongodb

Conclusión

Gestionar MongoDB en un Linux VPS requiere una instalación adecuada, endurecimiento de la seguridad y optimización del rendimiento. Siguiendo estos pasos, se asegura de que su base de datos MongoDB funcione de manera eficiente y segura. 🚀

¿Le gustaría ayuda con scripts de automatización para gestionar MongoDB? 😊