Керування MongoDB на Linux VPS включає встановлення, налаштування, безпеку та оптимізацію продуктивності.

1. Встановлення MongoDB на Linux VPS

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

Для Ubuntu/Debian

  1. Оновити список пакунків:
    sudo apt update
    sudo apt update -y
  2. Імпортуйте ключ MongoDB GPG:
    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
    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()

Видалення бази даних

use mydatabase
db.dropDatabase()

5. Резервне копіювання та відновлення

Створення резервної копії бази даних MongoDB

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

Відновлення бази даних MongoDB

mongorestore --db=mydatabase /backup/mydatabase/ --db=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* -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? 😊