データセンターの廃止

データセンターの廃止が必要になることもあります。たとえば、オペレーティング システムをアップグレードする場合は、新しいデータセンターに新しいオペレーティング システムをインストールしてから、古いデータセンターを廃止する必要があります。以降のセクションでは、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 の手順に沿ってバックアップを実行します。バックアップの詳細については、バックアップと復元をご覧ください。

    注: バックアップ プロセスによって ZooKeeper が一時的にシャットダウンされるため、複数の Cassandra ノードまたは 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. Router(エッジルーター)
  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 で管理サーバーを廃止するには、次の操作を行います。

  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 Server と 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. 次のコマンドを使用して、古い Postgres データを削除します:
        rm -rf /opt/apigee/data/apigee-postgresql/
      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 があり、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 サーバー プロファイルを実行します。
      /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>'

      廃止されたノードで実行する 2 番目の検証コマンド:

      /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 Servers から次のコマンドを実行します。

    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;

    ログ

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