Как управлять MongoDB в Linux?

Popular:
УЛУЧШИТЕ НАСТРОЙКУ СЕРВЕРА! ПОДКЛЮЧИТЕ AVA И ЗАПУСТИТЕ С 15% СКИДКОЙ
ИСПОЛЬЗУЙ ПРОМО

Управление MongoDB на Linux VPS включает в себя установку, настройку, обеспечение безопасности и оптимизацию производительности.

Table of Contents

1. Установка MongoDB на Linux VPS

MongoDB можно установить с помощью менеджеров пакетов, таких как apt (для Debian/Ubuntu) или yum (для CentOS/RHEL).

Для Ubuntu/Debian

  1. Обновите список пакетов:
    sudo apt update
sudo apt upgrade -y
  • Импортируйте GPG-ключ MongoDB:
    curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-keyring.gpg
  • ** Выполните следующую команду, чтобы добавить недостающий открытый ключ:

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

    ** Выполните эту команду, чтобы вручную импортировать ключ:

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

    Проверьте, успешно ли был добавлен ключ:

    gpg --dry-run --quiet --import --import-options import-show /etc/apt/trusted.gpg.d/mongodb-server
  • Добавьте репозиторий 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
  • Установите MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  • Запустите и включите MongoDB:
    sudo systemctl start mongod
    sudo systemctl enable mongod
  • Для CentOS/RHEL

    1. Добавьте репозиторий 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. Установите MongoDB:
      sudo yum install -y mongodb-org
    3. Запустите и включите MongoDB:
      sudo systemctl start mongod
      sudo systemctl enable mongod

    2. Обеспечение безопасности MongoDB

    По умолчанию MongoDB прослушивает localhost (127.0.0.1). Чтобы защитить его:

    Включите аутентификацию

    1. Создайте пользователя admin:
      mongosh
      use admin
      db.createUser({
      user: "admin",
      pwd: "StrongPassword",
      roles: [{ role: "root", db: "admin" }]
      })
    2. Включите аутентификацию в конфигурационном файле MongoDB:
      sudo nano /etc/mongod.conf

      Найдите раздел безопасности и добавьте:

      security:
      authorization: enabled
    3. Перезапустите MongoDB:
      sudo systemctl restart mongod

    Ограничение внешнего доступа

    1. Измените MongoDB так, чтобы он слушал только localhost:
      sudo nano /etc/mongod.conf

      Изменить:

      bindIp: 127. 0.0.1
    2. Используйте UFW (Ubuntu) или FirewallD (CentOS), чтобы разрешить только определенные IP-адреса:
      sudo ufw allow from YOUR_IP to any port 27017

    3. Управление MongoDB

    Проверьте состояние службы MongoDB

    sudo systemctl status mongod

    Перезапустите MongoDB

    sudo systemctl restart mongod

    Остановить MongoDB

    sudo systemctl stop mongod

    Включите запуск MongoDB при загрузке

    sudo systemctl enable mongod

    4. Управление базами данных в MongoDB

    Подключитесь к MongoDB

    mongosh

    Создайте базу данных

    use mydatabase

    Показать базы данных

    show dbs

    Создайте коллекцию

    db.createCollection("users")

    Вставка данных

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

    Найти данные

    db.users.find()

    Удаление базы данных

    использовать базу данных mydatabase
    db.dropDatabase()

    5. Резервное копирование и восстановление

    Резервное копирование базы данных MongoDB

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

    Восстановление базы данных MongoDB

    mongorestore --db=mydatabase /backup/mydatabase/

    6. Оптимизация производительности

    Индексирование для ускорения запросов

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

    Мониторинг производительности

    db.serverStatus()

    Ограничение использования памяти

    Измените wiredTigerCacheSizeGB в файле /etc/mongod.conf:

    storage:
    wiredTiger:
    engineConfig:
    cacheSizeGB: 1

    Использование пула соединений

    Измените файл /etc/mongod.conf:

    net:
    maxIncomingConnections: 1000

    7. Журналы и отладка

    Просмотр журналов MongoDB

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

    Проверка журналов ошибок

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

    8. Удалите MongoDB (если необходимо)

    Для Ubuntu/Debian

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

    Для CentOS/RHEL

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

    Заключение

    Управление MongoDB на Linux VPS требует правильной установки, усиления безопасности и оптимизации производительности. Следуя этим шагам, вы обеспечите эффективную и безопасную работу базы данных MongoDB. 🚀

    Вам нужна помощь в создании скриптов автоматизации для управления MongoDB? 😊