- Home »

Установка 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 — мощный инструмент, который при правильной настройке может значительно упростить разработку и обеспечить высокую производительность. Главное — не забывайте о безопасности и мониторинге!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.