보조 데이터 센터를 설정하기 전에 클러스터 간에 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=IP 주소 1,IP 주소 2,IP 주소 3

    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

  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. 기본 데이터 센터 클러스터에 있는 모든 노드의 호스트 이름을 추가합니다. FQDN(정규화된 도메인 이름)이 아닌 호스트 이름만 사용합니다. 이름은 공백으로 구분합니다.

        nodes="노드 1 노드 2 노드 3"

    3. 클러스터에 있는 다른 노드의 IP 주소 및 호스트 이름 매핑을 /etc/hosts 파일에 추가합니다. 편집 중인 노드에 대한 항목은 추가하지 마십시오. 이 단계는 FQDN(정규화된 도메인 이름) 또는 부분적으로 정규화된 도메인 이름을 확인할 수 있는 DNS 항목이 없는 경우에만 필요합니다.

      IP 주소 노드 2 FQDN 노드 2

      IP 주소 노드 3 FQDN 노드 3

    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=노드 2 FQDN:노드 3 FQDN

      예:

      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 파일을 내보낸 후 이를 보조 데이터 센터의 새 가상 장치를 배포하는 데 사용하여 노드를 생성합니다.