Поиск по сайту:

Как установить MongoDB из репозиториев APT по умолчанию в Ubuntu 18.04


Автор выбрал программу Write for DOnations.

Введение

MongoDB, также известная как Mongo, — это бесплатная база данных документов NoSQL с открытым исходным кодом, которая обычно используется в современных веб-приложениях.

В этом руководстве вы установите MongoDB, будете управлять ее службой и, при необходимости, включите удаленный доступ.

Примечание. На момент написания этой статьи в этом руководстве устанавливается версия 3.6 MongoDB, доступная в репозиториях Ubuntu по умолчанию. Однако обычно мы рекомендуем вместо этого установить последнюю версию MongoDB — версию 4.4 на момент написания этой статьи. Если вы хотите установить последнюю версию MongoDB, мы рекомендуем вам следовать этому руководству о том, как установить MongoDB в Ubuntu 18.04 из исходного кода.

Предпосылки

Чтобы следовать этому руководству, вам понадобятся:

  • Один сервер Ubuntu 18.04, настроенный в соответствии с этим руководством по начальной настройке сервера, включая пользователя без полномочий root и брандмауэр.

Шаг 1 — Установка MongoDB

Официальные репозитории пакетов Ubuntu включают MongoDB, что означает, что мы можем установить необходимые пакеты с помощью apt. Как упоминалось во введении, версия, доступная в репозиториях по умолчанию, не является последней. Чтобы установить последнюю версию Mongo, следуйте этому руководству.

Во-первых, обновите список пакетов, чтобы иметь самую последнюю версию списков репозитория:

  1. sudo apt update

Теперь установите сам пакет MongoDB:

  1. sudo apt install -y mongodb

Эта команда устанавливает несколько пакетов, содержащих стабильную версию MongoDB, а также полезные инструменты управления сервером MongoDB. Сервер базы данных запускается автоматически после установки.

Далее давайте проверим, что сервер запущен и работает правильно.

Шаг 2 — Проверка сервиса и базы данных

Процесс установки запустил MongoDB автоматически, но давайте проверим, запущена ли служба и работает ли база данных.

Сначала проверьте статус службы:

  1. sudo systemctl status mongodb

Вы увидите этот вывод:

Output
mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago Docs: man:mongod(1) Main PID: 2312 (mongod) Tasks: 23 (limit: 1153) CGroup: /system.slice/mongodb.service └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Согласно systemd, сервер MongoDB запущен и работает.

Мы можем проверить это дальше, фактически подключившись к серверу базы данных и выполнив диагностическую команду.

Выполните эту команду:

  1. mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Это выведет текущую версию базы данных, адрес и порт сервера, а также вывод команды состояния:

Output
MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Значение 1 для поля ok в ответе указывает на то, что сервер работает правильно.

Далее мы рассмотрим, как управлять экземпляром сервера.

Шаг 3 — Управление службой MongoDB

MongoDB устанавливается как служба systemd, что означает, что вы можете управлять ею с помощью стандартных команд systemd вместе со всеми другими системными службами в Ubuntu.

Чтобы проверить статус службы, введите:

  1. sudo systemctl status mongodb

Вы можете остановить сервер в любое время, набрав:

  1. sudo systemctl stop mongodb

Чтобы запустить сервер, когда он остановлен, введите:

  1. sudo systemctl start mongodb

Вы также можете перезапустить сервер с помощью одной команды:

  1. sudo systemctl restart mongodb

По умолчанию MongoDB настроен на автоматический запуск вместе с сервером. Если вы хотите отключить автоматический запуск, введите:

  1. sudo systemctl disable mongodb

Так же легко включить его снова. Для этого используйте:

  1. sudo systemctl enable mongodb

Далее давайте настроим параметры брандмауэра для нашей установки MongoDB.

Шаг 4 — Настройка брандмауэра (необязательно)

Предполагая, что вы следовали инструкциям руководства по начальной настройке сервера, чтобы включить брандмауэр на вашем сервере, сервер MongoDB будет недоступен из Интернета.

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

Чтобы разрешить доступ к MongoDB через порт по умолчанию 27017 из любой точки мира, вы можете использовать sudo ufw allow 27017. Однако включение доступа к серверу MongoDB через Интернет при установке по умолчанию дает любому неограниченный доступ к серверу базы данных и его данным.

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

  1. sudo ufw allow from your_other_server_ip/32 to any port 27017

Вы можете проверить изменение настроек брандмауэра с помощью ufw:

  1. sudo ufw status

В выводе должен быть разрешен трафик на порт 27017:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

Если вы решили разрешить подключение к серверу MongoDB только определенному IP-адресу, IP-адрес разрешенного местоположения будет указан вместо Anywhere в выходных данных.

Дополнительные параметры брандмауэра для ограничения доступа к службам можно найти в UFW Essentials: общие правила и команды брандмауэра.

Несмотря на то, что порт открыт, MongoDB в настоящее время прослушивает только локальный адрес 127.0.0.1. Чтобы разрешить удаленные подключения, добавьте общедоступный IP-адрес вашего сервера в файл mongod.conf.

Откройте файл конфигурации MongoDB в вашем редакторе:

  1. sudo nano /etc/mongodb.conf

Добавьте IP-адрес вашего сервера в значение bindIP:

[label ]
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Не забудьте поставить запятую между существующим IP-адресом и тем, который вы добавили.

Сохраните файл, выйдите из редактора и перезапустите MongoDB:

  1. sudo systemctl restart mongodb

MongoDB теперь прослушивает удаленные соединения, но любой может получить к ней доступ. Следуйте части 2 инструкции «Как установить и защитить MongoDB в Ubuntu 16.04», чтобы добавить пользователя с правами администратора и дополнительно заблокировать все.

Заключение

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