有时,您可能需要停用数据中心。例如,如果您要升级操作系统,则需要在新数据中心安装新操作系统,然后停用旧数据中心。以下部分展示了一个停用数据中心的示例,其中12 节点集群安装中有两个数据中心:dc-1 和 dc-2:
- dc-1 是要停用的数据中心。
- dc-2 是第二个数据中心,在停用过程中使用。
如果您要升级操作系统,dc-2 可能是您安装了新版本操作系统 (OS) 的数据中心。不过,停用数据中心并不需要安装新操作系统。
停用数据中心前的注意事项
停用数据中心时,请注意以下事项:
- 屏蔽流向要停用的数据中心的所有运行时和管理流量,并将其重定向到其他数据中心。
- 停用数据中心后,Apigee 集群中的容量将会减少。 为了弥补这一损失,请考虑在停用后增加剩余数据中心的容量或添加数据中心。
- 在停用过程中,可能会丢失分析数据,具体取决于要停用的数据中心内安装了哪些分析组件。如需了解详情,请参阅添加或移除 Qpid 节点。
- 在停用数据中心之前,您应该了解所有组件在所有数据中心中的配置方式,尤其是 OpenLDAP、ZooKeeper、Cassandra 和 Postgres 服务器。您还应备份所有组件及其配置。
前期准备
- 管理服务器: 所有停用步骤都高度依赖于管理服务器。如果您只有一个 Management Server 可用,我们建议您在停用 dc-1 上的 Management Server 之前,在 dc-1 以外的数据中心安装新的 Management Server 组件,并确保其中一个 Management Server 始终可用。
- 路由器:在停用路由器之前,请通过屏蔽端口 15999 来停用路由器的可访问性。确保没有运行时流量定向到要停用的路由器。
Cassandra 和 ZooKeeper: 以下部分介绍了如何在两个数据中心设置中停用 dc-1。 如果您有两个以上的数据中心,请务必从所有剩余数据中心的所有静默配置文件中移除对要停用的节点(在本例中为 dc-1)的所有引用。对于要停用的 Cassandra 节点,请从
CASS_HOSTS中移除这些主机。 其余 Cassandra 节点应保持CASS_HOSTS的原始顺序。Postgres:如果您停用 Postgres 主节点,请务必将任何可用的备用节点提升为新的 Postgres 主节点。虽然 QPID 服务器在队列中保留缓冲区,但如果 Postgres 主服务器长时间不可用,您可能会丢失分析数据。
前提条件
在停用任何组件之前,我们建议您对所有节点执行完整备份。使用当前 Edge 版本的步骤执行备份。如需详细了解备份,请参阅备份和恢复。
注意:如果您有多个 Cassandra 或 ZooKeeper 节点,请逐个备份,因为备份过程会暂时关闭 ZooKeeper。
- 在停用之前,请使用以下命令确保 Edge 启动并运行:
/opt/apigee/apigee-service/bin/apigee-all status
- 确保当前没有运行时流量到达您要停用的数据中心。
组件停用顺序
如果您在多个节点上安装 Edge for Private Cloud,则应按以下顺序停用这些节点上的 Edge 组件:
- Edge 界面 (edge-ui)
- Management Server (edge-management-server)
- OpenLDAP (apigee-openldap)
- 路由器 (edge-router)
- 消息处理器 (edge-message-processor)
- Qpid 服务器和 Qpidd(edge-qpid-server 和 apigee-qpidd)
- Postgres 和 PostgreSQL 数据库(edge-postgres-server 和 apigee-postgresql)
- ZooKeeper (apigee-zookeeper)
- Cassandra (apigee-cassandra)
以下各部分介绍了如何停用每个组件。
Edge 界面
如需停止并卸载 dc-1 的 Edge 界面组件,请输入以下命令:
/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 中注册的管理服务器的 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。
注意:如果您有两个以上的数据中心,请参阅下文的具有两个以上数据中心的设置。
如需在 dc-1 上退役 OpenLDAP,请执行以下步骤:
- 按照如何备份中的步骤备份 dc-1 OpenLDAP 节点。
通过在两个数据中心执行以下步骤,中断两个数据中心(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 LDAP 中创建条目并确保该条目不会显示在 dc-1 的 LDAP 中,来验证 dc-2 是否不再复制到 dc-1。
(可选)您可以按照以下步骤在 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
路由器
本部分介绍了如何停用路由器。如需详细了解如何移除路由器,请参阅 移除服务器。
以下步骤将从 dc-1 停用路由器。 如果 dc-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,如获取 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
消息处理器
本部分介绍如何从 dc-1 停用 Message Processor。 如需详细了解如何移除消息处理器,请参阅 移除服务器。
由于我们假设 dc-1 具有12 节点集群安装,因此 dc-1 中配置了两个消息处理器节点。在两个节点中执行以下命令。
- 获取消息处理器的 UUID,如获取 UUID 中所述。
- 停止消息处理器:
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"
- 卸载消息处理器:
/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 中配置了两个 Qpid 节点,因此您必须对这两个节点执行以下步骤:
- 获取 Qpidd 的 UUID,如获取 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 - 获取 Google 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 主节点:
- 获取 Postgres 服务器的 UUID,如获取 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 主节点添加主机条目,请按照以下相应部分中的步骤操作:
如果只剩下一个备用节点
例如,假设在停用之前,配置了三个 Postgres 节点。 您已停用现有主节点,并将剩余的一个 Postgres 备用节点提升为主节点。按照以下步骤配置其余备用节点:
- 在新主实例上,修改配置文件以设置:
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,并使用新 Postgres 主实例的 IP 地址更新PG_MASTER字段。 - 使用以下命令移除所有旧 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
本部分介绍了如何在两个数据中心设置中停用 ZooKeeper 和 Cassandra 服务器。
如果您有两个以上的数据中心,请务必从所有剩余数据中心的所有静默配置文件中移除对要停用的节点(在本例中为 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 中修改),并在托管管理服务器的所有节点上运行管理服务器配置文件:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
- 使用已移除的已停用节点的 IP 更新配置文件,并在所有路由器和消息处理器节点上运行 MP/RMP 配置文件:
- 如果在同一节点上配置了 Edge Router 和 消息处理器,请输入:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
如果边缘路由器和消息处理器配置在不同的节点上,请输入以下内容:
针对路由器:
/opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file
对于消息处理器:
/opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
- 如果在同一节点上配置了 Edge Router 和 消息处理器,请输入:
- 重新配置所有 Qpid 节点,并从响应文件移除已停用节点的 IP:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
- 重新配置所有 Postgres 节点,并从响应文件 (Response File) 中移除已停用节点的 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',表示集群中有三个 Cassandra 节点。根据需要修改此值。完成此步骤后,Cassandra 拓扑不应在任何键空间中包含
dc-1。 - 逐个停用 dc-1 上的 Cassandra 节点。
如需停用 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"
- 逐个删除服务器:
curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID
验证
您可以使用以下命令验证停用情况。
管理服务器
在所有区域的管理服务器上运行以下命令。
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状态。在一个节点上输入:
/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。在一个 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;日志
检查组件上的日志,确保没有错误。
- 在新主实例上,修改配置文件以设置: