Как установить и настроить OrientDB в Ubuntu 16.04

Вступление

OrientDB - многомодельная база данных NoSQL с поддержкой графических и документальных баз данных. Это приложение Java и может работать в любой операционной системе. Это также полностью ACID-жалоба с поддержкой репликации нескольких мастеров, что позволяет легко горизонтальное масштабирование.

В этой статье вы установите и сконфигурируете последнюю версию OrientDB для сообщества на сервере Ubuntu 16.04.

Предпосылки

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

  • Один сервер Ubuntu 16.04 с минимум 2 ГБ ОЗУ в идеале, но даже 512 МБ будет работать.

  • Пользователь sudo без полномочий root и брандмауэр, настроенный в соответствии с этимInitial Server Setup with Ubuntu 16.04.

  • Установлена ​​Java, что можно сделать, выполнивthe JDK 8 step of this Java installation guide.

[[шаг-1 -—- загрузка-и-установка-orientdb]] == Шаг 1. Загрузка и установка OrientDB

На этом этапе мы загрузим последнюю версию OrientDB для сообщества и установим ее в каталог/opt, традиционное место для установки сторонних приложений в Linux.

Перед началом убедитесь, что пакеты в вашей системе обновлены.

sudo apt-get update

Net, скачайте последнюю версию сообщества OrientDB. Во время публикации это 2.2.20, но вы можете проверитьthe project’s download page на наличие последней версии и изменить номер версии в приведенной ниже команде, чтобы он соответствовал.

wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux

Загруженный архив содержит предварительно скомпилированные двоичные файлы, которые вам нужны для запуска OrientDB в вашей системе, поэтому все, что вам нужно сделать сейчас, это распаковать его.

tar -zxvf orientdb-community-2.2.20.tar.gz

Файлы извлекаются в каталог с именемorientdb-community-2.2.20. Теперь вам нужно переместить его в/opt+`directory, renaming it to `+orientdb в процессе.

sudo mv ~/orientdb-community-2.2.20 /opt/orientdb

OrientDB теперь установлен. Если вы используете сервер с ограниченным объемом памяти, вы можете настроить OrientDB на использование меньшего объема ОЗУ на следующем шаге. В противном случае вы можете перейти к шагу 3, чтобы запустить сам сервер.

[[step-2 -—- configuring-orientdb-to-use-less-ram-optional]] == Шаг 2 - Настройка OrientDB для использования меньшего количества ОЗУ (необязательно)

По умолчанию демон OrientDB ожидает наличие как минимум 2 ГБ оперативной памяти и не сможет запуститься, если обнаружит меньше. Вы увидите ошибку, подобную этой, если вы все равно попытаетесь ее запустить:

Outputubuntu-orientdb server.sh[1670]: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000aaaa0000, 1431699456, 0) failed; error='Cannot allocate memory' (errno=12)
ubuntu-orientdb server.sh[1670]: # There is insufficient memory for the Java Runtime Environment to continue.

Вы можете сделать одно изменение конфигурации, которое позволит вам использовать сервер с 512 МБ ОЗУ. Это функция настройки в файлеserver.sh, которую можно изменить, чтобы демон мог запускаться с гораздо меньшим объемом оперативной памяти.

Откройте файл с помощьюnano или вашего любимого текстового редактора.

sudo nano /opt/orientdb/bin/server.sh

Затем выделите раздел, содержащий фрагмент кода, показанный в этом блоке кода:

/opt/orientdb/bin/server.sh

. . .
# ORIENTDB memory options, default to 2GB of heap.

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
    ORIENTDB_OPTS_MEMORY="-Xms2G -Xmx2G"
fi
. . .

Вам нужно изменить значенияXms иXmx, которые определяют начальный и максимальный пул распределения памяти для виртуальной машины Java. По умолчанию они установлены на 2 ГБ.

Вы можете установить новые значения, которые меньше объема ОЗУ, выделенного серверу, но убедитесь, чтоXms составляет не менее 128 МБ, иначе OrientDB не запустится. Например, приведенные ниже значения устанавливают начальный и максимальный объем оперативной памяти равными 128 МБ и 256 МБ соответственно.

