보조 데이터 센터를 설정하기 전에 클러스터 간에 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=IP 주소 1,IP 주소 2,IP 주소 3
- 보조 데이터 센터 클러스터의 로드 밸런서 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
- 복제를 위해 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))
- 기본 데이터 센터 클러스터에 있는 모든 노드의 호스트 이름을 추가합니다. FQDN(정규화된 도메인 이름)이 아닌 호스트 이름만 사용합니다. 이름은 공백으로 구분합니다.
nodes="노드 1노드 2노드 3"
- 클러스터에 있는 다른 노드의 IP 주소 및 호스트 이름 매핑을 /etc/hosts 파일에 추가합니다. 편집 중인 노드에 대한 항목은 추가하지 마십시오. 이 단계는 FQDN(정규화된 도메인 이름) 또는 부분적으로 정규화된 도메인 이름을 확인할 수 있는 DNS 항목이 없는 경우에만 필요합니다.
IP 주소 노드 2 FQDN 노드 2
IP 주소 노드 3 FQDN 노드 3
- RabbitMQ 클러스터를 빌드하기 위한 스크립트를 실행합니다.
/usr/local/horizon/scripts/rabbitmqnodes.hzn
- 복제를 위해 Ehcache를 구성합니다.
기본 데이터 센터 클러스터의 각 노드에서 이러한 변경 사항을 수행합니다.
- vi /usr/local/horizon/conf/runtime-config.properties
- 클러스터에 있는 다른 노드의 FQDN을 추가합니다. 편집 중인 노드의 FQDN은 추가하지 마십시오. FQDN은 콜론으로 구분합니다.
ehcache.replication.rmi.servers=노드 2 FQDN:노드 3 FQDN
예:
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 파일을 내보낸 후 이를 보조 데이터 센터의 새 가상 장치를 배포하는 데 사용하여 노드를 생성합니다.