Home » Установка MongoDB на Ubuntu 24
Установка MongoDB на Ubuntu 24

Установка MongoDB на Ubuntu 24

Очередной апдейт Ubuntu, очередные “нюансы” с установкой MongoDB. Если вы уже сталкивались с установкой MongoDB на предыдущих версиях Ubuntu, то знаете, что каждый релиз приносит свои особенности. Ubuntu 24 не исключение — тут есть свои подводные камни, которые могут заставить потратить лишние пару часов на debugging. В этой статье разберём весь процесс установки MongoDB на Ubuntu 24 step-by-step, покажем практические примеры и поделимся рабочими решениями для типичных проблем.

Что нового в Ubuntu 24 и как это влияет на MongoDB

Ubuntu 24 принесла изменения в системе управления пакетами, обновлённые зависимости и новые политики безопасности. MongoDB, как и многие другие NoSQL базы данных, требует особого подхода к установке — особенно если вы планируете использовать её в продакшене.

Основные изменения, которые влияют на установку MongoDB:

  • Обновлённая версия systemd с новыми security policies
  • Изменения в репозиториях и GPG-ключах
  • Новые требования к SSL/TLS сертификатам
  • Модифицированные firewall правила по умолчанию

Подготовка системы

Перед установкой MongoDB рекомендую обновить систему и установить необходимые зависимости. Если у вас ещё нет VPS с Ubuntu 24, можете заказать VPS или выделенный сервер для более серьёзных нагрузок.


sudo apt update && sudo apt upgrade -y
sudo apt install wget curl gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release

Установка MongoDB: пошаговый процесс

Есть несколько способов установки MongoDB на Ubuntu 24. Рассмотрим самые надёжные и проверенные методы.

Метод 1: Официальный репозиторий MongoDB

Самый рекомендуемый способ — использование официального репозитория MongoDB. Это гарантирует получение последней стабильной версии и регулярные обновления.


# Добавляем GPG ключ MongoDB
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

# Добавляем репозиторий
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# Обновляем индекс пакетов
sudo apt update

# Устанавливаем MongoDB
sudo apt install -y mongodb-org

Метод 2: Установка через snap

Альтернативный способ — использование snap пакетов. Проще в установке, но может иметь ограничения в конфигурации.


sudo snap install mongodb

Конфигурация и первый запуск

После установки MongoDB нужно правильно настроить и запустить службу. Конфигурационный файл находится в /etc/mongod.conf.


# Запускаем MongoDB
sudo systemctl start mongod

# Включаем автозапуск
sudo systemctl enable mongod

# Проверяем статус
sudo systemctl status mongod

Основные параметры конфигурации, которые стоит проверить:

  • bindIp — по умолчанию 127.0.0.1, для продакшена нужно настроить корректно
  • port — стандартный порт 27017
  • dbPath — путь к данным, обычно /var/lib/mongodb
  • logPath — путь к логам, обычно /var/log/mongodb/mongod.log

Создание пользователя и настройка аутентификации

По умолчанию MongoDB запускается без аутентификации. Для продакшена это критический недостаток безопасности.


# Подключаемся к MongoDB
mongosh

# Создаём администратора
use admin
db.createUser({
user: "admin",
pwd: "your_secure_password",
roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]
})

# Выходим
exit

Теперь включаем аутентификацию в конфигурационном файле:


sudo nano /etc/mongod.conf

# Добавляем секцию security
security:
authorization: enabled

Перезапускаем MongoDB:


sudo systemctl restart mongod

Типичные проблемы и их решения

Проблема Симптом Решение
Ошибка GPG ключа GPG error при apt update Перезагрузить ключ с флагом –dearmor
Не запускается служба systemctl status показывает failed Проверить права на /var/lib/mongodb и /var/log/mongodb
Не может подключиться Connection refused Проверить bindIp в конфигурации и firewall
Медленная работа Долгие запросы Настроить индексы и оптимизировать конфигурацию

Настройка firewall

Ubuntu 24 поставляется с активированным UFW. Нужно открыть порт для MongoDB:


