在您設定次要資料中心之前,請先為叢集間的 Elasticsearch、RabbitMQ 和 Ehcache 複寫設定主要資料中心。

執行這項作業的原因和時機

Elasticsearch、RabbitMQ 和 Ehcache 內嵌於 VMware Identity Manager 虛擬應用裝置中。Elasticsearch 是一個用於稽核、報告和目錄同步記錄的搜尋和分析引擎。RabbitMQ 是一種訊息代理。Ehcache 可提供快取功能。

請在主要資料中心叢集的所有節點中設定這些變更。

先決條件

您已在主要資料中心中設定 VMware Identity Manager 叢集。

程序

  1. 針對複寫設定 Elasticsearch。

    請在主要資料中心叢集的每個節點中進行這些變更。

    1. 停用 Elasticsearch 的 Cron 工作。
      1. 編輯 /etc/cron.d/hznelasticsearchsync 檔案:

        vi /etc/cron.d/hznelasticsearchsync

      2. 將此行設定為註解:

        #*/1 * * * * root /usr/local/horizon/scripts/elasticsearchnodes.hzn

    2. 新增主要資料中心叢集中之所有節點的 IP 位址。
      1. 編輯 /etc/sysconfig/elasticsearch 檔案。

        vi /etc/sysconfig/elasticsearch

      2. 新增叢集中所有節點的 IP 位址。

        ES_UNICAST_HOSTS=IPaddress1,IPaddress2,IPaddress3

    3. 將次要資料中心叢集的負載平衡器 FQDN 新增至 /usr/local/horizon/conf/runtime-config.properties 檔案。
      1. 編輯 /usr/local/horizon/conf/runtime-config.properties 檔案。

        vi /usr/local/horizon/conf/runtime-config.properties

      2. 將此行新增至檔案中:

        analytics.replication.peers=LB_FQDN_of_second_cluster

  2. 針對複寫設定 RabbitMQ。

    請在主要資料中心叢集的每個節點中進行這些變更。

    1. 停用 RabbitMQ 的 Cron 工作。
      1. vi /etc/cron.d/hznrabbitmqsync

      2. 將此行設定為註解:

        #*/1 * * * * root /usr/local/horizon/scripts/rabbitmqnodes.hzn

    2. /usr/local/horizon/scripts/rabbitmqnodes.hzn 檔案中進行下列變更。
      1. vi /usr/local/horizon/scripts/rabbitmqnodes.hzn

      2. 將這幾行設定為註解。

        #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))

      3. 新增主要資料中心叢集中之所有節點的主機名稱。使用主機名稱即可,請勿使用完整網域名稱。多個名稱請以空格分隔。

        nodes="node1 node2 node3"

    3. 將叢集中其他節點的 IP 位址與主機名稱對應新增至 /etc/hosts 檔案。請勿為您正在編輯的節點新增項目。只有在沒有 DNS 項目可解析完整網域名稱或部分限定網域名稱時,才需要執行此步驟。

      IPaddress node2FQDN node2

      IPaddress node3FQDN node3

    4. 執行指令碼以建置 RabbitMQ 叢集。

      /usr/local/horizon/scripts/rabbitmqnodes.hzn

  3. 針對複寫設定 Ehcache。

    請在主要資料中心叢集的每個節點中進行這些變更。

    1. vi /usr/local/horizon/conf/runtime-config.properties

    2. 新增叢集中其他節點的 FQDN。請勿為您正在編輯的節點新增 FQDN。多個 FQDN 請以冒號分隔。

      ehcache.replication.rmi.servers=node2FQDN:node3FQDN

      例如:

      ehcache.replication.rmi.servers=server2.example.com:server3.example.com

  4. 在所有節點上重新啟動 VMware Identity Manager 服務。

    service horizon-workspace restart

  5. 確認叢集已正確設定。

    在第一個叢集中的所有節點上執行這些命令。

    1. 確認 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

    2. 確認 RabbitMQ 的健全狀況。

      rabbitmqctl cluster_status

      命令應該會傳回如下的結果。

      Cluster status of node 'rabbitmq@node3' ...
      [{nodes,[{disc,['rabbitmq@node2','rabbitmq@node3']}]},
       {running_nodes,['rabbitmq@node3']},
       {cluster_name,<<"rabbitmq@node2.example.com">>},
       {partitions,[]},
       {alarms,[{'rabbitmq@node3',[]}]}]

      如果發生問題,請參閱疑難排解 Elasticsearch 和 RabbitMQ

    3. 確認 /opt/vmware/horizon/workspace/logs/ horizon.log 檔案包含此行。

      Added ehcache replication peer: //node3.example.com:40002

      主機名稱應為叢集中其他節點的主機名稱。

下一步

在次要資料中心建立叢集。從主要資料中心叢集匯出第一個 VMware Identity Manager 虛擬應用裝置的 OVA 檔案,並使用此檔案在次要資料中心中,部署新的虛擬應用裝置以建立節點。