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

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

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

Для Ubuntu/Debian

  1. Обновите список пакетов:
    sudo apt update
    sudo apt upgrade -y
  2. Импортируйте 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
  3. Добавьте репозиторий 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. Установите MongoDB:
    sudo apt update
    sudo apt install -y mongodb-org
  5. Запустите и включите 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? 😊