Como desativar um data center

Às vezes, talvez seja necessário descontinuar um data center. Por exemplo, se você estiver fazendo upgrade do sistema operacional, será necessário instalar o novo sistema operacional em um novo data center e desativação do antigo. As seções a seguir apresentam um exemplo de desativação de um data center, em que há dois data centers, dc-1 e dc-2, em uma instalação clusterizada de 12 nós:

  • dc-1 é o data center a ser desativado.
  • dc-2 é um segundo data center, usado no procedimento de desativação.

Se você estiver fazendo upgrade do sistema operacional, dc-2 pode ser o data center em que você instalou a nova versão do sistema operacional (SO). No entanto, a instalação de um novo SO não é necessária para desativação de um data center.

Considerações antes de desativação de um data center

Considere o seguinte ao descontinuar um data center:

  • Bloqueie todo o tráfego de execução e gerenciamento para o data center que está sendo desativado e redirecione para outros data centers.
  • Depois de desativação do data center, a capacidade no cluster do Apigee será reduzida. Para compensar, considere aumentar a capacidade nos data centers restantes ou adicionar data centers após a desativação.
  • Durante o processo de desativação, há a possibilidade de perda de dados de análise, dependendo de quais componentes de análise estão instalados no data center que está sendo desativado. Confira mais detalhes em Adicionar ou remover nós Qpid.
  • Antes de desativar um data center, entenda como todos os componentes são configurados em todos os data centers, especialmente os servidores OpenLDAP, ZooKeeper, Cassandra e Postgres. Também é recomendável fazer backups de todos os componentes e das respectivas configurações.

Antes de começar

  • Servidor de gerenciamento:todas as etapas de desativação dependem muito do servidor de gerenciamento. Se você tiver apenas um servidor de gerenciamento disponível, recomendamos instalar um novo componente do servidor de gerenciamento em um data center diferente de dc-1 antes de descontinuar o servidor de gerenciamento em dc-1 e garantir que um dos servidores de gerenciamento esteja sempre disponível.
  • Roteador:antes de descontinuar um roteador, desative a acessibilidade dos roteadores bloqueando a porta 15999. Verifique se nenhum tráfego de execução está sendo direcionado aos roteadores que estão sendo desativados.
  • Cassandra e ZooKeeper:as seções abaixo descrevem como descontinuar o dc-1 em uma configuração de dois data centers.

    Se você tiver mais de dois data centers, remova todas as referências ao nó que está sendo desativado (dc-1, neste caso) de todos os arquivos de configuração silenciosa em todos os data centers restantes. Para nós do Cassandra que serão desativados, remova esses hosts de CASS_HOSTS. Os nós restantes do Cassandra precisam permanecer na ordem original de CASS_HOSTS.

  • Postgres:se você desativar o mestre do Postgres, promova qualquer um dos nós de espera disponíveis como um novo mestre do Postgres. Embora o servidor QPID mantenha um buffer na fila, se o mestre do Postgres ficar indisponível por um período mais longo, você corre o risco de perder dados de análise.

Pré-requisitos

  • Antes de desativação de qualquer componente, recomendamos que você faça um backup completo de todos os nós. Use o procedimento da versão atual do Edge para fazer o backup. Para mais informações sobre backup, consulte Backup e restauração.

  • Verifique se o Edge está em execução antes de desativação, usando o comando:
    /opt/apigee/apigee-service/bin/apigee-all status
  • Verifique se nenhum tráfego de execução está chegando ao data center que você está desativando.

Ordem de desativação de componentes

