前書き

OrientDBは、グラフおよびドキュメントデータベースをサポートするマルチモデルNoSQLデータベースです。 これはJavaアプリケーションであり、任意のオペレーティングシステムで実行できます。 また、マルチマスターレプリケーションをサポートするACIDに完全に対応しており、簡単な水平スケーリングが可能です。

この記事では、Ubuntu 16.04サーバーにOrientDBの最新のコミュニティエディションをインストールして構成します。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • 理想的には、少なくとも2GBのRAMを搭載したUbuntu 16.04サーバー1台ですが、512MBでも動作します。

  • このhttps://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04[Ubuntu 16.04での初期サーバーセットアップ]に従ってセットアップされたsudo非ルートユーザーおよびファイアウォール。

  • Javaがインストールされています。https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-get-on-ubuntu-16-04#installing-the-oracleに従って実行できます。 -jdk [このJavaインストールガイドのJDK 8ステップ]。

ステップ1-OrientDBのダウンロードとインストール

このステップでは、OrientDBの最新のコミュニティエディションをダウンロードし、Linuxでサードパーティアプリケーションをインストールするための従来の場所である `+ / opt +`ディレクトリにインストールします。

開始する前に、システム上のパッケージが最新であることを確認してください。

sudo apt-get update

ネット、OrientDBコミュニティの最新バージョンをダウンロードしてください。 公開時には2.2.20ですが、http://orientdb.com/download [プロジェクトのダウンロードページ]で最新バージョンを確認し、以下のコマンドでバージョン番号を変更して一致させることができます。

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

ダウンロードしたtarballには、システムでOrientDBを実行するために必要なコンパイル済みのバイナリファイルが含まれているため、ここで必要なのはuntarするだけです。

tar -zxvf orientdb-community-.tar.gz

ファイルは、「+ orientdb-community- 」という名前のディレクトリに抽出されます。 ここで、それを ` / opt `ディレクトリに移動して、プロセスで ` orientdb +`に名前を変更する必要があります。

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

OrientDBがインストールされました。 メモリに制約のあるサーバーを使用している場合、次の手順でOrientDBを構成して、使用するRAMを減らします。 それ以外の場合は、手順3に進んでサーバー自体を起動できます。

手順2-使用するRAMを少なくするためのOrientDBの構成(オプション)

デフォルトでは、OrientDBデーモンは少なくとも2 GBのRAMが使用可能であると想定しており、少ない場合は起動に失敗します。 とにかく起動しようとすると、次のようなエラーが表示されます。

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 MBのRAMを搭載したサーバーを使用して問題を回避できるように、構成を1つ変更できます。 これは `+ server.sh +`ファイルの設定の機能であり、デーモンをはるかに少ないRAMで起動できるように変更できます。