/opt/orientdb/bin/server.sh

# ORIENTDB memory options, default to 2GB of heap.

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
    ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
fi

Сохраните и закройте файл. На следующем шаге вы запустите OrientDB.

[[step-3 -—- start-the-server]] == Шаг 3 - Запуск сервера

Теперь, когда двоичный файл установлен, и вы дополнительно настроили сервер на использование меньшего объема ОЗУ, теперь вы можете запустить сервер и подключиться к консоли.

Перейдите в каталог установки.

cd /opt/orientdb

Затем запустите сервер.

sudo bin/server.sh

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

Часть выходных данных, генерируемых при запуске сервера, сообщает вам, какие порты прослушивают сервер и OrientDB Studio.

Output2017-02-04 19:13:21:306 INFO  Listening binary connections on 0.0.0.0:2424 (protocol v.36, socket=default) [OServerNetworkListener]
2017-02-04 19:13:21:310 INFO  Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=default) [OServerNetworkListener]
. . .
2017-02-04 19:13:21:372 INFO  OrientDB Studio available at http://192.168.0.30:2480/studio/index.html [OServer]
2017-02-04 19:13:21:374 INFO  OrientDB Server is active v2.2.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000).
[OServer]

Когда вы видите это, OrientDB теперь работает в вашем текущем терминале. Давайте подтвердим, что сервер прослушивает соответствующие порты.

Откройте второй терминал и подключитесь к тому же серверу через SSH.

ssh sammy@your_server_ip

Затем в этом втором терминале подтвердите, что сервер прослушивает порты2424 (для двоичных соединений) и2480 (для соединений HTTP) с помощью следующей команды.

sudo netstat -plunt | grep -i listen

Вывод должен содержать ссылки на оба номера порта, например так:

Outputtcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1160/sshd
tcp6       0      0 :::2480                 :::*                    LISTEN      2758/java
tcp6       0      0 :::22                   :::*                    LISTEN      1160/sshd
tcp6       0      0 :::2424                 :::*                    LISTEN      2758/java

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

[[step-4 -—- connected-to-the-console]] == Шаг 4 - Подключение к консоли

Консоль OrientDB - это интерфейс командной строки для работы с приложением. Чтобы запустить его, введите:

sudo /opt/orientdb/bin/console.sh

Вы увидите следующее:

OutputOrientDB console v.2.2.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000) www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0


orientdb>

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

connect remote:127.0.0.1 root root-password

Вы увидите этот вывод, если вы успешно подключитесь.

OutputConnecting to remote Server instance [remote:127.0.0.1] with user 'root'...OK
orientdb {server=remote:127.0.0.1/}>

Если вы этого не сделаете, дважды проверьте, правильно ли вы ввели пароль root и что OrientDB все еще работает в вашем первом терминале.

Когда вы будете готовы, введитеexit во втором терминале, чтобы выйти из приглашения OrientDB.

exit

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

[[step-5 -—- configuring-orientdb-as-a-daemon]] == Шаг 5 - Настройка OrientDB как демона

На данный момент OrientDB установлен, но это всего лишь набор сценариев на сервере. На этом шаге мы настроим его для запуска в системе в качестве демона. Это включает изменение сценария/opt/orientdb/bin/orientdb.sh и файла конфигурации/opt/orientdb/config/orientdb-server-config.xml.

Сначала введитеCTRL+C в первом окне терминала, пока OrientDB все еще работает, чтобы остановить его. Вы также можете закрыть второе соединение терминала сейчас.

Давайте начнем с изменения сценария/opt/orientdb/bin/orientdb.sh, чтобы указать OrientDB пользователю, от имени которого он должен запускаться, и указать ему каталог установки.

Итак, создайте системного пользователя, от которого вы хотите, чтобы OrientDB запускался. В этом примере мы создаем пользователяorientdb. Команда также создаст группуorientdb:

sudo useradd -r orientdb -s /sbin/nologin

Передайте права собственности на каталог и файлы OrientDB только что созданному пользователю и группе OrientDB.

