Как установить и защитить MongoDB на Ubuntu 24.04

MongoDB – это кроссплатформенная и распределенная система баз данных NoSQL (не-SQL или нереляционная) с открытым исходным кодом. Вместо того чтобы хранить данные в таблицах, как традиционные базы данных SQL, MongoDB использует гибкие документы для хранения различных форм данных. Для хранения данных MongoDB использует бинарный формат JSON – BSON.

MongoDB – это распределенная база данных NoSQL со встроенной функцией высокой доступности, автоматическим обходом отказа и избыточностью данных, а также горизонтальным масштабированием с помощью шардинга по распределенным кластерам. Она поддерживает многорегиональное географическое развертывание и предоставляет API запросов, поддерживающий операции CRUD (чтение и запись), конвейер агрегации данных, текстовый поиск и геопространственные запросы.

В этом руководстве мы покажем вам, как установить MongoDB на сервер Ubuntu 24.04. Вы подготовите свой сервер Ubuntu, добавите репозиторий MongoDB, установите сервер MongoDB, создадите администратора для MongoDB, а затем включите аутентификацию MongoDB. Наконец, вы узнаете, как создать пользователя и базу данных в MongoDB с помощью оболочки ‘mongosh’.

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

Перед установкой MongoDB на систему Ubuntu убедитесь, что вы настроили систему. В данном случае вы настроите сервер Ubuntu следующим образом:

  • Отключение прозрачных огромных страниц через systemd
  • Увеличение лимитов для пользователя MongoDB ‘mongod’ по умолчанию
  • Установка максимального лимита fs.file-max и включить swappiness через ‘/etc/systctl.conf‘ файл

Отключение прозрачных огромных страниц (THP)

Чтобы отключить THP в вашей системе, вы создадите новый служебный файл systemd, который будет автоматически выполняться при каждой загрузке или запуске.

Создайте новый служебный файл ‘/etc/systemd/system/disable-thp.service‘ с помощью редактора ‘nano’.

sudo nano /etc/systemd/system/disable-thp.service

Вставьте следующую конфигурацию для отключения THP через сервис.

