データセンターの廃止

データセンターの廃止が必要になることがあります。たとえば、オペレーティング システムをアップグレードする場合、新しいオペレーティング システムを新しいデータセンターにインストールしてから、古いデータセンターを廃止する必要があります。以降のセクションでは、12 ノードクラスタ構成に 2 つのデータセンター(dc-1 と dc-2)があるデータセンターを廃止する例を示します。

  • dc-1 は、廃止するデータセンターです。
  • dc-2 は 2 番目のデータセンターで、廃止手順で使用されます。

オペレーティング システムをアップグレードする場合、dc-2 は新しいバージョンのオペレーティング システム(OS)をインストールしたデータセンターになります。ただし、データセンターを廃止するために新しい OS をインストールする必要はありません。

データセンターを廃止する前の考慮事項

データセンターを廃止するときは、次の点に注意してください。

  • 廃止されるデータセンターへのランタイム トラフィックと管理トラフィックをすべてブロックし、他のデータセンターにリダイレクトします。
  • データセンターを廃止すると、Apigee クラスタの容量は削減されます。この容量を補うために、残りのデータセンターの容量を増やすか、廃止後にデータセンターを追加することをご検討ください。
  • 廃止するデータセンターにインストールされている分析コンポーネントによっては、廃止プロセス中に分析データが失われる可能性があります。詳細については、Qpid ノードを追加または削除するをご覧ください。
  • データセンターを廃止する前に、すべてのデータセンター(特に OpenLDAP、ZooKeeper、Cassandra、Postgres のサーバー)ですべてのコンポーネントがどのように構成されているかを理解しておく必要があります。また、すべてのコンポーネントとその構成のバックアップを取る必要があります。

始める前に

  • Management Server: 廃止のステップはすべて Management Server に大きく依存します。使用可能な Management Server が 1 つのみの場合は、dc-1 の Management Server を廃止する前に、dc-1 以外のデータセンターに新しい Management Server コンポーネントをインストールし、いずれかの Management Server が常に使用可能であることを確認することをおすすめします。
  • Router: Router を廃止する前に、ポート 15999 をブロックして Router のネットワーク到達性を無効にします。廃止する Router にランタイム トラフィックが転送されていないことを確認します。
  • Cassandra と ZooKeeper: 以下のセクションでは、2 つのデータセンター構成で dc-1 を廃止する方法について説明します。データセンターが 3 つ以上ある場合は、残りのすべてのデータセンターのすべてのサイレント構成ファイルから、廃止するノード(この場合は dc-1)への参照をすべて削除してください。廃止する Cassandra ノードについては、CASS_HOSTS からそれらのホストを削除します。残りの Cassandra ノードは元の CASS_HOSTS の順序のままにする必要があります。

  • Postgres: Postgres マスターを廃止する場合は、使用可能なスタンバイ ノードのいずれかを新しい Postgres マスターに昇格させます。QPID サーバーはキューにバッファを保持しますが、Postgres マスターが長期間使用できなくなった場合、分析データが失われるおそれがあります。

前提条件

  • コンポーネントを廃止する前に、すべてのノードを完全にバックアップすることをおすすめします。現在の Edge バージョンのバックアップ手順に沿ってください。バックアップの詳細については、バックアップと復元をご覧ください。

    注: Cassandra ノードまたは ZooKeeper ノードが複数ある場合は、バックアップ プロセスで ZooKeeper が一時的にシャットダウンするため、それらのノードを一度に 1 つずつバックアップします。

  • 次のコマンドを使用して、Edge を廃止する前に稼働中であることを確認します。
    /opt/apigee/apigee-service/bin/apigee-all status
  • 廃止するデータセンターに現在ランタイム トラフィックが到着していないことを確認します。

コンポーネントの廃止の順序

Edge for Private Cloud を複数のノードにインストールする場合は、それらのノード上の Edge コンポーネントを次の順序で廃止する必要があります。

  1. Edge UI(edge-ui)
  2. Management Server(edge-management-server)
  3. OpenLDAP(apigee-openldap)
  4. ルーター(エッジルーター)
  5. Message Processor(edge-message-processor)
  6. Qpid Server と Qpidd(edge-qpid-server と apigee-qpidd)
  7. Postgres と PostgreSQL データベース(edge-postgres-server と apigee-postgresql)
  8. ZooKeeper(apigee-zookeeper)
  9. Cassandra(apigee-cassandra)