sudo chown -R orientdb:orientdb /opt/orientdb

Теперь внесем несколько изменений в скриптorientdb.sh.

sudo nano /opt/orientdb/bin/orientdb.sh

Во-первых, нам нужно указать его в правильном каталоге установки, а затем указать, с каким пользователем он должен работать. Так что ищите следующие две строки в верхней части файла:

/opt/orientdb/bin/orientdb.sh

. . .
# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"
. . .

И измените их на/opt/orientdb иorientdb соответственно.

/opt/orientdb/bin/orientdb.sh

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"

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

Затем измените разрешения файла конфигурации сервера, чтобы предотвратить его чтение неавторизованными пользователями.

sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml

Вы можете узнать больше о правах доступа к файлам вthis Linux permissions tutorial.

На следующем шаге мы настроим демона так, чтобы им управлялSystemd, the service manager.

[[step-6 -—- install-the-systemd-startup-script]] == Шаг 6 - Установка сценария запуска Systemd

OrientDB поставляется с файлом дескриптора службы Systemd, который будет отвечать за запуск и остановку службы. Этот файл нужно скопировать в каталог/etc/systemd/system.

sudo cp /opt/orientdb/bin/orientdb.service /etc/systemd/system

В этом файле есть несколько настроек, которые нам нужно изменить, поэтому откройте его для редактирования.

sudo nano /etc/systemd/system/orientdb.service

Измените переменныеUser,Group иExecStart вService, чтобы они соответствовали вашей установке. Вы устанавливаете пользователя и группу на шаге 5 (они оба являютсяorientdb, если вы дословно следовали шагу). ExecStart указывает путь к сценарию, который должен начинаться с/opt/orientdb, если вы следовали этому руководству, как написано.

/etc/systemd/system/orientdb.service

. . .

[Service]
User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh

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

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

sudo systemctl daemon-reload

Теперь, когда все готово, вы можете запустить сервис OrientDB.

sudo systemctl start orientdb

И убедитесь, что он запустится при загрузке.

sudo systemctl enable orientdb

Убедитесь, что он действительно начался, проверив состояние процесса.

sudo systemctl status orientdb
Output● orientdb.service - OrientDB Server
   Loaded: loaded (/etc/systemd/system/orientdb.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-02-04 20:54:27 CST; 11s ago
 Main PID: 22803 (java)
    Tasks: 14
   Memory: 126.4M
. . .

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

[[step-7 -—- connected-to-orientdb-studio]] == Шаг 7. Подключение к OrientDB Studio

OrientDB Studio - это веб-интерфейс для управления OrientDB. Это полезно для целей тестирования, хотяbetter security practice позволяет полностью ограничить доступ к нему.

Если вы хотите включить его для тестирования, вам нужно добавить правило в брандмауэр. По умолчанию OrientDB studio прослушивает порт2480, поэтому, если вы настроили брандмауэр на сервере, вам нужно будет разрешить доступ к порту2480.

sudo ufw allow 2480

Затем перезапустите UFW.

sudo systemctl restart ufw

Чтобы подключиться к OrientDB Studio, посетитеhttp://your_server_ip:2480 в своем браузере. Как только страница загрузится, вы увидите экран входа в систему.

Вы можете войти какroot с паролем, который вы установили ранее. Вы также можете выбрать базу данныхGratefulDeadConcerts и войти в систему, используя одну из учетных записей пользователей по умолчанию, включенных в OrientDB (admin,reader илиwriter).

Заключение

Вы только что установили Community Edition OrientDB на свой сервер Ubuntu 16.04, настроили его конфигурацию и настроили его как демон, которым будет управлять systemd.

Затем вы должны защитить приложение от неавторизованных пользователей, применив несколько советов по безопасности с использованиемthis OrientDB security tutorial. Если у вас есть существующая установка OrientDB, которую необходимо импортировать в новую установку, используйтеthis migration guide, который был написан для Ubuntu 14.04, но также будет работать для Ubuntu 16.04.

Для получения дополнительной информации об OrientDB посетитеthe project’s official documentation.

Related