# Разрешаем доступ к MongoDB только с локальной сети
sudo ufw allow from 192.168.0.0/16 to any port 27017

# Или для конкретного IP
sudo ufw allow from YOUR_IP_ADDRESS to any port 27017

# Проверяем статус
sudo ufw status

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

Несколько практических советов для повышения производительности MongoDB на Ubuntu 24:

  • Отключите transparent huge pages — они могут снижать производительность MongoDB
  • Настройте правильный размер oplog — особенно важно для replica sets
  • Используйте WiredTiger storage engine — это default в современных версиях
  • Настройте мониторинг — используйте MongoDB Compass или сторонние решения


# Отключаем transparent huge pages
echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' | sudo tee /sys/kernel/mm/transparent_hugepage/defrag

# Делаем изменения постоянными
sudo nano /etc/rc.local
# Добавляем строки выше в файл

Сравнение с альтернативами

MongoDB не единственная NoSQL база данных. Вот сравнение с основными конкурентами:

СУБД Тип Производительность Простота установки Экосистема
MongoDB Document Высокая Средняя Отличная
PostgreSQL Relational + JSON Очень высокая Простая Отличная
CouchDB Document Средняя Простая Хорошая
Redis Key-value Очень высокая Очень простая Хорошая

Интеграция с другими инструментами

MongoDB отлично интегрируется с популярными инструментами разработки и DevOps:

  • Docker — официальные образы MongoDB доступны на Docker Hub
  • Kubernetes — можно использовать MongoDB Operator
  • Node.js — native поддержка через mongoose и mongodb драйверы
  • Python — PyMongo и Motor для async операций
  • Monitoring — Prometheus + Grafana для мониторинга метрик

Автоматизация и скрипты

Для автоматизации развёртывания MongoDB можно использовать Ansible playbook:


- name: Install MongoDB on Ubuntu 24
hosts: servers
become: yes
tasks:
- name: Add MongoDB GPG key
apt_key:
url: https://www.mongodb.org/static/pgp/server-7.0.asc
state: present

- name: Add MongoDB repository
apt_repository:
repo: "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse"
state: present

- name: Install MongoDB
apt:
name: mongodb-org
state: present
update_cache: yes

- name: Start MongoDB
systemd:
name: mongod
state: started
enabled: yes

Мониторинг и обслуживание

Для продакшена критически важно настроить мониторинг MongoDB. Основные метрики для отслеживания:

  • Использование памяти и дискового пространства
  • Количество активных соединений
  • Время выполнения запросов
  • Replica set health (если используется)
  • Oplog размер и использование


# Простой скрипт мониторинга
#!/bin/bash
echo "MongoDB Status Check"
echo "===================="
systemctl is-active mongod
echo "Active connections:"
mongosh --eval "db.serverStatus().connections" --quiet
echo "Memory usage:"
mongosh --eval "db.serverStatus().mem" --quiet

Интересные факты и нестандартные применения

MongoDB можно использовать не только как основную базу данных:

  • Логирование — структурированные логи приложений
  • Кэширование — TTL индексы для автоматического удаления данных
  • Очереди задач — с использованием capped collections
  • Геопространственные данные — встроенная поддержка GeoJSON
  • Полнотекстовый поиск — text индексы для простого поиска

Заключение и рекомендации

Установка MongoDB на Ubuntu 24 не такая уж сложная задача, если знать подводные камни. Основные рекомендации:

  • Используйте официальный репозиторий — это гарантирует актуальность и безопасность
  • Всегда настраивайте аутентификацию — даже для development окружения
  • Мониторьте производительность — MongoDB может быть очень быстрой, но только при правильной настройке
  • Регулярно делайте бэкапы — используйте mongodump или более продвинутые решения
  • Изучите документацию — MongoDB имеет отличную документацию на официальном сайте

Для продакшена рекомендую использовать replica sets минимум из 3 нод и настроить proper backup strategy. Если планируете высокие нагрузки, рассмотрите возможность использования выделенных серверов вместо VPS.

MongoDB — мощный инструмент, который при правильной настройке может значительно упростить разработку и обеспечить высокую производительность. Главное — не забывайте о безопасности и мониторинге!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked