セカンダリ データセンターをセットアップする前に、クラスタ全体で Elasticsearch、RabbitMQ、および Ehcache をレプリケーションするためにプライマリ データセンターを構成します。
Elasticsearch、RabbitMQ、および Ehcache がVMware Identity Manager 仮想アプライアンスに組み込まれています。Elasticsearch は、監査、レポート、およびディレクトリ同期ログに使用される検索および分析エンジンです。RabbitMQ は、メッセージ ブローカです。Ehcache は、キャッシュ機能を提供します。
プライマリ データセンター クラスタのすべてのノードでこれらの変更を構成します。
前提条件
プライマリ データセンターに VMware Identity Manager クラスタがセットアップされています。
手順
- Elasticsearch をレプリケーション用に構成します。
プライマリ データセンター クラスタの各ノードでこれらの変更を行います。
- Elasticsearch の cron ジョブを無効にします。
- /etc/cron.d/hznelasticsearchsync ファイルを編集します。
vi /etc/cron.d/hznelasticsearchsync
- この行をコメント アウトします。
#*/1 * * * * root /usr/local/horizon/scripts/elasticsearchnodes.hzn
- プライマリ データセンター クラスタのすべてのノードの IP アドレスを追加します。
- /etc/sysconfig/elasticsearch ファイルを編集します。
vi /etc/sysconfig/elasticsearch
- クラスタのすべてのノードの IP アドレスを追加します。
ES_UNICAST_HOSTS=IPaddress1,IPaddress2,IPaddress3
- セカンダリ データセンター クラスタのロード バランサの FQDN を /usr/local/horizon/conf/runtime-config.properties ファイルに追加します。
- /usr/local/horizon/conf/runtime-config.properties ファイルを編集します。
vi /usr/local/horizon/conf/runtime-config.properties
- 次の行をファイルに追加します。
analytics.replication.peers=LB_FQDN_of_second_cluster
- RabbitMQ をレプリケーション用に構成します。
プライマリ データセンター クラスタの各ノードでこれらの変更を行います。
- RabbitMQ の cron ジョブを無効にします。
- vi /etc/cron.d/hznrabbitmqsync
- この行をコメント アウトします。
#*/1 * * * * root /usr/local/horizon/scripts/rabbitmqnodes.hzn
- /usr/local/horizon/scripts/rabbitmqnodes.hzn ファイルで次の変更を行います。
- vi /usr/local/horizon/scripts/rabbitmqnodes.hzn
- これらの行をコメント アウトします。
#make sure SAAS is up, otherwise we won't have an accurate node list
#if test $(curl -X GET -k https://localhost/SAAS/API/1.0/REST/system/health/allOk -sL -w "% {http_code}\\n" -o /dev/null) -ne 200 ; then
# echo SAAS not running, aborting
# exit 0
#fi
次の行もコメント アウトします。
#nodes=$(uniqList true $(enumeratenodenames))
- プライマリ データセンター クラスタのすべてのノードのホスト名を追加します。完全修飾ドメイン名ではなく、ホスト名のみを使用します。名前をスペースで区切ります。
nodes="node1node2node3"
- クラスタの他のノードの IP アドレスとホスト名のマッピングを /etc/hosts ファイルに追加します。編集しているノードのエントリは追加しないでください。完全修飾ドメイン名または部分修飾ドメイン名を解決できる DNS エントリがない場合にのみ、この手順が必要です。
IPaddress node2FQDN node2
IPaddress node3FQDN node3
- スクリプトを実行して、RabbitMQ クラスタを構築します。
/usr/local/horizon/scripts/rabbitmqnodes.hzn
- Ehcache をレプリケーション用に構成します。
プライマリ データセンター クラスタの各ノードでこれらの変更を行います。
- vi /usr/local/horizon/conf/runtime-config.properties
- クラスタのすべてのノードの FQDN を追加します。編集しているノードの FQDN は追加しないでください。FQDN をコロンで区切ります。
ehcache.replication.rmi.servers=node2FQDN:node3FQDN
例:
ehcache.replication.rmi.servers=server2.example.com:server3.example.com
- すべてのノードで VMware Identity Manager サービスを再起動します。
service horizon-workspace restart
- クラスタが正しくセットアップされたことを確認します。
これらのコマンドを最初のクラスタにあるすべてのノードで実行します。
- Elasticsearch の健全性を確認します。
curl 'http://localhost:9200/_cluster/health?pretty'
このコマンドによって、次のような結果が返されます。
{
"cluster_name" : "horizon",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 20,
"active_shards" : 40,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0
}
問題がある場合には、Elasticsearch と RabbitMQ のトラブルシューティングを参照してください。
- RabbitMQ の健全性を確認します。
rabbitmqctl cluster_status
このコマンドによって、次のような結果が返されます。
Cluster status of node 'rabbitmq@node3' ...
[{nodes,[{disc,['rabbitmq@node2','rabbitmq@node3']}]},
{running_nodes,['rabbitmq@node3']},
{cluster_name,<<"[email protected]">>},
{partitions,[]},
{alarms,[{'rabbitmq@node3',[]}]}]
問題がある場合には、Elasticsearch と RabbitMQ のトラブルシューティングを参照してください。
- /opt/vmware/horizon/workspace/logs/ horizon.log ファイルにこの行が含まれていることを確認します。
Added ehcache replication peer: //node3.example.com:40002
このホスト名は、クラスタ内の他のノード名にする必要があります。
次のタスク
セカンダリ データセンターでクラスタを作成します。最初の VMware Identity Manager 仮想アプライアンスの OVA ファイルをプライマリ データセンター クラスタからエクスポートし、そのファイルを使用して新しい仮想アプライアンスをセカンダリ データセンターに展開して、ノードを作成します。