MongoDBは、高性能、高可用性、および自動スケーリングを提供するNoSQLデータベースです。 NoSQLデータベースは、MySQLやPostgreSQLとは異なり、保存されたデータを取得または操作するためのSQL(構造化クエリ言語)をサポートしていないことを意味します。
MongoDBはデータをテーブルに保存しません。代わりに、JSON(MongoDBではBSONと呼ばれる)に似た「ドキュメント」構造にデータを格納します。 MongoDBは、6年前の2009年に最初に導入され、現在はMongoDBMongoDBInc.によって開発されています。
このチュートリアルでは、CentOS8サーバーにMongoDB4.4をインストールして構成する方法を示します。 MongoDBをインストールし、いくつかのシステム設定を編集してMongoDBのエラーを修正し、MongoDBの管理者ユーザーを作成してから、MongoDB認証を行います。
前提条件
- CentOS8サーバー
- root権限
- 基本的なLinux/CentOSコマンドを理解する
何をしますか?
- MongoDBリポジトリを追加する
- CentOS8にMongoDBをインストールする
- いくつかのMongoDBエラーを修正
- MongoDB管理者ユーザーを作成する
- MongoDB認証を有効にする
- テスト
まず、SSHユーザーとパスワードを使用してサーバーにログインし、次に次のコマンドを使用してすべてのパッケージを最新バージョンに更新します。
ssh [email protected]
sudo dnf update
次に、「/ etc / yum.repos.d」ディレクトリに移動し、vimエディターを使用して新しいリポジトリファイル「mongodb-4.4.repo」を作成します。
cd /etc/yum.repos.d/
vim mongodb-4.4.repo
次のMongoDB4.4リポジトリを貼り付けます。
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
保存して閉じます。
次に、以下のdnfコマンドを使用して、CentOSシステムで使用可能なすべてのリポジトリを確認します。
sudo dnf repolist
以下は、得られる結果です。
その結果、MongoDBリポジトリがCentOS8システムに追加されました。
MongoDB NoSQLデータベースをインストールするには、以下のdnfコマンドを実行します。
sudo dnf install -y mongodb-org
すべてのインストールが完了したら、MongoDBサービスを開始し、システムブートに追加します。
systemctl start mongod
systemctl enable mongod
MongoDBサービスが稼働しています。以下のコマンドを使用して、サービスを確認してください。
ss -plnt
systemctl status mongod
以下は、得られる結果です。
ご覧のとおり、MongoDBサービスはデフォルトのTCPポート「27017」で実行されています。
この段階で、MongoDBサービスはCentOS8システムで稼働しています。そしてこのステップでは、いくつかのシステム構成を変更していくつかのエラーを修正することにより、MongoDBのインストールを強化します。
-Tunedを使用してTransparentHugePages(THP)を無効にする
MongoDBのインストールパフォーマンスを向上させるには、システムでTHPまたはTransparentHugePagesを無効にする必要があります。また、CentOSシステムの場合、調整されたプロファイル構成を介してTHPを無効にすることができます。
'virtual-guest-no-thp'という名前のカスタム調整済みプロファイル用に新しいディレクトリ'/etc / tuned/virtual-guest-no-thp'を作成します。
sudo mkdir -p /etc/tuned/virtual-guest-no-thp
次に、vimエディターを使用して「/ etc / tuned /virtual-guest-no-thp/」ディレクトリに「tuned.conf」構成を作成します。
vim /etc/tuned/virtual-guest-no-thp/tuned.conf
次の構成を貼り付けます。
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
保存して閉じます。
次に、以下のtuned-admコマンドを使用して、新しいカスタム調整済みプロファイル「virtual-guest-no-thp」をアクティブにします。
sudo tuned-adm profile virtual-guest-no-thp
LinuxステータスでTHPステータスを確認するには、次のコマンドを使用して確認します。
cat /sys/kernel/mm/transparent_hugepage/enabled
ここで、'[決して]'を取得するようにしてください 以下のように応答します。
ご覧のとおり、CentOSシステムのTransparentHugePagesはTunedプロファイルで無効になっています。
-UNIXUlimitのセットアップ
UlimitsまたはUserlimitsは、ユーザーがシステム全体のリソースをどれだけ使用できるかを定義するために使用されます。 MongoDBのパフォーマンスを改善および強化するには、MongoDBサービスのulimit設定を増やす必要があります。
次に、'/etc/security/limits.d/'ディレクトリに移動し、vimエディターを使用して新しい構成'monogd.conf'を作成します。
cd /etc/security/limits.d/
vim mongod.conf
次の構成を貼り付けます。
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
保存して閉じます。
新しい構成を適用するには、以下のコマンドを実行します。
sysctl -p
ここで、エラーがなく、MongoDBのUlimit構成が完了していることを確認してください。
-警告を無効にするMongoDBクラウドモニタリング(オプション)
この段階はオプションです。 MongoDBシェルにログインするときは、MongoDBCloudMonitoringサービスに関する情報を無視できます。
この警告を無効にするには、以下の「mongo」コマンドを使用してMongoDBシェルにログインします。
mongo
次に、次のクエリを実行します。
db.disableFreeMonitoring()
' exitと入力します 'MongoDBシェルからログアウトして、サーバーを再起動します。
sudo reboot
その結果、MongoDBクラウドモニタリングサービスの警告はなくなりました。
このステップでは、「mongo」シェルを使用してMongoDBの管理者ユーザーを作成します。
以下の「mongo」コマンドを使用してMongoDBシェルにログインします。
mongo
次に、「admin」データベースに切り替えます。
use admin
次に、次のクエリを使用して、パスワード「hakasepasswordformongodbadmin」で新しいユーザー「admin」を作成します。
db.createUser(
{
user: "admin",
pwd: "hakasepasswordformongodbadmin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
そして、MongoDBユーザーが作成されました。以下のクエリを使用して、MongoDB上のすべてのユーザーを確認してください。
show users
以下は、得られる結果です。
その結果、MongoDBの管理ユーザーが作成されました。「exit」と入力してMongoDBシェルからログアウトします。
adminユーザーを作成したら、MongoDB認証を有効にして、データベース上のデータを表示するための十分な権限を持たない別のユーザーを防ぎます。
MongoDB認証を有効にするには、vimエディターを使用して構成'/etc/mongod.conf'を編集します。
vim /etc/mongod.conf
「セキュリティ」オプションのコメントを解除し、以下のように構成を追加します。
security
authorization: "enabled"
保存して閉じます。
次に、MongoDBサービスを再起動して、新しい構成を適用します。
systemctl restart mongod
エラーがなく、MongoDB認証が有効になっていることを確認してください。
MongoDB認証のインストールと構成をテストするには、MongoDBシェルを介して確認できます。
以下のコマンドを使用してMongoDBシェルにログインします。
mongo
次に、データベース「admin」に切り替えて、次のクエリを使用してMongoDB上のすべてのユーザーを表示します。
use admin
show users
以下は、得られる結果です。
ご覧のとおり、データベース「admin」にすべてのユーザーリストを表示することは許可されていません。
次に、次のクエリを使用してMongoDBサーバーに対して認証します。
db.auth('admin', 'hakasepasswordformongodbadmin')
ここで、応答番号が '1'であることを確認してください。 、これは認証が成功したことを意味します。
次に、以下のクエリを使用して、MongoDBサーバーで利用可能なすべてのユーザーを表示および確認できます。
show users
そして、作成したばかりのMongoDB管理者が一番上に表示されます。
その結果、CentOS8システムへのMongoDBNoSQLデータベースサーバーのインストールと構成は正常に完了しました。