データセンターのデコミッションが必要になる場合があります。たとえば、オペレーティング システムをアップグレードする場合は、新しいデータセンターに新しいオペレーティング システムをインストールしてから、古いデータセンターを廃止する必要があります。以下のセクションでは、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 のネットワーク到達性を無効にします。デコミッションするルーターにランタイム トラフィックが送信されていないことを確認します。
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 コンポーネントを廃止する必要があります。
- Edge UI(edge-ui)
- Management Server(edge-management-server)
- OpenLDAP(apigee-openldap)
- Router(edge-router)
- Message Processor(edge-message-processor)
- Qpid Server と Qpidd(edge-qpid-server と apigee-qpidd)
- Postgres と PostgreSQL データベース(edge-postgres-server と apigee-postgresql)
- ZooKeeper(apigee-zookeeper)
- 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 をデコミッションする手順は次のとおりです。
- dc-1 で Management Server を停止します。
apigee-service edge-management-server stop
- dc-1 に登録されている Management Server の UUID を確認します。
curl -u <AdminEmailID>:'<AdminPassword>' \ -X GET “http://{MS_IP}:8080/v1/servers?pod=central®ion=dc-1&type=management-server” - 登録解除サーバーのタイプ:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=management-server®ion=dc-1&pod=central&uuid=UUID&action=remove" - サーバーを削除します。注: このサーバーに他のコンポーネントもインストールされている場合は、UUID を削除する前に、それらのコンポーネントをすべて登録解除してください。
curl -u <AdminEmailID>:'<AdminPassword> -X DELETE http://{MS_IP}:8080/v1/servers/{UUID} - 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 を廃止する手順は次のとおりです。
- バックアップ方法の手順に沿って、dc-1 OpenLDAP ノードをバックアップします。
両方のデータセンターで次の手順を実行して、2 つのデータセンター(dc-1 と dc-2)間のデータ レプリケーションを中断します。
- 現在の状態を確認します。
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 - 次のコマンドを含むファイル
break_repl.ldifを作成します。dn: olcDatabase={2}bdb,cn=config changetype: modify delete: olcSyncRepl dn: olcDatabase={2}bdb,cn=config changetype: modify delete: olcMirrorMode 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"
- 現在の状態を確認します。
dc-2 が dc-1 に複製されなくなったことを確認するには、dc-2 LDAP にエントリを作成し、dc-1 の LDAP に表示されないことを確認します。
必要に応じて、次の手順に沿って dc-2 OpenLDAP ノードに読み取り権限のみのユーザーを作成し、ユーザーがレプリケーションされているかどうかを確認します。その後、ユーザーは削除されます。
- 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} - 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"
- 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
- 以前に追加した読み取り権限のみのユーザーを削除します。
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"
- dc-2 に、次の内容の
- dc-1 で OpenLDAP を停止します。
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
- dc-1 の OpenLDAP コンポーネントをアンインストールします。
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall
ルーター
このセクションでは、ルーターを廃止する方法について説明します。Router の削除の詳細については、 サーバーを削除するをご覧ください。
次の手順では、dc-1 から Router をデコミッションします。dc-1 に複数の Router ノードが構成されている場合は、すべての Router ノードで手順を 1 つずつ実行します。
注: ここでは、ルーターのヘルスチェック ポート 15999 がロードバランサで構成されており、ポート 15999 をブロックするとルーターに到達できなくなると想定しています。ポートをブロックするには、root アクセス権が必要になる場合があります。
ルーターを廃止する手順は次のとおりです。
ヘルスチェック ポートであるポート 15999 をブロックして、ルーターのネットワーク到達性を無効にします。このデータセンターでランタイム トラフィックがブロックされていることを確認します。
iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
ルーターに到達可能であることを確認します。
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
- UUID を取得するの説明に従って、Router の UUID を取得します。
- ルーターを停止します。
/opt/apigee/apigee-service/bin/apigee-service edge-router stop
- 次のコマンドを使用して、組織内の利用可能なゲートウェイ Pod を一覧表示します。
curl -u <AdminEmailID>:<AdminPassword> -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"Pod についてをご覧ください。
- サーバーのタイプを登録解除します。
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" - サーバーを削除します。
curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID edge-routerをアンインストールします。 サーバーを削除するをご覧ください。/opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
iptablesルールをフラッシュして、ブロックされたポート 15999 を有効にします。iptables -F
Message Processor
このセクションでは、dc-1 から Message Processor をデコミッションする方法について説明します。Message Processor の削除の詳細については、 サーバーを削除するをご覧ください。
dc-1 に 12 ノードのクラスタ化されたインストールがあると仮定しているため、dc-1 には 2 つの Message Processor ノードが構成されています。両方のノードで次のコマンドを実行します。
- UUID を取得するの説明に従って、Message Processor の UUID を取得します。
- Message Processor を停止します。
apigee-service edge-message-processor stop
- サーバーのタイプを登録解除します。
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"/pre> - 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" - サーバーのタイプを登録解除します。
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=message-processor®ion=dc-1&pod=gateway-1&uuid=UUID&action=remove"
- Message Processor をアンインストールします。
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
- サーバーの登録を解除します。
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 ノードが構成されているため、両方のノードで次の手順を行う必要があります。
- UUID を取得するの説明に沿って、Qpidd の UUID を取得します。
edge-qpid-serverとapigee-qpiddを停止します。/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop- Analytics グループとコンシューマー グループのリストを取得します。
curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax - コンシューマ グループから 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}" - アナリティクス グループから 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" - Edge インストールから Qpid サーバーの登録を解除します。
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \ -d "type=qpid-server®ion=dc-1&pod=central&uuid={QPID_UUID}&action=remove" - Edge のインストールから Qpid サーバーを削除します。
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - すべてのノードですべての 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
- 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 マスターを廃止するには:
- 次のリンクの手順に沿って、dc-1 Postgres マスターノードをバックアップします。
- UUID を取得するの説明に従って、Postgres サーバーの UUID を取得します。
- dc-1 で、現在のマスターの
edge-postgres-serverとapigee-postgresqlを停止します。/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop - 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 つをマスターに昇格させました。次の手順で、残りのスタンバイ ノードを構成します。
- 新しいマスターで、構成ファイルを編集して次のように設定します。
PG_MASTER=IP_or_DNS_of_new_PG_MASTER PG_STANDBY=IP_or_DNS_of_PG_STANDBY
- 新しいマスターでレプリケーションを有効にします。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
スタンバイ ノードが複数残っている場合
/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
- /opt/apigee/customer/application/postgresql.properties ファイルが apigee ユーザーによって所有されていることを確認します。
chown apigee:apigee /opt/apigee/customer/application/postgresql.properties apigee-postgresqlを再起動します。apigee-service apigee-postgresql restart
- 構成ファイル
/opt/silent.confを変更し、PG_MASTERフィールドを新しい Postgres マスターの IP アドレスで更新します。 - 次のコマンドを使用して、古い Postgres データを削除します。
rm -rf /opt/apigee/data/apigee-postgresql/
- スタンバイ ノードでレプリケーションを設定します。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- dc-2 で次のコマンドを入力して、Postgres マスターが正しく設定されていることを確認します。
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- 分析グループとコンシューマ グループから PostgreSQL サーバーを削除して追加します。
- アナリティクス グループから Postgres サーバーを削除するの手順に沿って、古い Postgres サーバーをアナリティクス グループから削除します。
- 既存の Postgres サーバーを分析グループに追加するの手順に沿って、新しい Postgres サーバーを分析グループに追加します。
- dc-1 から古い Postgres サーバーの登録を解除します。
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"< - dc-1 から古い Postgres サーバーを削除します。
curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - これで、古い Postgres マスターを安全に廃止できます。
edge-postgres-serverとapigee-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 スタンバイをデコミッションする手順は次のとおりです。
- UUID を取得するの手順に沿って、Postgres サーバーの UUID を取得します。
- 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 - 分析グループとコンシューマ グループから PostgreSQL サーバーを削除して追加します。
- アナリティクス グループから Postgres サーバーを削除するの手順に沿って、古い Postgres サーバーをアナリティクス グループから削除します。
- 既存の Postgres サーバーを分析グループに追加するの手順に沿って、新しい Postgres サーバーを分析グループに追加します。
- dc-1 から古い Postgres サーバーの登録を解除します。
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"< - dc-1 から古い Postgres サーバーを削除します。
curl -u >AdminEmailID>:'>AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID - これで、古い Postgres マスターを安全に廃止できます。
edge-postgres-serverとapigee-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 に関する注: 構成ファイルの
ZK_HOSTプロパティを変更する際は、ZooKeeper アンサンブルが機能し続けるように、ボーターノードのクォーラムを維持する必要があります。構成には、奇数の投票者ノードが必要です。詳細については、Apache ZooKeeper のメンテナンス タスクをご覧ください。ZooKeeper サーバーと Cassandra サーバーを廃止するには:
- 次のリンクの手順に沿って、dc-1 Cassandra ノードと ZooKeeper ノードをバックアップします。
Cassandra ノードがデコミッションされるデータセンター内の ZooKeeper サーバーと Cassandra サーバーの UUID を一覧表示します。
apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
- サーバーのタイプを登録解除します。
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®ion=dc-1&pod=central&uuid=UUID&action=remove"
- サーバーの登録を解除します。
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
ZK_HOSTSとCASS_HOSTSから削除されたデコミッションされたノードの IP で構成ファイルを更新します。例: dc-1 に IP
$IP1 $IP2 $IP3、dc-2 に IP$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"
- 既存の構成ファイルのエントリ:
- 削除されたノードの IP を使用してサイレント構成ファイル(ステップ e で変更)を更新し、Management Server をホストするすべてのノードで Management Server プロファイルを実行します。
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
- 削除されたデコミッション ノードの 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 が別々のノードに構成されている場合は、次のように入力します。
ルーターの場合:
/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
- Edge Router と Message Processor が同じノードに構成されている場合は、次のように入力します。
- すべての Qpid ノードを再構成し、廃止されたノードの IP をレスポンス ファイルから削除します。
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
- すべての Postgres ノードを再構成し、レスポンス ファイルからデコミッションされたノードの IP を削除します。
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
system_authキースペースを変更します。既存の Cassandra ノードで Cassandra 認証が有効になっている場合は、次のコマンドを実行してsystem_authキースペースのレプリケーション係数を更新します。ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};このコマンドは、レプリケーション係数を
'3'に設定します。これは、クラスタ内の 3 つの Cassandra ノードを示します。必要に応じてこの値を変更します。この手順を完了すると、Cassandra トポロジのどのキースペースにも
dc-1が存在しなくなります。- dc-1 の Cassandra ノードを 1 つずつ廃止します。
Cassandra ノードを廃止するには、次のコマンドを入力します。
/opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
- 次のいずれかのコマンドを使用して、dc-1 から Cassandra ノードの接続を確認します。
/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'
または、デコミッションされたノードで実行する二次検証コマンド:
/opt/apigee/apigee-cassandra/bin/nodetool netstats
上記のコマンドは、次を返します。
Mode: DECOMMISSIONED
- dc-2 のすべての Cassandra ノードと ZooKeeper ノードに対して DS プロファイルを実行します。
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
- dc-1 で
apigee-cassandraとapigee-zookeeperを停止します。apigee-service apigee-cassandra stop
apigee-service apigee-zookeeper stop - dc-1 で
apigee-cassandraとapigee-zookeeperをアンインストールします。apigee-service apigee-cassandra uninstall
apigee-service apigee-zookeeper uninstall
dc-1 からバインディングを削除する
dc-1 からバインディングを削除する手順は次のとおりです。
- dc-1 からバインディングを削除します。
- 組織で使用可能なすべての Pod を一覧表示します。
curl -v -u <AdminEmailID>:<AdminPassword> -X GET "http://MS_IP:8080/v1/o/ORG/pods"
- すべてのバインディングが削除されたかどうかを確認するには、Pod に関連付けられているサーバーの UUID を取得します。
curl -v -u <AdminEmailID>:<AdminPassword> \ -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"
このコマンドで UUID が返されない場合は、前の手順ですべてのバインディングが削除されているため、次の手順をスキップできます。それ以外の場合は、次の手順を行います。
- 前のステップで取得した UUID のサーバー バインディングをすべて削除します。
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
- Pod から組織の関連付けを解除します。
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove®ion=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
- 組織で使用可能なすべての Pod を一覧表示します。
- Pod を削除します。
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
- リージョンを削除します。
curl -v -u <AdminEmailID>:<AdminPassword> "http://MS_IP:8080/v1/regions/dc-1" -X DELETE
注: サーバーを削除する手順のいずれかを省略すると、上記の手順で、Pod 内の特定のサーバーがまだ存在するというエラー メッセージが返されます。そのため、以下のトラブルシューティングの手順に沿って削除します。その際、
curlコマンドでタイプをカスタマイズします。これで、dc-1 のデコミッションが完了しました。
付録
トラブルシューティング
上記の手順を完了しても、一部の Pod にサーバーが残っている場合は、次の手順でサーバーの登録を解除して削除します。注: 必要に応じて、タイプと Pod を変更します。
- 次のコマンドを使用して UUID を取得します。
apigee-adminapi.sh servers list -r dc-1 -p POD -t --admin <AdminEmailID> --pwd '<AdminPassword>’ --host localhost
- 登録解除サーバーのタイプ:
curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
- サーバーを 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®ion=dc-1 curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway®ion=dc-1 curl -v -u <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics®ion=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の値は、observer、leader、followerのいずれかになります。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;ログ
コンポーネントのログをチェックして、エラーがないことを確認します。
- 新しいマスターで、構成ファイルを編集して次のように設定します。