在设置辅助数据中心之前,请配置主数据中心以在群集之间进行 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 文件,然后使用该文件在辅助数据中心部署新虚拟设备以创建节点。