Se você instalar o Edge para nuvem privada em vários nós, desative os componentes do Edge nesses nós na seguinte ordem:

  1. Interface do Edge (edge-ui)
  2. Servidor de gerenciamento (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. Roteador (roteador de borda)
  5. Processador de mensagens (edge-message-processor)
  6. Servidor Qpid e Qpidd (edge-qpid-server e apigee-qpidd)
  7. Postgres e banco de dados PostgreSQL (edge-postgres-server e apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

As seções a seguir explicam como desativamos cada componente.

Interface do Edge

Para interromper e desinstalar o componente da interface do Edge de dc-1, digite os seguintes comandos:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

Servidor de gerenciamento

Para desativação do servidor de gerenciamento no dc-1, siga estas etapas:

  1. Pare o servidor de gerenciamento no dc-1:
    apigee-service edge-management-server stop
  2. Encontre o UUID do servidor de gerenciamento registrado em dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. Tipo de desregistro do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. Exclua o servidor. Observação:se outros componentes também estiverem instalados nesse servidor, descadastre todos eles antes de excluir o UUID.
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. Desinstale o componente do Management Server no dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

LDAP aberto

Esta seção explica como descontinuar o OpenLDAP no dc-1.

Observação:se você tiver mais de dois data centers, consulte Configurações com mais de dois data centers abaixo.

Para descontinuar o OpenLDAP no dc-1, siga estas etapas:

  1. Faça backup do nó OpenLDAP dc-1 seguindo as etapas em Como fazer backup.
  2. Interrompa a replicação de dados entre os dois data centers, dc-1 e dc-2, executando as etapas a seguir em ambos.

    1. Verifique o estado atual:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      A saída será semelhante a esta:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. Crie um arquivo break_repl.ldif contendo os seguintes comandos:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. Execute o comando ldapmodify:
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      A saída será semelhante a esta:

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. Para verificar se o dc-2 não está mais replicando para o dc-1, crie uma entrada no LDAP do dc-2 e verifique se ela não aparece no LDAP do dc-1.

    Você também pode seguir as etapas abaixo, que criam um usuário somente leitura no nó dc-2 do OpenLDAP e verificam se o usuário é replicado ou não. O usuário é excluído.

    1. Crie um arquivo readonly-user.ldif em dc-2 com o seguinte conteúdo:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. Adicione o usuário com o comando "ldapadd" no dc-2:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      A saída será semelhante a:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. Pesquise o usuário em dc-1 para garantir que ele não seja replicado. Se o usuário não estiver presente em dc-1, você terá certeza de que os dois LDAPs não estão mais replicando:
      ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      A saída será semelhante a esta:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. Remova o usuário de leitura que você adicionou anteriormente:
      ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. Pare o OpenLDAP no dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. Desinstale o componente OpenLDAP no dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

Roteador

Esta seção explica como desativar um roteador. Consulte Remover um servidor para mais detalhes sobre como remover o roteador.

As etapas a seguir desativam o roteador do dc-1. Se houver vários nós de roteador configurados em dc-1, execute as etapas em todos os nós de roteador de uma vez

Observação:aqui, presume-se que a porta de verificação de integridade 15999 do roteador esteja configurada no balanceador de carga e que o bloqueio da porta 15999 torne o roteador inacessível. Talvez seja necessário ter acesso root para bloquear a porta.

Para desativação de um roteador, siga estas etapas:

  1. Desative a acessibilidade dos roteadores bloqueando a porta 15999, a porta de verificação de integridade. Verifique se o tráfego de execução está bloqueado neste data center:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. Verifique se o roteador está acessível:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    A saída será semelhante a esta:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. Acesse o UUID do roteador, conforme descrito em Acessar UUIDs.
  4. Pare o roteador:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. Use o seguinte comando para listar os pods de gateway disponíveis na organização:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Consulte Sobre os pods.

  6. Cancelar o registro do tipo do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. Cancelar o registro do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Desinstale o edge-router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    Consulte Remover um servidor.
  9. Limpe as regras iptables para ativar a porta bloqueada 15999:
    iptables -F

processador de mensagens

Esta seção descreve como desativa o processador de mensagens do dc-1. Consulte Remover um servidor para mais detalhes sobre a remoção do processador de mensagens.

Como estamos presumindo que o dc-1 tem uma instalação de cluster de 12 nós, há dois nós do processador de mensagens configurados no dc-1. Execute os comandos abaixo nos dois nós.

  1. Acesse os UUIDs dos processadores de mensagens, conforme descrito em Acessar UUIDs.
  2. Interrompa o processador de mensagens:
    apigee-service edge-message-processor stop
  3. Cancelar o registro do tipo do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. Desassocie um ambiente do processador de mensagens.
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. Cancelar o registro do tipo do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. Desinstale o processador de mensagens:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. Cancelar o registro do servidor:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Servidor Qpid e Qpidd

Esta seção explica como descontinuar o servidor Qpid (edge-qpid-server) e o Qpidd (apigee-qpidd). Há dois nós Qpid configurados no dc-1. Portanto, siga as etapas abaixo para ambos os nós:

  1. Acesse o UUID do Qpidd, conforme descrito em Acessar UUIDs.
  2. Pare edge-qpid-server e apigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. Confira uma lista de grupos de consumidores e do Google Analytics:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Remova o Qpid do grupo de consumidores:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. Remova o Qpid do grupo de análise:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. Cancele o registro do servidor Qpid na instalação de borda:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. Remova o servidor Qpid da instalação do Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Reinicie todos os componentes do edge-qpid-server em todos os nós para garantir que a mudança seja detectada por esses componentes:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. Desinstale o edge-qpid-server e o apigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres e Postgresql

O data center que você está desativando pode ter um mestre do Postgres ou um standby do Postgres. As seções a seguir explicam como desativá-las:

Desativação do mestre do Postgres

Observação:se você desativa o mestre do Postgres, promova qualquer um dos nós de reserva disponíveis como um novo mestre do Postgres. Enquanto o QPID encapsula dados, se o mestre do Postgres ficar indisponível por muito tempo, você corre o risco de perder dados de análise.

Para desativação do mestre do Postgres:

  1. Faça backup do nó mestre do Postgres dc-1 seguindo as instruções nos links a seguir:
  2. Acesse os UUIDs dos servidores Postgres, conforme descrito em Acessar UUIDs.
  3. No dc-1, interrompa edge-postgres-server e apigee-postgresql no mestre atual:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. No nó de espera em dc-2, digite o seguinte comando para torná-lo o nó mestre:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    Observação:se você tiver mais de um nó de standby do Postgres, adicione entradas de host no novo mestre e atualize a configuração de replicação para todos os nós de standby do postgres disponíveis.

    Para adicionar entradas de host ao novo mestre do Postgres, siga as etapas na seção adequada abaixo:

    Se houver apenas um nó reserva

    Por exemplo, suponha que, antes da desativação, havia três nós do Postgres configurados. Você desativou o mestre atual e promoveu um dos nós de espera do postgres restantes para mestre. Configure o restante dos nós de reserva seguindo estas etapas:

    1. No novo mestre, edite o arquivo de configuração para definir:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. Ative a replicação no novo mestre:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    Se houver mais de um nó reserva

    1. Adicione a seguinte configuração em /opt/apigee/customer/application/postgresql.properties:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. Verifique se o arquivo /opt/apigee/customer/application/postgresql.properties pertence ao usuário apigee:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. Restart apigee-postgresql:
      apigee-service apigee-postgresql restart
    4. Para atualizar as configurações de replicação em um nó reserva:

      1. Modifique o arquivo de configuração /opt/silent.conf e atualize o campo PG_MASTER com o endereço IP do novo mestre do Postgres.
      2. Remova todos os dados antigos do Postgres com o seguinte comando:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. Configure a replicação no nó de espera:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. Verifique se o mestre do Postgres está configurado corretamente digitando o seguinte comando no dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. Remova e adicione servidores Postgresql ao grupo de análise e ao grupo de consumidores.
      1. Remova o servidor Postgres antigo do grupo de análise seguindo as instruções em Remover um servidor Postgres de um grupo de análise.
      2. Adicione um novo servidor Postgres ao grupo de análise seguindo as instruções em Adicionar um servidor Postgres a um grupo de análise.
    7. Cancele o registro do servidor postgres antigo do dc-1:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. Exclua o servidor postgres antigo de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. O mestre do Postgres antigo pode ser desativado com segurança. Desinstale edge-postgres-server e apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Desativação do standby do Postgres

    Observação:a documentação de uma instalação em cluster de 12 nós mostra o nó postgresql dc-1 como mestre, mas, por conveniência, nesta seção, presume-se que o nó postgresql dc-1 seja de reserva e que o nó postgresql dc-2 seja mestre.

    Para desativação do modo de espera do Postgres, siga estas etapas:

    1. Acesse os UUIDs dos servidores do Postgres seguindo as instruções em Acessar UUIDs.
    2. Pare o apigee-postgresql no nó de espera atual em dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. Remova e adicione servidores Postgresql ao grupo de análise e ao grupo de consumidores.
      1. Remova o servidor Postgres antigo do grupo de análise seguindo as instruções em Remover um servidor Postgres de um grupo de análise.
      2. Adicione um novo servidor Postgres ao grupo de análise seguindo as instruções em Adicionar um servidor Postgres a um grupo de análise.
    4. Cancele o registro do servidor postgres antigo do dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. Exclua o servidor postgres antigo de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. O mestre do Postgres antigo pode ser desativado com segurança. Desinstale edge-postgres-server e apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper e Cassandra

    Esta seção explica como descontinuar os servidores do ZooKeeper e do Cassandra em uma configuração de dois data centers.

    Se você tiver mais de dois data centers, remova todas as referências ao nó que está sendo desativado (dc-1, neste caso) de todos os arquivos de configuração silenciosa em todos os data centers restantes. Para nós do Cassandra que serão desativados, remova esses hosts de CASS_HOSTS. Os nós restantes do Cassandra precisam permanecer na ordem original de CASS_HOSTS.

    Observação sobre o ZooKeeper:é necessário manter um quórum de nós de votação ao modificar a propriedade ZK_HOST no arquivo de configuração para garantir que o conjunto do ZooKeeper continue funcional. Você precisa ter um número ímpar de nós de votação na configuração. Para mais informações, consulte Tarefas de manutenção do Apache ZooKeeper.

    Para desativar os servidores ZooKeeper e Cassandra:

    1. Faça o backup dos nós do Cassandra e do ZooKeeper do dc-1 seguindo as instruções nos links a seguir:
    2. Liste os UUIDs dos servidores ZooKeeper e Cassandra no data center em que os nós do Cassandra estão prestes a ser desativados.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. Cancelar o registro do tipo do servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. Cancelar o registro do servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. Atualize o arquivo de configuração com os IPs dos nós desativados removidos de ZK_HOSTS e CASS_HOSTS.

      Exemplo: suponha que você tenha os IPs $IP1 $IP2 $IP3 em dc-1 e $IP4 $IP5 $IP6 em dc-2 e que você esteja desativando o dc-1. Em seguida, remova os IPs $IP1 $IP2 $IP3 dos arquivos de configuração.

      • Entradas de arquivo de configuração atuais:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • Novas entradas de arquivo de configuração:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. Atualize o arquivo de configuração silenciosa (modificado na etapa e) com os IPs dos nós removidos e desativados e execute o perfil do servidor de gerenciamento em todos os nós que hospedam servidores de gerenciamento:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. Atualize o arquivo de configuração com os IPs dos nós desativados removidos e execute o perfil do MP/RMP em todos os nós do roteador e do processador de mensagens:
      • Se o roteador de borda e o processador de mensagens estiverem configurados no mesmo nó, digite:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Se o roteador de borda e o processador de mensagens estiverem configurados em nós separados, insira o seguinte:

        Para o roteador:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        Para o processador de mensagens:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. Reconfigure todos os nós Qpid, com os IPs dos nós desativados removidos do arquivo de resposta:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. Reconfigure todos os nós do Postgres, com os IPs dos nós desativados removidos do arquivo de resposta:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. Altere o keyspace system_auth. Se a autenticação do Cassandra estiver ativada em um nó do Cassandra, atualize o fator de replicação do keyspace system_auth executando o seguinte comando:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      Esse comando define o fator de replicação como '3', indicando três nós do Cassandra no cluster. Modifique esse valor conforme necessário.

      Depois de concluir esta etapa, a topologia do Cassandra não terá dc-1 em nenhum dos keyspaces.

    11. Desative os nós do Cassandra no dc-1, um por um.

      Para desativação dos nós do Cassandra, insira o seguinte comando:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. Verifique a conexão dos nós do Cassandra do dc-1 usando um dos comandos a seguir:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      Ou o comando de verificação secundária a ser executado no nó desativado:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      O comando acima precisa retornar:

      Mode: DECOMMISSIONED
    13. Execute o perfil de DS para todos os nós do Cassandra e do ZooKeeper em dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. Pare apigee-cassandra e apigee-zookeeper no dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. Desinstale apigee-cassandra e apigee-zookeeper no dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    Exclua as vinculações de dc-1

    Para excluir as vinculações de dc-1, siga estas etapas:

    1. Exclua as vinculações de dc-1.
      1. Liste todos os pods disponíveis na organização:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. Para verificar se todas as vinculações foram removidas, extraia os UUIDs dos servidores associados aos pods:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        Se esse comando não retornar UUIDs, as etapas anteriores terão removido todas as vinculações, e você poderá pular a próxima etapa. Caso contrário, siga para a próxima etapa.

      3. Remova todas as vinculações do servidor para os UUIDs recebidos na etapa anterior:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. Desvincule a organização do pod:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. Exclua os pods:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. Exclua a região.
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    Neste ponto, você concluiu a desativação do dc-1.

    Apêndice

    Solução de problemas

    Se, depois de realizar as etapas anteriores, ainda houver servidores em alguns pods, siga as etapas abaixo para cancelar o registro e excluir os servidores. Observação:mude os tipos e o pod conforme necessário.

    1. Receba os UUIDs usando o seguinte comando:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. Tipo de desregistro do servidor:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. Exclua os servidores um por um:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    Validação

    É possível validar a desativação usando os comandos a seguir.

    Servidor de gerenciamento

    1. Execute os comandos a seguir nos servidores de gerenciamento em todas as regiões.
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. Execute o comando a seguir em todos os componentes para verificar os requisitos de porta de todas as portas de gerenciamento.
      curl -v http://MS_IP:8080/v1/servers/self
    3. Verifique o grupo de análises.
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. Nós do Cassandra/ZooKeeper

      1. Em todos os nós do Cassandra, digite:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        Isso vai retornar um status running ou not running para esse nó específico.

      2. Em um nó, digite:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        Os comandos acima vão retornar informações sobre o data center ativo.

      3. Nos nós do ZooKeeper, primeiro insira:
        echo ruok | nc <host> 2181
        

        Esse comando retorna imok.

        Em seguida, digite:

        echo stat | nc <host> 2181 | grep Mode
        

        O valor de Mode retornado pelo comando acima será um dos seguintes: observer, leader ou follower.

      4. Em um nó do ZooKeeper, execute:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. No nó mestre do Postgres, execute:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        Valide se a resposta indica que o nó é o mestre.

      6. No nó de espera, execute:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        Verifique se a resposta confirma que o nó está em espera.

      7. Faça login no banco de dados PostgreSQL usando o seguinte comando:
        psql -h localhost -d apigee -U postgres

        Quando solicitado, digite a senha do usuário postgres (padrão: postgres).

        Em seguida, execute a consulta a seguir para verificar o valor máximo de client_received_start_timestamp:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      Registros

      Verifique os registros nos componentes para garantir que não haja erros.