以降のセクションでは、各コンポーネントを廃止する方法について説明します。

Edge UI

dc-1 の Edge UI コンポーネントを停止してアンインストールするには、次のコマンドを入力します。

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

管理サーバー

dc-1 で Management Server を廃止するには、次の操作を行います。

  1. dc-1 で Management Server を停止します。
    apigee-service edge-management-server stop
  2. dc-1 に登録されている Management Server の UUID を確認します。
    curl -u <AdminEmailID>:'<AdminPassword>' \
    -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. サーバーのタイプの登録を解除します。
    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. サーバーを削除します。注: このサーバーに他のコンポーネントもインストールされている場合は、UUID を削除する前に、すべてのコンポーネントの登録を解除してください。
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. dc-1 で Management Server コンポーネントをアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

このセクションでは、dc-1 で OpenLDAP を廃止する方法について説明します。

注: データセンターが 3 つ以上ある場合は、後述の3 つ以上のデータセンターがある設定をご覧ください。

dc-1 で OpenLDAP を廃止するには、次の操作を行います。

  1. バックアップ方法の手順に沿って、dc-1 OpenLDAP ノードをバックアップします。
  2. 2 つのデータセンター dc-1 と dc-2 間のデータ レプリケーションを中断します。両方のデータセンターで次の手順を実行します。

    1. 現在の状態を確認します。
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      出力例を以下に示します。

      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. 次のコマンドを含む break_repl.ldif ファイルを作成します。
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. ldapmodify コマンドを実行します。
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      出力例を以下に示します。

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"

  3. dc-2 が dc-1 に複製されなくなったことを確認するには、dc-2 LDAP にエントリを作成し、そのエントリが dc-1 の LDAP に表示されないようにします。

    必要に応じて、以下の手順に沿って dc-2 OpenLDAP ノードに読み取り専用ユーザーを作成し、そのユーザーが複製されているかどうかを確認します。その後、ユーザーは削除されます。

    1. dc-2 に、次の内容のファイル readonly-user.ldif を作成します。
      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. dc-2 で ldapadd コマンドでユーザーを追加します。
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      出力は次のようになります。

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"

    3. dc-1 でユーザーを検索し、ユーザーが複製されていないことを確認します。ユーザーが dc-1 に存在しない場合は、両方の LDAP が複製されなくなります。
      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

      出力例を以下に示します。

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. 以前に追加した読み取り専用ユーザーを削除します。
      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. dc-1 で OpenLDAP を停止します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. dc-1 から OpenLDAP コンポーネントをアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

ルーター

このセクションでは、Router を廃止する方法について説明します。Router の削除について詳しくは、 サーバーを削除するをご覧ください。

次の手順では、dc-1 から Router を廃止します。dc-1 に複数の Router ノードが構成されている場合は、すべての Router ノードでこの手順を 1 つずつ実行します。

注: ここでは、ロードバランサでルーターのヘルスチェック ポート 15999 が構成されており、ポート 15999 をブロックするとルーターにアクセスできないことを前提としています。ポートをブロックするために、root アクセス権が必要になる場合があります。

Router を廃止する手順は次のとおりです。

  1. ヘルスチェック ポート 15999 をブロックして、ルーターのネットワーク到達性を無効にします。 このデータセンターでランタイム トラフィックがブロックされていることを確認します。

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. ルーターに到達可能であることを確認します。

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

    出力は次のようになります。

    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. UUID の取得の説明に従って、Router の UUID を取得します。
  4. ルーターを停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. 次のコマンドを使用して、組織内の使用可能なゲートウェイ Pod を一覧表示します。
    curl -u  <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    Pod についてをご覧ください。

  6. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=router&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"
  7. サーバーの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. edge-router をアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    サーバーを削除するをご覧ください。
  9. iptables ルールをフラッシュして、ブロックされたポート 15999 を有効にします。
    iptables -F

Message Processor

このセクションでは、dc-1 から Message Processor を廃止する方法について説明します。Message Processor の削除の詳細については、 サーバーの削除をご覧ください。