[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c “echo ‘never’ > /sys/kernel/mm/transparent_hugepage/enabled && echo ‘never’ > /sys/kernel/mm/transparent_hugepage/defrag”

[Install]
WantedBy=multi-user.target

Сохраните файл и выйдите из редактора.

Теперь запустите программу ‘systemctl‘ команда ниже, чтобы перезагрузить менеджер systemd, запустить и включить ‘disable-thp‘ служба. С ее помощью THP будет отключаться при запуске системы.

sudo systemctl daemon-reload
sudo systemctl enable --now disable-thp.service

Настройка ограничений

После отключения THP вам нужно увеличить максимальное количество файлов и процессов по умолчанию для пользователя ‘mongod’ по крайней мере до ‘64000‘.

Создайте новый файл ‘/etc/security/limits.d/mongodb.conf‘ с помощью следующей команды редактора ‘nano’.

sudo nano /etc/security/limits.d/mongodb.conf

Вставьте следующую конфигурацию, чтобы увеличить максимальное количество открытых файлов и процессов до ‘64000‘.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Сохраните файл и выйдите из редактора.

Настройка swappiness и fs.file-max

Наконец, вам нужно увеличить значение по умолчанию ‘fs.file-max‘ и включите swappiness для MongoDB. Для этого вам нужно будет отредактировать файл ‘/etc/sysctl.conf‘ файл.

Откройте файл ‘/etc/sysctl.conf‘ с помощью команды редактора ‘nano’.

sudo nano /etc/sysctl.conf

Вставьте следующую конфигурацию для настройки fs.file-max и включите возможность свопинга.

fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1

После завершения сохраните файл и выйдите из редактора.

Теперь запустите программу ‘sysctl‘ команда ниже, чтобы применить изменения без перезагрузки.

sudo sysctl -p

настройка системы

Установка MongoDB с помощью менеджера пакетов APT

Теперь, когда вы настроили свою систему Ubuntu, вы готовы к установке MongoDB. В этом разделе вы будете устанавливать последнюю версию MongoDB 8.0 из официального репозитория MongoDB.

Сначала запустите команду ‘apt‘ команда ниже, чтобы обновить индекс пакетов Ubuntu и установить ‘gnupg‘ и ‘curl‘ пакеты. Введите ‘Y‘, чтобы подтвердить установку.

sudo apt update && sudo apt install gnupg curl

установить curl

Теперь выполните следующую команду, чтобы добавить ключ GPG и репозиторий для MongoDB. В этом примере вы будете устанавливать MongoDB 8 на ваш сервер Ubuntu 24.04.

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

установить mongodb

Далее запустите команду ‘apt‘ команда ниже, чтобы обновить индекс пакетов и установить ‘mongodb-org‘ пакет в вашу систему. Ввод ‘Y‘, чтобы продолжить установку.

sudo apt update && sudo apt install mongodb-org

установить mongodb

После завершения установки выполните команду ‘systemctl‘ команду ниже, чтобы перезагрузить менеджер systemd. Команда ‘mongod‘ служба добавлена в вашу систему Ubuntu.

sudo systemctl daemon-reload

Наконец, выполните приведенную ниже команду для запуска, включения и проверки MongoDB ‘mongod‘ service. Вы увидите, что MongoDB запущена в вашей системе.

sudo systemctl enable --now mongod
sudo systemctl status mongod

проверить службу mongodb

Обеспечение безопасности сервера MongoDB

После установки MongoDB вам нужно будет обеспечить безопасность установки сервера MongoDB с помощью следующих действий:

  • Создание нового пользователя-администратора для MongoDB с помощью ‘mongosh‘ оболочка
  • Включите аутентификацию MongoDB, отредактировав конфигурацию ‘/etc/mongod.conf‘ файл

Создание пользователя-администратора MongoDB

В этом разделе вы создадите нового пользователя-администратора MongoDB с помощью оболочки ‘mongosh’. Оболочка ‘mongosh’ – это клиентская командная строка для взаимодействия с сервером MongoDB, она подобна ‘mysql’ для MySQL/MariaDB и ‘psql’ для PostgreSQL.

Чтобы создать пользователя admin, войдите на сервер MongoDB с помощью командной строки ‘mongosh‘ команда оболочки ниже.

mongosh

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

disableTelemetry()

войти в mongodb

Далее перейдите к базе данных ‘admin‘ и выполните следующие запросы, чтобы создать нового пользователя-администратора для MongoDB. В этом примере вы создадите нового пользователя ‘myAdmin‘, затем введите новый пароль, когда появится запрос.

use admin
db.createUser(
{
user: "myAdmin",
pwd: passwordPrompt(),
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)

Теперь введите ‘quit()‘ для выхода из оболочки MongoDB.

создать администратора

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

Теперь, когда вы создали пользователя-администратора MongoDB, вы готовы включить аутентификацию MongoDB через ‘/etc/mongod.conf‘ файл.

Откройте стандартную конфигурацию сервера MongoDB ‘/etc/mongod.conf‘ со следующим ‘nano’ команда редактора.

sudo nano /etc/mongod.conf

Добавьте следующие строки, чтобы включить аутентификацию в MongoDB.

security:
authorization: enabled

После завершения сохраните файл и выйдите из редактора.

Теперь запустите программу ‘systemctl‘ команду ниже, чтобы перезапустить сервер MongoDB и применить изменения. После этого аутентификация MongoDB будет включена.

sudo systemctl restart mongod

Проверка аутентификации MongoDB

Теперь, когда вы обеспечили безопасность установки сервера MongoDB, давайте проверим вашу конфигурацию, войдя в MongoDB с помощью оболочки ‘mongosh’ и новых пользователя и пароля admin.

Войдите на сервер MongoDB под пользователем ‘myAdmin‘ с помощью ‘mongosh‘ команда ниже. Введите пароль при появлении запроса.

mongosh --port 27017 --authenticationDatabase \
"admin" -u "myAdmin" -p

вход в mongodb

После входа в систему выполните приведенный ниже запрос, чтобы проверить состояние соединения. Вы должны были войти на сервер MongoDB с помощью ‘myAdmin‘ пользователь.

db.runCommand({connectionStatus : 1})

Теперь введите ‘quit()‘ для выхода из сервера MongoDB.

проверка соединения

Создание базы данных и пользователя в MongoDB

В этом разделе вы узнаете, как создать новую базу данных и пользователя в MongoDB с помощью оболочки ‘mongosh’. Поэтому убедитесь, что вы вошли в MongoDB как пользователь-администратор.

Сначала выполните приведенный ниже запрос, чтобы перейти к базе данных ‘mydb‘.

use mydb

Теперь выполните следующий запрос, чтобы создать нового пользователя ‘myUser‘ и разрешите доступ на чтение и запись к базе данных ‘mydb‘. Введите пароль, когда вас спросят.

db.createUser(
{
user: "myUser",
pwd: passwordPrompt(), // or cleartext password
roles: [ { role: "readWrite", db: "mydb" },
{ role: "read", db: "reporting" } ]
}
)

Введите ‘выйти из игры()‘ для выхода из сервера MongoDB.

создание базы данных и пользователя

Теперь выполните приведенную ниже команду ‘mongosh’, чтобы войти в систему под именем ‘myUser‘ в базу данных ‘mydb‘. Введите пароль при появлении запроса.

mongosh --port 27017 --authenticationDatabase \
"mydb" -u "myUser" -p

вход в систему в качестве нового пользователя

После входа в систему проверьте состояние соединения с помощью следующего запроса.

db.runCommand({connectionStatus : 1})

Ниже видно, что вы подключились к серверу MongoDB с пользователем ‘myUser’ и привилегиями к базе данных ‘mydb‘.

проверка соединения

Заключение

Поздравляем! Вы завершили установку сервера MongoDB на сервер Ubuntu 24.04. Вы также создали пользователя-администратора и обеспечили безопасность установки MongoDB. Затем вы узнали, как использовать ‘mongosh’ для подключения к серверу MongoDB и основные запросы для управления пользователями и базами данных в MongoDB.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *