Mettre un centre de données hors service

Il peut arriver que vous deviez mettre hors service un centre de données. Par exemple, si vous mettez à niveau votre système d'exploitation, vous devez installer le nouveau système d'exploitation dans un nouveau centre de données, puis mettre hors service l'ancien centre de données. Les sections suivantes présentent un exemple de mise hors service d'un centre de données, dans lequel il existe deux centres de données, dc-1 et dc-2, sur une installation en cluster à 12 nœuds:

  • dc-1 est le centre de données à mettre hors service.
  • dc-2 est un deuxième centre de données, qui est utilisé dans la procédure de mise hors service.

Si vous mettez à niveau votre système d'exploitation, dc-2 peut être le centre de données dans lequel vous avez installé la nouvelle version du système d'exploitation (OS). Toutefois, l'installation d'un nouvel OS n'est pas nécessaire pour mettre hors service un centre de données.

Éléments à prendre en compte avant de mettre hors service un centre de données

Tenez compte des points suivants lorsque vous mettez hors service un centre de données:

  • Bloquez tout le trafic d'exécution et de gestion vers le centre de données en cours de mise hors service, puis redirigez-le vers d'autres centres de données.
  • Une fois le centre de données mis hors service, la capacité de votre cluster Apigee sera réduite. Pour compenser cette perte, envisagez d'augmenter la capacité des centres de données restants ou d'en ajouter après le décommissionnement.
  • Au cours du processus de mise hors service, une perte de données d'analyse est possible, en fonction des composants d'analyse installés dans le centre de données en cours de mise hors service. Pour en savoir plus, consultez Ajouter ou supprimer des nœuds Qpid.
  • Avant de mettre hors service un centre de données, vous devez comprendre comment tous les composants sont configurés dans tous les centres de données, en particulier les serveurs OpenLDAP, ZooKeeper, Cassandra et Postgres. Vous devez également sauvegarder tous les composants et leurs configurations.

Avant de commencer

  • Serveur de gestion:toutes les étapes de mise hors service sont fortement dépendantes du serveur de gestion. Si vous ne disposez que d'un seul serveur de gestion, nous vous recommandons d'installer un nouveau composant de serveur de gestion dans un centre de données autre que dc-1 avant de mettre hors service le serveur de gestion sur dc-1, et de vous assurer qu'un des serveurs de gestion est toujours disponible.
  • Routeur:avant de mettre un routeur hors service, désactivez la connectivité des routeurs en bloquant le port 15999. Assurez-vous qu'aucun trafic d'exécution n'est dirigé vers les routeurs en cours de mise hors service.
  • Cassandra et ZooKeeper:les sections ci-dessous expliquent comment mettre hors service dc-1 dans une configuration à deux centres de données.

    Si vous disposez de plus de deux centres de données, veillez à supprimer toutes les références au nœud en cours de mise hors service (dc-1 dans ce cas) de tous les fichiers de configuration silencieux de tous les autres centres de données. Pour les nœuds Cassandra qui doivent être mis hors service, supprimez ces hôtes de CASS_HOSTS. Les nœuds Cassandra restants doivent conserver l'ordre d'origine de CASS_HOSTS.

  • Postgres:si vous mettez hors service le maître Postgres, veillez à promouvoir l'un des nœuds de secours disponibles en tant que nouveau maître Postgres. Bien que le serveur QPID conserve un tampon dans la file d'attente, si le maître Postgres est indisponible pendant une période plus longue, vous risquez de perdre des données analytiques.

Prérequis

  • Avant de mettre hors service un composant, nous vous recommandons d'effectuer une sauvegarde complète de tous les nœuds. Suivez la procédure pour votre version actuelle d'Edge pour effectuer la sauvegarde. Pour en savoir plus sur la sauvegarde, consultez la section Sauvegarde et restauration.

  • Assurez-vous qu'Edge est opérationnel avant de le mettre hors service à l'aide de la commande suivante:
    /opt/apigee/apigee-service/bin/apigee-all status
  • Assurez-vous qu'aucun trafic d'exécution n'arrive actuellement au centre de données que vous mettez hors service.

Ordre de mise hors service des composants