dc-1 に 12 ノードクラスタ構成があると仮定しているため、dc-1 では 2 つの Message Processor ノードが構成されています。両方のノードで次のコマンドを実行します。

  1. UUID の取得の説明に従って、Message Processor の UUID を取得します。
  2. Message Processor を停止します。
    apigee-service edge-message-processor stop
  3. サーバーのタイプの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers  \
    -d "type=message-processor&amp;region=dc-1&amp;pod=gateway-1&amp;uuid=UUID&amp;action=remove"/pre>
  4. Disassociate an environment from the Message Processor.

    Note: You need to remove the bindings on each org/env that associates the Message Processor UUID.

    curl -H "Content-Type:application/x-www-form-urlencoded" -u <AdminEmailID>:''  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. サーバーのタイプの登録を解除します。
    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. Message Processor をアンインストールします。
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. サーバーの登録を解除します。
    curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/UUID

Qpid サーバーと Qpidd

このセクションでは、Qpid Server(edge-qpid-server)と Qpidd(apigee-qpidd)を廃止する方法について説明します。dc-1 には 2 つの Qpid ノードが構成されているため、両方のノードで次の手順を行う必要があります。

  1. UUID の取得の説明に従って、Qpidd の UUID を取得します。
  2. edge-qpid-serverapigee-qpidd を停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. アナリティクスとコンシューマ グループのリストを取得します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. コンシューマ グループから Qpid を削除します。
    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. 分析グループから Qpid を削除します。
    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. Edge 環境から Qpid サーバーの登録を解除します。
    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. Edge 環境から Qpid サーバーを削除します。
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. すべてのノードですべての edge-qpid-server コンポーネントを再起動して、これらのコンポーネントで変更が反映されていることを確認します。
    $ /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. edge-qpid-server と apigee-qpidd をアンインストールします。
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

Postgres と Postgresql

廃止するデータセンターには、Postgres マスターまたは Postgres スタンバイがあります。以降のセクションでは、これらを廃止する方法について説明します。

Postgres マスターの廃止

注: Postgres マスターを廃止する場合は、使用可能なスタンバイ ノードのいずれかを新しい Postgres マスターに昇格させます。QPID がバッファデータをキューイングしている間、Postgres マスターが長期間使用できなくなった場合、分析データが失われるおそれがあります。