`+ 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仮想マシンの初期および最大メモリ割り当てプールを指定します。 デフォルトでは、2GBに設定されています。

サーバーに割り当てられたRAMの量より少ない新しい値を設定できますが、「+ Xms +」が少なくとも128 MBであるか、OrientDBが起動しないことを確認してください。 たとえば、以下の値は、RAMの初期量と最大量をそれぞれ128MBと256MBに設定します。

/opt/orientdb/bin/server.sh

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

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
   ORIENTDB_OPTS_MEMORY="-Xms -Xmx"
fi

ファイルを保存して閉じます。 次のステップでは、OrientDBを起動します。

手順3-サーバーの起動

バイナリが配置され、必要に応じてより少ないRAMを使用するようにサーバーを構成したので、サーバーを起動してコンソールに接続できます。

インストールディレクトリに移動します。

cd /opt/orientdb

次に、サーバーを起動します。

sudo bin/server.sh

サーバーを初めて起動すると、* root *ユーザーアカウントのパスワードを指定するよう求められます。 これは、OrientDBを管理するためのWebベースのインターフェイスである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 [email protected]; 2017-02-02 07:01:26+0000).
[OServer]

これを見ると、現在の端末でOrientDBが実行されています。 サーバーが適切なポートでリッスンしていることを確認しましょう。

2番目のターミナルを開き、SSHを介して同じサーバーに接続します。

ssh @

次に、その2番目のターミナルで、サーバーが次のコマンドを使用してポート「+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 :::                 :::*                    LISTEN      2758/java
tcp6       0      0 :::22                   :::*                    LISTEN      1160/sshd
tcp6       0      0 :::                 :::*                    LISTEN      2758/java

サーバーが起動し、サーバーの実行を確認したら、次に2番目のターミナルでOrientDBコンソールに接続します。

ステップ4-コンソールへの接続

OrientDBコンソールは、アプリケーションを操作するためのコマンドラインインターフェイスです。 起動するには、次を入力します。

sudo /opt/orientdb/bin/console.sh

以下が表示されます。

OutputOrientDB console v.2.2.20 (build [email protected]; 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

接続に成功すると、この出力が表示されます。

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

そうでない場合は、rootパスワードを正しく入力し、OrientDBが最初の端末でまだ実行されていることを再確認してください。

準備ができたら、2番目のターミナルで「+ exit +」と入力してOrientDBプロンプトを終了します。

exit

OrientDBをインストールし、手動で起動し、接続しました。 これは、OrientDBが機能していることを意味しますが、サーバーを再起動するたびに手動で起動する必要があることも意味します。 次のいくつかの手順では、サーバー上の他のデーモンと同様に実行されるようにOrientDBを構成および設定します。

ステップ5-OrientDBをデーモンとして構成する

この時点で、OrientDBはインストールされていますが、サーバー上の単なるスクリプトの束です。 このステップでは、システム上でデーモンとして実行するように設定します。 それには、 `+ / opt / orientdb / bin / orientdb.sh `スクリプトと設定ファイル ` / opt / orientdb / config / orientdb-server-config.xml +`の変更が含まれます。

まず、OrientDBを停止したまま実行している最初のターミナルウィンドウで「+ CTRL + C +」と入力します。 ここで2番目の端末接続を閉じることもできます。

まず、「+ / 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

まず、適切なインストールディレクトリを指定する必要があります。次に、実行するユーザーを指定する必要があります。 そのため、ファイルの上部に向かって次の2行を探します。

/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=""
ORIENTDB_USER=""

ファイルを保存して閉じます。

次に、サーバー構成ファイルの権限を変更して、権限のないユーザーがファイルを読み取れないようにします。

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

ファイル許可の詳細については、https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-permissions [このLinux許可チュートリアル]を参照してください。

次のステップでは、https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files [Systemd、the service manager]によって制御されるようにデーモンを構成します。

ステップ6-Systemd起動スクリプトのインストール

OrientDBには、サービスの開始と停止を担当するSystemdサービス記述子ファイルが付属しています。 そのファイルは `+ / etc / systemd / system`ディレクトリにコピーする必要があります。

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

このファイルには変更が必要な設定がいくつかあるため、編集用に開いてください。

sudo nano /etc/systemd/system/orientdb.service
  • Service の下の User Group 、および ExecStart 変数を変更して、インストールに一致させます。 手順5でユーザーとグループを設定します(手順をそのまま実行した場合は両方とも orientdb *です)。 * ExecStart *は、スクリプトへのパスを指定します。記述されているとおりにこのチュートリアルに従っている場合、スクリプトは `+ / opt / orientdb +`で始まる必要があります。

/etc/systemd/system/orientdb.service

. . .

[Service]
User=
Group=
ExecStart=/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:  since Sat 2017-02-04 20:54:27 CST; 11s ago
Main PID: 22803 (java)
   Tasks: 14
  Memory: 126.4M
. . .

サーバーが起動しない場合は、出力で手がかりを探してください。 次のステップでは、アプリケーションのWebユーザーインターフェイスであるOrientDB Studioに接続する方法を学びます。

ステップ7-OrientDB Studioへの接続

OrientDB Studioは、OrientDBを管理するためのWebインターフェイスです。 これはテストの目的に役立ちますが、制限するhttps://www.digitalocean.com/community/tutorials/how-to-secure-your-orientdb-database-on-ubuntu-16-04 [より良いセキュリティの実践]完全にアクセスできます。

テスト用に有効にするには、ファイアウォールにルールを追加する必要があります。 デフォルトでは、OrientDBスタジオはポート「2480」でリッスンするため、サーバーにファイアウォールを設定した場合、ポート「2480」へのアクセスを許可する必要があります。

sudo ufw allow 2480

次に、UFWを再起動します。

sudo systemctl restart ufw

OrientDB Studioに接続するには、ブラウザで `+ http://:2480 +`にアクセスしてください。 ページがロードされると、ログイン画面が表示されます。

前に設定したパスワードで* root としてログインできます。 `+ GratefulDeadConcerts +`データベースを選択し、OrientDBに含まれているデフォルトのユーザーアカウントの1つ( admin reader 、または writer *)を使用してログインすることもできます。

結論

Ubuntu 16.04サーバーにOrientDBのCommunityエディションをインストールし、その構成をカスタマイズし、systemdによって管理されるデーモンとしてセットアップしました。

次に、https://www.digitalocean.com/community/tutorials/how-to-secure-your-orientdb-database-on-ubuntu-16-04を使用していくつかのセキュリティのヒントを適用することにより、承認されていないユーザーからアプリケーションを保護する必要があります。 [このOrientDBセキュリティチュートリアル]。 新しいインストールにインポートする必要がある既存のOrientDBインストールがある場合は、https://www.digitalocean.com/community/tutorials/how-to-import-and-export-an-orientdb-database-on-を使用しますubuntu-14-04 [この移行ガイド]。Ubuntu14.04向けに作成されましたが、Ubuntu 16.04でも動作します。

OrientDBの詳細については、http://orientdb.com/docs/last/index.html [プロジェクトの公式ドキュメント]をご覧ください。