Si vous installez Edge pour le cloud privé sur plusieurs nœuds, vous devez mettre hors service les composants Edge sur ces nœuds dans l'ordre suivant:

  1. Interface utilisateur Edge (edge-ui)
  2. Serveur de gestion (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. Routeur (routeur de périphérie)
  5. Processeur de messages (edge-message-processor)
  6. Qpid Server et Qpidd (edge-qpid-server et apigee-qpidd)
  7. Postgres et base de données PostgreSQL (edge-postgres-server et apigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

Les sections suivantes expliquent comment mettre hors service chaque composant.

Interface utilisateur Edge

Pour arrêter et désinstaller le composant d'UI Edge de dc-1, saisissez les commandes suivantes:

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

Serveur de gestion

Pour mettre hors service le serveur de gestion sur dc-1, procédez comme suit:

  1. Arrêtez le serveur de gestion sur dc-1:
    apigee-service edge-management-server stop
  2. Recherchez l'UUID du serveur de gestion enregistré dans dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. Annulez l'enregistrement du type de serveur:
    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. Supprimez le serveur. Remarque:Si d'autres composants sont également installés sur ce serveur, désinscrivez-les tous avant de supprimer l'UUID.
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. Désinstallez le composant du serveur de gestion sur dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

Cette section explique comment mettre hors service OpenLDAP sur dc-1.

Remarque:Si vous disposez de plus de deux centres de données, consultez la section Configurations avec plus de deux centres de données ci-dessous.

Pour mettre hors service OpenLDAP sur dc-1, procédez comme suit:

  1. Sauvegardez le nœud OpenLDAP dc-1 en suivant la procédure décrite dans la section Comment sauvegarder.
  2. Mettez fin à la réplication des données entre les deux centres de données, dc-1 et dc-2, en suivant les étapes suivantes dans les deux centres de données.

    1. Vérifiez l'état actuel:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      La sortie devrait ressembler à ce qui suit :

      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. Créez un fichier break_repl.ldif contenant les commandes suivantes:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. Exécutez la commande ldapmodify :
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      La sortie devrait ressembler à ce qui suit :

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. Vous pouvez vérifier que dc-2 ne réplique plus vers dc-1 en créant une entrée dans le LDAP de dc-2 et en vous assurant qu'elle n'apparaît pas dans le LDAP de dc-1.

    Vous pouvez également suivre les étapes ci-dessous, qui créent un utilisateur en lecture seule dans le nœud OpenLDAP dc-2, puis vérifier si l'utilisateur est répliqué ou non. L'utilisateur est ensuite supprimé.

    1. Créez un fichier readonly-user.ldif dans dc-2 avec le contenu suivant:
      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. Ajoutez un utilisateur avec la commande ldapadd dans dc-2:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      Le résultat ressemblera à ceci:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. Recherchez l'utilisateur dans dc-1 pour vous assurer qu'il n'est pas répliqué. Si l'utilisateur n'est pas présent dans dc-1, vous saurez que les deux LDAP ne se répliquent plus:
      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

      La sortie devrait ressembler à ce qui suit :

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. Supprimez l'utilisateur en lecture seule que vous avez ajouté précédemment:
      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. Arrêtez OpenLDAP dans dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. Désinstallez le composant OpenLDAP sur dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

Routeur

Cette section explique comment mettre hors service un routeur. Pour en savoir plus sur la suppression du routeur, consultez la section Supprimer un serveur.

Les étapes suivantes permettent de mettre hors service le routeur de dc-1. Si plusieurs nœuds de routeur sont configurés dans dc-1, effectuez les étapes dans tous les nœuds de routeur, un par un.

Remarque:Ici, nous supposons que le port de vérification de l'état du routeur (15999) est configuré dans votre équilibreur de charge et que le blocage du port 15999 rend le routeur inaccessible. Vous devrez peut-être disposer d'un accès racine pour bloquer le port.

Pour mettre hors service un routeur, procédez comme suit:

  1. Désactivez la connectivité des routeurs en bloquant le port 15999, qui est le port de vérification de l'état. Assurez-vous que le trafic d'exécution est bloqué sur ce centre de données:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. Vérifiez que le routeur est accessible:

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

    La sortie devrait ressembler à ce qui suit :

    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. Obtenez l'UUID du routeur, comme décrit dans la section Obtenir des UUID.
  4. Arrêtez le routeur:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. Listez les pods de passerelle disponibles dans l'organisation à l'aide de la commande suivante:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Consultez la section À propos des pods.

  6. Désenregistrer le type du serveur:
    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. Déregistrez le serveur:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Désinstallez edge-router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    Consultez Supprimer un serveur.
  9. Effacez les règles iptables pour activer le port 15999 bloqué:
    iptables -F

Processeur de messages

Cette section explique comment mettre hors service le processeur de messages de dc-1. Pour en savoir plus sur la suppression du processeur de messages, consultez Supprimer un serveur.

Étant donné que nous supposons que dc-1 dispose d'une installation en cluster de 12 nœuds, deux nœuds Message Processor sont configurés dans dc-1. Exécutez les commandes suivantes sur les deux nœuds.

  1. Obtenez les UUID des processeurs de messages, comme décrit dans la section Obtenir des UUID.
  2. Arrêtez le processeur de messages:
    apigee-service edge-message-processor stop
  3. Désenregistrer le type du serveur:
    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. Dissocier un environnement du processeur de messages
    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. Désenregistrer le type du serveur:
    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. Désinstallez le processeur de messages:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. Déregistrez le serveur:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Serveur Qpid et Qpidd

Cette section explique comment mettre hors service Qpid Server (edge-qpid-server) et Qpidd (apigee-qpidd). Comme deux nœuds Qpid sont configurés dans dc-1, vous devez suivre les étapes suivantes pour les deux nœuds:

  1. Obtenez l'UUID de Qpidd, comme décrit dans la section Obtenir des UUID.
  2. Arrêtez edge-qpid-server et apigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. Obtenir la liste des groupes Analytics et consommateurs:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. Supprimez Qpid du groupe de consommateurs:
    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. Supprimez Qpid du groupe d'analyse:
    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. Annulez l'enregistrement du serveur Qpid de l'installation Edge:
    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. Supprimez le serveur Qpid de l'installation Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. Redémarrez tous les composants edge-qpid-server sur tous les nœuds pour vous assurer que la modification est détectée par ces composants:
    $ /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. Désinstallez edge-qpid-server et apigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres et Postgresql

Le centre de données que vous mettez hors service peut comporter un maître Postgres ou un serveur de secours Postgres. Les sections suivantes expliquent comment les mettre hors service:

Mise hors service du nœud maître Postgres

Remarque:Si vous mettez hors service le maître Postgres, veillez à promouvoir l'un des nœuds de secours disponibles en tant que nouveau maître Postgres. Bien que les files d'attente QPID mettent en mémoire tampon les données, si le maître Postgres est indisponible pendant une longue période, vous risquez de perdre des données d'analyse.

Pour mettre hors service le nœud maître Postgres:

  1. Sauvegardez le nœud maître Postgres dc-1 en suivant les instructions des liens suivants :
  2. Obtenez les UUID des serveurs Postgres, comme décrit dans la section Obtenir des UUID.
  3. Sur dc-1, arrêtez edge-postgres-server et apigee-postgresql sur le maître actuel:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. Sur le nœud de secours de dc-2, saisissez la commande suivante pour en faire le nœud maître:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    Remarque:Si vous disposez de plusieurs nœuds Postgres en mode standby, vous devez ajouter des entrées d'hôte sur le nouveau maître et mettre à jour le paramètre de réplication pour tous les nœuds Postgres en mode standby disponibles.

    Pour ajouter des entrées d'hôte au nouveau maître Postgres, suivez la procédure décrite dans la section appropriée ci-dessous :

    Si un seul nœud de secours reste disponible

    Par exemple, supposons qu'avant le désarmement, trois nœuds Postgres étaient configurés. Vous avez mis hors service le maître existant et promu l'un des nœuds de postgres en attente restants en tant que maître. Configurez le nœud de veille restant en procédant comme suit:

    1. Sur le nouveau maître, modifiez le fichier de configuration pour définir les éléments suivants:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. Activez la réplication sur le nouveau maître:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    Si plusieurs nœuds de secours restent disponibles

    1. Ajoutez la configuration suivante dans /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. Assurez-vous que le fichier /opt/apigee/customer/application/postgresql.properties appartient à l'utilisateur apigee:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. Redémarrez apigee-postgresql :
      apigee-service apigee-postgresql restart
    4. Pour mettre à jour les paramètres de réplication sur un nœud de secours:

      1. Modifiez le fichier de configuration /opt/silent.conf et mettez à jour le champ PG_MASTER avec l'adresse IP du nouveau maître Postgres.
      2. Supprimez toutes les anciennes données Postgres à l'aide de la commande suivante:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. Configurez la réplication sur le nœud de secours:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. Vérifiez que le maître Postgres est correctement configuré en saisissant la commande suivante dans dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. Supprimez et ajoutez des serveurs Postgresql au groupe d'analyse et au groupe de consommateurs.
      1. Supprimez l'ancien serveur Postgres du groupe d'analyse en suivant les instructions de la section Supprimer un serveur Postgres d'un groupe d'analyse.
      2. Ajoutez un serveur Postgres au groupe d'analyse en suivant les instructions de la section Ajouter un serveur Postgres existant à un groupe d'analyse.
    7. Annulez l'enregistrement de l'ancien serveur PostgreSQL sur 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. Supprimez l'ancien serveur PostgreSQL de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. Vous pouvez maintenant mettre hors service l'ancien maître Postgres. Désinstallez edge-postgres-server et apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Désactivation du mode standby Postgres

    Remarque:La documentation d'une installation en cluster à 12 nœuds indique que le nœud PostgreSQL dc-1 est maître, mais pour des raisons de commodité, dans cette section, nous supposons que le nœud PostgreSQL dc-1 est en veille et que le nœud PostgreSQL dc-2 est maître.

    Pour mettre hors service la réplication standby Postgres, procédez comme suit:

    1. Obtenez les UUID des serveurs Postgres en suivant les instructions de la section Obtenir des UUID.
    2. Arrêtez apigee-postgresql sur le nœud de secours actuel dans dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. Supprimez et ajoutez des serveurs Postgresql au groupe d'analyse et au groupe de consommateurs.
      1. Supprimez l'ancien serveur Postgres du groupe d'analyse en suivant les instructions de la section Supprimer un serveur Postgres d'un groupe d'analyse.
      2. Ajoutez un serveur Postgres au groupe d'analyse en suivant les instructions de la section Ajouter un serveur Postgres existant à un groupe d'analyse.
    4. Annulez l'enregistrement de l'ancien serveur PostgreSQL sur 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. Supprimez l'ancien serveur PostgreSQL de dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. Vous pouvez maintenant mettre hors service l'ancien maître Postgres. Désinstallez edge-postgres-server et apigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper et Cassandra

    Cette section explique comment mettre hors service les serveurs ZooKeeper et Cassandra dans une configuration à deux centres de données.

    Si vous disposez de plus de deux centres de données, veillez à supprimer toutes les références au nœud en cours de mise hors service (dc-1 dans ce cas) de tous les fichiers de configuration silencieux de tous les autres centres de données. Pour les nœuds Cassandra qui doivent être mis hors service, supprimez ces hôtes de CASS_HOSTS. Les nœuds Cassandra restants doivent conserver l'ordre d'origine de CASS_HOSTS.

    Remarque concernant ZooKeeper:Vous devez maintenir un quorum de nœuds de vote lorsque vous modifiez la propriété ZK_HOST dans le fichier de configuration pour vous assurer que l'ensemble ZooKeeper reste fonctionnel. Vous devez avoir un nombre impair de nœuds de vote dans votre configuration. Pour en savoir plus, consultez la section Tâches de maintenance Apache ZooKeeper.

    Pour mettre hors service les serveurs ZooKeeper et Cassandra:

    1. Sauvegardez les nœuds Cassandra et ZooKeeper dc-1 en suivant les instructions des liens suivants :
    2. Répertoriez les UUID des serveurs ZooKeeper et Cassandra dans le centre de données où les nœuds Cassandra vont être mis hors service.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. Désenregistrer le type du serveur:
      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. Déregistrez le serveur:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. Mettez à jour le fichier de configuration avec les adresses IP des nœuds mis hors service supprimées de ZK_HOSTS et CASS_HOSTS.

      Exemple: Supposons que vous disposiez des adresses IP $IP1 $IP2 $IP3 dans dc-1 et $IP4 $IP5 $IP6 dans dc-2, et que vous désinstalliez dc-1. Vous devez ensuite supprimer les adresses IP $IP1 $IP2 $IP3 des fichiers de configuration.

      • Entrées du fichier de configuration existantes:
        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”
      • Nouvelles entrées de fichier de configuration:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. Mettez à jour le fichier de configuration silencieux (modifié à l'étape e) avec les adresses IP des nœuds mis hors service supprimés, puis exécutez le profil du serveur de gestion sur tous les nœuds hébergeant des serveurs de gestion:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. Mettez à jour le fichier de configuration avec les adresses IP des nœuds mis hors service, puis exécutez le profil MP/RMP sur tous les nœuds Router et Message Processor :
      • Si le routeur Edge et le processeur de messages sont configurés sur le même nœud, saisissez:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Si le routeur Edge et le processeur de messages sont configurés sur des nœuds distincts, saisissez ce qui suit:

        Pour le routeur:

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

        Pour le processeur de messages:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. Reconfigurez tous les nœuds Qpid, en supprimant les adresses IP des nœuds mis hors service du fichier de réponse:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. Reconfigurez tous les nœuds Postgres, en supprimant les adresses IP des nœuds mis hors service du fichier de réponse:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. Modifier l'espace de clés system_auth. Si l'authentification Cassandra est activée sur un nœud Cassandra existant, mettez à jour le facteur de réplication de l'espace de clés system_auth en exécutant la commande suivante:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      Cette commande définit le facteur de réplication sur '3', ce qui indique trois nœuds Cassandra dans le cluster. Modifiez cette valeur si nécessaire.

      Une fois cette étape terminée, la topologie Cassandra ne doit pas contenir dc-1 dans l'un des espaces de clés.

    11. Mettez hors service les nœuds Cassandra sur dc-1, un par un.

      Pour mettre hors service les nœuds Cassandra, saisissez la commande suivante:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. Vérifiez la connexion des nœuds Cassandra à partir de dc-1 à l'aide de l'une des commandes suivantes:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      Ou commande de validation secondaire à exécuter sur le nœud mis hors service:

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

      La commande ci-dessus doit renvoyer:

      Mode: DECOMMISSIONED
    13. Exécutez le profil DS pour tous les nœuds Cassandra et ZooKeeper de dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. Arrêtez apigee-cassandra et apigee-zookeeper dans dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. Désinstallez apigee-cassandra et apigee-zookeeper dans dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    Supprimez les liaisons de dc-1.

    Pour supprimer les liaisons de dc-1, procédez comme suit:

    1. Supprimez les liaisons de dc-1.
      1. Répertoriez tous les pods disponibles dans l'organisation:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. Pour vérifier si toutes les liaisons ont été supprimées, obtenez les UUID des serveurs associés aux pods:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        Si cette commande ne renvoie aucun UUID, cela signifie que les étapes précédentes ont supprimé toutes les liaisons et que vous pouvez ignorer l'étape suivante. Sinon, passez à l'étape suivante.

      3. Supprimez toutes les liaisons de serveur pour les UUID obtenus à l'étape précédente:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. Dissocier l'organisation du 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. Supprimez les pods:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. Supprimez la région.
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    À ce stade, vous avez terminé le décommissionnement de dc-1.

    Annexe

    Dépannage

    Si, après avoir effectué les étapes précédentes, des serveurs sont toujours présents dans certains pods, procédez comme suit pour les désenregistrer et les supprimer. Remarque:Modifiez les types et le pod si nécessaire.

    1. Obtenez les UUID à l'aide de la commande suivante:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. Annulez l'enregistrement du type de serveur:
      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. Supprimez les serveurs un par un:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    Validation

    Vous pouvez valider le décommissionnement à l'aide des commandes suivantes.

    Serveur de gestion

    1. Exécutez les commandes suivantes à partir des serveurs de gestion de toutes les régions.
      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. Exécutez la commande suivante sur tous les composants pour vérifier les exigences de port pour tous les ports de gestion.
      curl -v http://MS_IP:8080/v1/servers/self
    3. Vérifiez le groupe d'analyse.
      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œuds Cassandra/ZooKeeper

      1. Sur tous les nœuds Cassandra, saisissez:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        Un état running ou not running est alors renvoyé pour ce nœud particulier.

      2. Sur un nœud, saisissez:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        Les commandes ci-dessus renvoient des informations sur les centres de données actifs.

      3. Sur les nœuds ZooKeeper, saisissez d'abord:
        echo ruok | nc <host> 2181
        

        Cette commande renvoie imok.

        Saisissez ensuite:

        echo stat | nc <host> 2181 | grep Mode
        

        La valeur de Mode renvoyée par la commande ci-dessus sera l'une des suivantes : observer, leader ou follower.

      4. Dans un nœud ZooKeeper, exécutez:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. Sur le nœud maître Postgres, exécutez:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        Vérifiez que la réponse indique que le nœud est le maître.

      6. Sur le nœud de secours, exécutez:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        Assurez-vous que la réponse confirme que le nœud est en mode veille.

      7. Connectez-vous à la base de données PostgreSQL à l'aide de la commande suivante:
        psql -h localhost -d apigee -U postgres

        Lorsque vous y êtes invité, saisissez le mot de passe de l'utilisateur postgres (par défaut: postgres).

        Exécutez ensuite la requête suivante pour vérifier la valeur maximale de client_received_start_timestamp:

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

      Journaux

      Vérifiez les journaux des composants pour vous assurer qu'ils ne comportent aucune erreur.