Postgres マスターを廃止するには:

  1. 次のリンクの手順に沿って、dc-1 Postgres マスターノードをバックアップします。
  2. UUID の取得の説明に沿って、Postgres サーバーの UUID を取得します。
  3. dc-1 で、現在のマスターの edge-postgres-serverapigee-postgresql を停止します。
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. dc-2 のスタンバイ ノードで、次のコマンドを入力してマスターノードにします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    注: スタンバイ Postgres ノードが複数ある場合は、新しいマスターにホストエントリを追加し、利用可能なすべての postgres スタンバイ ノードのレプリケーション設定を更新する必要があります。

    ホストエントリを新しい Postgres マスターに追加するには、以下の該当するセクションの手順を行います。

    スタンバイ ノードが 1 つしかない場合

    たとえば、廃止前に 3 つの Postgres ノードが構成されているとします。既存のマスターを廃止し、残りの postgres スタンバイ ノードの 1 つをマスターに昇格しました。次の手順で残りのスタンバイ ノードを構成します。

    1. 新しいマスターで、構成ファイルを編集して次のように設定します。
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. 新しいマスターでレプリケーションを有効にします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    スタンバイ ノードが複数ある場合

    1. /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. ファイル /opt/apigee/customer/application/postgresql.properties の所有者を apigee ユーザー
            chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
      にします。
    3. apigee-postgresql を再起動します。
      apigee-service apigee-postgresql restart
    4. スタンバイ ノードのレプリケーション設定を更新するには:

      1. 構成ファイル /opt/silent.conf を変更し、PG_MASTER フィールドを新しい Postgres マスターの IP アドレスに更新します。
      2. rm -rf /opt/apigee/data/apigee-postgresql/
        を使用して、古い Postgres データをすべて削除します。
      3. スタンバイ ノードでのレプリケーションを設定します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. dc-2 で次のコマンドを入力して、Postgres マスターが正しく設定されていることを確認します。
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. 分析グループとコンシューマ グループから Postgresql サーバーを削除して追加します。
      1. 分析グループから Postgres サーバーを削除するの手順に沿って、分析グループから古い Postgres サーバーを削除します。
      2. 既存の Postgres サーバーを分析グループに追加するの手順に沿って、分析グループに新しい postgres サーバーを追加します。
    7. dc-1 から古い postgres サーバーを削除します。
      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"<
    8. dc-1 から古い postgres サーバーを削除します。
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. これで、古い Postgres マスターは安全に廃止できます。edge-postgres-serverapigee-postgresql をアンインストールします:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    Postgres スタンバイの廃止

    注: 12 ノードクラスタ構成のドキュメントでは、dc-1 postgresql ノードがマスターとして示されていますが、このセクションでは、dc-1 postgresql ノードがスタンバイ、dc-2 postgresql ノードがマスターであることを前提としています。

    Postgres スタンバイを廃止するには、次の操作を行います。

    1. UUID の取得の手順に沿って、Postgres サーバーの UUID を取得します。
    2. dc-1 の現在のスタンバイ ノードで apigee-postgresql を停止します。
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. 分析グループとコンシューマ グループから Postgresql サーバーを削除して追加します。
      1. 分析グループから Postgres サーバーを削除するの手順に沿って、分析グループから古い Postgres サーバーを削除します。
      2. 既存の Postgres サーバーを分析グループに追加するの手順に沿って、分析グループに新しい postgres サーバーを追加します。
    4. dc-1 から古い postgres サーバーを削除します。
      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. dc-1 から古い postgres サーバーを削除します。
      curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. これで、古い Postgres マスターは安全に廃止できます。edge-postgres-serverapigee-postgresql をアンインストールします:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper と Cassandra

    このセクションでは、2 つのデータセンター構成で ZooKeeper サーバーと Cassandra サーバーを廃止する方法について説明します。

    データセンターが 3 つ以上ある場合は、残りのすべてのデータセンターのすべてのサイレント構成ファイルから、廃止するノード(この場合は dc-1)への参照をすべて削除してください。廃止する Cassandra ノードについては、CASS_HOSTS からそれらのホストを削除します。残りの Cassandra ノードは元の CASS_HOSTS の順序のままにする必要があります。

    ZooKeeper に関する注: ZooKeeper アンサンブルが引き続き機能するように、構成ファイルの ZK_HOST プロパティを変更しながらボーターノードのクォーラムを維持する必要があります。構成内のボーターノードの数は奇数にする必要があります。詳細については、Apache ZooKeeper のメンテナンス タスクをご覧ください。

    ZooKeeper サーバーと Cassandra サーバーを廃止するには:

    1. 次のリンクの手順に沿って、dc-1 の Cassandra ノードと ZooKeeper ノードをバックアップします。
    2. Cassandra ノードを廃止するデータセンターにある ZooKeeper サーバーと Cassandra サーバーの UUID を一覧表示します。

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. サーバーのタイプの登録を解除します。
      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. サーバーの登録を解除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. ZK_HOSTSCASS_HOSTS から廃止されたノードの IP を削除して構成ファイルを更新します。

      たとえば、dc-1 に IP $IP1 $IP2 $IP3、dc-2 に $IP4 $IP5 $IP6 という IP があり、dc-1 を廃止するとします。次に、構成ファイルから IP $IP1 $IP2 $IP3 を削除する必要があります。

      • 既存の構成ファイルのエントリ:
        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”
      • 構成ファイルの新しいエントリ:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. 廃止したノードの IP を使用してサイレント構成ファイル(手順 e で変更)を更新し、Management Server をホストしているすべてのノードで Management Server プロファイルを実行します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. 削除された廃止ノードの IP で構成ファイルを更新し、すべての Router ノードと Message Processor ノードで MP/RMP プロファイルを実行します。
      • Edge Router と Message Processor が同じノードに構成されている場合は、次のように入力します。
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • Edge Router と Message Processor が別々のノードで構成されている場合は、次のように入力します。

        Router の場合:

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

        Message Processor の場合:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. レスポンス ファイルから廃止されたノードの IP を削除して、すべての Qpid ノードを再構成します。
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. レスポンス ファイルから廃止したノードの IP を削除して、すべての Postgres ノードを再構成します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. system_auth キースペースを変更します。既存の Cassandra ノードで Cassandra 認証が有効になっている場合は、次のコマンドを実行して system_auth キースペースのレプリケーション係数を更新します。
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      このコマンドでは、レプリケーション係数が '3' に設定され、クラスタ内に 3 つの Cassandra ノードがあることを示します。この値は必要に応じて変更します。

      この手順を完了すると、Cassandra トポロジのどのキースペースにも dc-1 が含まれなくなります。

    11. dc-1 の Cassandra ノードを 1 つずつ廃止します。

      Cassandra ノードを廃止するには、次のコマンドを入力します。

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission

    12. 次のいずれかのコマンドを使用して、dc-1 からの Cassandra ノードの接続を確認します。
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      または、廃止されたノードで実行するセカンダリ検証コマンド:

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

      上記のコマンドから

      Mode: DECOMMISSIONED
      が返されます。

    13. dc-2 のすべての Cassandra ノードと ZooKeeper ノードに対して DS プロファイルを実行します。
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. dc-1 の apigee-cassandraapigee-zookeeper を停止します。
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. dc-1 の apigee-cassandraapigee-zookeeper をアンインストールします。
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    dc-1 からバインディングを削除する

    dc-1 からバインディングを削除する手順は次のとおりです。

    1. dc-1 からバインディングを削除します。
      1. 組織で使用可能なすべての Pod を一覧表示します。
        curl -v -u  <AdminEmailID>:<AdminPassword> -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. すべてのバインディングが削除されたかどうかを確認するには、Pod に関連付けられているサーバーの UUID を取得します。
        curl -v -u  <AdminEmailID>:<AdminPassword> \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        このコマンドで UUID が返されない場合は、前の手順ですべてのバインディングが削除されているため、次のステップをスキップできます。それ以外の場合は、次の手順に進みます。

      3. 前の手順で取得した UUID のサーバー バインディングをすべて削除します。
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. 組織と 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. Pod を削除します。
      curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. リージョンを削除します。
      curl -v -u <AdminEmailID>:<AdminPassword>  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    注: サーバーを削除する手順のいずれかを実行しなかった場合、上記の手順を行うと、Pod 内に特定のサーバーがまだ存在するというエラー メッセージが返されます。そのため、curl コマンドのタイプをカスタマイズしながら、以下のトラブルシューティング手順に沿ってタイプを削除してください。

    この時点で dc-1 の廃止は完了しました。

    付録

    トラブルシューティング

    上記の手順を行っても一部の Pod にまだサーバーがある場合は、次の手順でサーバーの登録を解除して削除します。 注: 必要に応じてタイプと Pod を変更してください。

    1. 次のコマンドを使用して UUID を取得します。
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. サーバーのタイプの登録を解除します。
      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. サーバーを 1 つずつ削除します。
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

    検証

    次のコマンドを使用して、廃止を検証できます。

    管理サーバー

    すべてのリージョンの Management Server から次のコマンドを実行します。

    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

    すべてのコンポーネントで次のコマンドを実行して、すべての管理ポートのポート要件を確認します。

    curl -v http://MS_IP:8080/v1/servers/self

    アナリティクス グループを確認します。

    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

    Cassandra/ZooKeeper ノード

    すべての Cassandra ノードで、次のように入力します。

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

    これは、その特定のノードについて running または not running ステータスを返します。

    1 つのノードで次のように入力します。

    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
    /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

    上記のコマンドは、アクティブなデータセンターの情報を返します。

    ZooKeeper ノードでは、最初に次のように入力します。

    echo ruok | nc <host> 2181

    このコマンドは imok を返します。

    続いて、次のように入力します。

    echo stat | nc <host> 2181 | grep Mode

    上記のコマンドで返される Mode の値は、observerleaderfollower のいずれかです。

    1 つの ZooKeeper ノード:

    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt

    Postgres マスターノードで、次のコマンドを実行します。

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    ノードがマスターであるとレスポンスに示されていることを検証します。

    スタンバイ ノードで次の操作を行います。

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    レスポンスで、ノードがスタンバイであることを示していることを確認します。

    次のコマンドを使用して PostgreSQL データベースにログインします。

    psql -h localhost -d apigee -U postgres

    プロンプトが表示されたら、「postgres」ユーザー パスワードとして「'postgres'」を入力します。アナリティクスから「max(client_received_start_timestamp)」を選択します。

    ”$org.$env.fact” limit 1

    ログ

    コンポーネントのログで、エラーがないことを確認します。