MongoDB Enterprise Advanced(EA)版の管理ツール、Ops Managerインストール #mongodb
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
Ops Managerは、MongoDB Enterprise Advanced(EA, 有償版)で提供しているGUIの管理ツールです。Ops Managerは、MongoDBクラスタ―の構築、バックアップ&リストア、モニタリングなどをすべてGUIで操作できる優れたツールです。MongoDB Atlasのようにクラウドサービスも登場していますが、様々な理由からオンプレミスでMongoDBを構築する場合があります。そこで、Ops Managerの導入が難しいということを聞きます。今回は、MongoDB EAの導入を検討している方のためにOps Managerのインストール方法をご紹介します。
Ops Managerを利用すると、次のようなことがGUI上で簡単に実現できます。
- レプリケーションクラスタ―及びシャーディングクラスターを構築する。
- 既存のレプリケーションクラスタ―及びシャーディングクラスターをリバースしてOps Managerの管理下におく。
- データバックアップの設定やリストア(ポイントインタイムリカバリ)を行う。
- メトリックを収集し、モニタリングを行う。
- メトリックに閾値を設定してアラートを行う。
- BIコネクターを入れて、BIツールとの連携を行う。
- バージョン管理を行う。
[参照サイト]
https://docs.opsmanager.mongodb.com/v3.6/tutorial/install-simple-test-deployment/
おそらく、初めてOps Managerを扱う場合、最大の嵌まりポイントは、マニュアルとGUI上の表記の違いや、ネーミングと機能の不整合による誤解かも知れません。次の章を注意して読んでください。
Ops Managerの構成
Ops Managerアプリケーションとオートメーションエージェント
Ops Managerは、大雑把に言うとOps Managerアプリケーションと、MongoDBサーバ側にデプロイされるオートメーションエージェントで構成されています。
Automation Agentの構成
Automation Agentは、MongoDBの各ノードに常駐し、MongoDBのプロセス(mongod)、モニタリングエージェント、バックアップエージェントを行うサービスです。
-
mongod
Ops Managerを導入すると、MongoDBのプロセス(mongod)は、オートメーションエージェントの管理下になります。 -
Monitoring Agent
各ノードのメトリックを収集してOps Managerに転送します。 -
Backup Agent
Oplogのテールを10MBバイトにスライスしてOps Managerに転送します。
Ops Manager Applicationの構成
Ops Managerは、HTTP Serivce、Applicaton DB、Oplog Store、Backup Daemon Serviceで構成されます。
-
HTTP Service
Ops ManagerのGUI、オートメーションエージェントとやり取りを司るサービスです。 -
Application DB
Ops Manager自身の構成情報及びMongoDBクラスタ―の構成情報、メトリックを保存するMongoDBです。 -
Oplog Store
クラスタ―から送られてきたOplogの差分を保存するMongoDBです。バックアップDBとも言います。Oplog Storeのサイズは、日次のユーザデータの増加サイズ、ポイントインタイムリカバリの保存期間に比例します。 -
Backup Daemon
Oplogからオフラインで整合性の取れたデータベースをHEAD dataaseに再現したり、スナップショットを実行します。 -
HEAD database
中身は、MongoDBのファイルです。HEAD dir、HAED directoryとも表記されています。Backup Daemonが管理しているのでMongoDBのプロセスは必要とせず、設定時は格納先を設定するだけでいいです。Oplogから整合性が取れたユーザデータセットを再現するので、ユーザデータとほぼ同等のサイズを消費します。データ圧縮のフォーマットはSnappyなので圧縮効果はあまり期待できません。スナップショット先と、間違わないようにしてください。
Backup Deamon Service
OplogからHAED databaseを構成し、スケジュールに従ってスナップショットを実行します。スナップショットは、複数の方式がありますが、大きく分けると、MongoDBに格納する方法と、ストレージに格納する方式があります。
スナップショットのサイズは、gizpフォーマットなのでおおよそ、ユーザデータサイズの1/3ぐらいです。
-
Block Store
MongoDBのバックアップ(スナップショット)をMongoDBに格納する方式です。つまり、Block Storeとは、MongoDBです。 -
s3
MongoDBのバックアップ(スナップショット)をAWS S3に保存する方式です。 -
File System Snapshot Store
MongoDBのバックアップ(スナップショット)をストレージ(DISK)に保存する方式です。
Ops Manager構成に関する補足
Ops Managerは、1台から構成できます。1台にすべてを詰め込むこともできれば、Ops Managerのアプリケーションと、MongoDBを切り離し、別のサーバにすることも可能です。さらに、MongoDBやOps Managerのアプリケーションを冗長化することも可能です。どのような構成にすべきかは、それぞれのサイトの規模やSLAなどを考慮したオプションではないかと思います。Ops Managerで使うMongoDBは、Ops Managerのコンポネントの一部という位置づけなのでMongoDB EAを使ってもサブスクリプションを購入する必要はありません。
さらに、次のようなことを認識して頂きたいです。
- Ops Managerの構築は、手動で実行する必要がある。
- Ops Managerが使用しているDBは、手動で管理する必要がある。例えば、アプリケーションDBバックアップとか。
Ops Managerのインストール
事前準備
とりあえず、Linuxサーバ1台が必要です。
- Linuxサーバ(ここではLinux7.5)、2vCPU、Memory15GB以上、ルートパーティション50GB以上
- レプリケーションクラスター構築用のサーバ3台(ここまで実行する場合)
- シャーディングクラスター構築用のサーバ3台(ここまで実行する場合)
初期アカウント登録の直後、Ops Managerの運用オプションのタイプなどの設定が求められます。インストール後に設定できますので、殆どはデフォルトでいいですが、SMTP Serverは、本物が求められます(最低、本物のようなフォーマットの情報入力が必要)。
Ops Managerアプリケーション用のMongoDBインストール
MongoDBのレポジトリをインストールします。
$ sudo vi /etc/yum.repos.d/mongo.repo [mongodb-enterprise] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc $ sudo yum install -y mongodb-enterprise-3.6.8 mongodb-enterprise-server-3.6.8 mongodb-enterprise-shell-3.6.8 mongodb-enterprise-mongos-3.6.8 mongodb-enterprise-tools-3.6.8
アプリケーションDB用のディレクトリを作成します。
$ sudo mkdir -p /data/appdb $ sudo chown -R mongod:mongod /data
アプリケーションDB用mongodを起動します。
# sudo -u mongod mongod --port 27017 --dbpath /data/appdb --logpath /data/appdb/mongodb.log --wiredTigerCacheSizeGB 1 --fork
Ops Managerアプリケーションのインストール
Ops Managerのアプリケーションパッケージをダウンロードします。
[参照サイト]
https://www.mongodb.com/download-center#ops-manager
Ops Managerのアプリケーションをインストールします。
$ sudo rpm -ivh mongodb-mms-3.6.6.47217.20180502T0927Z-1.x86_64.rpm
Ops Managerアプリケーションのインストール先は、/opt/mongodb/mms/です。
Ops Managerを起動します。
$ sudo service mongodb-mms start
次のようにWebブラウザーからOps Managerへ接続します。
http://<opsManagerHost>:8080
Ops Managerの初期環境設定
アカウント登録
Ops Managerのサービスが正常に上がっていると、次のような初期画面が表示されます。
初期ユーザとパスワードが存在しません。代わりに、Registerをクリックし、アカウントを登録します。
- your-maile-address@yourcompany.com
- パスワード
初期アカウント登録の直後、Ops Managerの運用オプションのタイプなどの設定が求められます。
これは、後に編集できますので、必要な項目だけを設定してください。
必須項目は、Web ServerとEmail関連情報の2点です。
次の2点は、特に注意してください。
- SMTP Serverは本物が求められます。調べておいてください。型式だけを合わせても一応通りますが、後にユーザの追加時にメールアドレスに招待メールが送られたりし、支障が生じます。
- Ops Managerは、基本的に何等かの方法でMongoDB社のダウンロードサイトに接続できなければなりません。Ops Managerが管理するクラスタ―は、Ops Manager経由でパッケージをダウンロードします。
- だだし、インターネットから完全にシャットアウトされた環境でもOps Managerのインストール及び運用はできますが、必要なパッケージなどをすべて手動で管理する必要があります。特に、バージョンマニフェストの設定が肝です。
Web Server
Web Serverは、Ops Managerへ接続するためのFQDNを設定します。IPアドレスでも結構です。
http://IPアドレス:8080
この設定は、デフォルトで進みます。
Email設定は、必須になっており、正しい情報(少なくとも正しい型式)を入力しないと先に進みません。
また、後に新規ユーザ登録でもメールの発信が必要になります。
User Authentication
この設定は、デフォルトで進みます。
Multi-Factor Authentication
この設定は、デフォルトで進みます。
Other Authentication Options
この設定は、デフォルトで進みます。
Server Pool
この設定は、デフォルトで進みます。
Backup Snapshots
この設定は、デフォルトで進みます。
Backup Snapshots Schedule
この設定は、デフォルトで進みます。
Backup Snapshots Schedule
この設定は、デフォルトで進みます。
KMIP Server Configuration
この設定は、デフォルトで進みます。
Queryable Snapshot Configurantion
この設定は、デフォルトで進みます。
HTTP/HTTPS Proxy
この設定は、デフォルトで進みます。
Twillo Integration
この設定は、デフォルトで進みます。
MongoDB Version Management
この設定は、デフォルトで進みます。
Alerts
この設定は、デフォルトで進みます。
初期環境設定の完了
次のような画面が表示されたら、初期環境設定は完了しています。
まとめ
OpsMangerは、インストールや設定が些か複雑ですが、MongoDBのクラスタ―構築や運用では殆ど手間がかからない優れたツールです。Ops Manager利用において不明点などが御座いましたら、弊社の営業まで気楽に連絡してください。