Edge for Private Cloud 4.17.01 版
Apigee 组件使用 IP 地址相互通信。将组件从一台机器移至另一台机器可能会导致配置不匹配。如需修复配置不匹配问题,请按照以下相关说明操作。
更改 Cassandra 节点的 IP 地址
如需更改 Cassandra 节点的 IP 地址,请执行以下步骤:
对于具有单个 Cassandra 节点的配置
- 在要修改的系统上修改 /opt/apigee/customer/application/cassandra.properties。如果该文件不存在,请创建它。
- 更改以下参数:
- 设置 conf_cassandra_seeds 和 conf_cassandra_listen_address 参数,以指定系统的新 IP 地址。
- 更改 conf_cassandra_rpc_address 以使用新 IP 地址或 0.0.0.0(允许 Cassandra Thrift 监听所有接口)。
- 在编辑器中打开 /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties。您应该会看到旧 IP 地址和默认设置,格式如下:
192.168.56.101=dc-1:ra-1
default=dc-1:ra-1
保存该信息。 - 修改 /opt/apigee/customer/application/cassandra.properties,将指定的旧 IP 地址更改为新 IP 地址:
conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n
确保在 IP 地址后插入“\n”,并指定与上述第 3 步中相同的默认设置。 - 重启 Cassandra:
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - 如有必要,还需修复 ZooKeeper(见下文),否则请重启每个 Apigee 平台组件(从 Management Server 开始)。
对于具有多个 Cassandra 节点(环)的配置
- 如果正在更改的节点是种子节点,请修改环中每个系统上的 /opt/apigee/customer/application/cassandra.properties 文件,并更改 conf_cassandra_seeds 参数,以包含修改后的系统的新 IP。如果 cassandra.properties 文件不存在,请创建该文件。
- 在要修改的系统上修改 /opt/apigee/customer/application/cassandra.properties,并更改以下参数:
- 将 conf_cassandra_listen_address 设置为使用新的 IP 地址。
- 将 conf_cassandra_rpc_address 设置为使用新 IP 地址或 0.0.0.0(这允许 Cassandra Thrift 监听所有接口)。
- 在编辑器中打开 /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties。您应该会看到所有 Cassandra IP 地址和默认设置,格式如下:
192.168.56.101=dc-1:ra-1
192.168.56.102=dc-1:ra-1
192.168.56.103=dc-1:ra-1
default=dc-1:ra-1
保存该信息。 - 编辑 /opt/apigee/customer/application/cassandra.properties 文件,将旧 IP 地址更改为新 IP 地址:
conf_cassandra-topology_topology=192.168.56.101=dc-1:ra-1\n192.168.56.102=dc-1:ra-1\n192.168.56.104=dc-1:ra-1\ndefault=dc-1:ra-1\n
请确保在每个 IP 地址后插入“\n”,并使用与您在步骤 3 中记录的相同的默认设置。 - 在修改后的系统上重启 Cassandra。如果修改后的系统是种子节点,则还要重启使用修改后的种子节点的每个系统。
> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart - 在修改后的节点上运行 nodetool ring 命令,以确保环完整。该实用程序位于 opt/apigee/apigee-cassandra/bin。
> nodetool -h localhost ring - 在修改后的节点上运行 nodetool repair。请注意,此过程可能需要一些时间,因此强烈建议您不要在 API 流量高峰时段执行此操作。
> nodetool -h localhost repair - 如有必要,请修复 ZooKeeper(见下文),然后从 Management Server 开始重启每个 Apigee 平台组件
更新数据存储区注册
- 使用以下命令查找指定旧 IP 地址的数据存储区注册的 UUID。记下“type”和“UUID”参数:
- curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers?pod=central®ion=DC" | egrep -i '(type|internalip|uuid|region)'
- curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers?pod=gateway®ion=DC" | egrep -i '(type|internalip|uuid|region)'
- curl -u $ADMINEMAIL:$PW
"http://$MSIP:$port/v1/servers?pod=analytics®ion=DC"
| egrep -i '(type|internalip|uuid|region)'
其中 DC 是数据中心名称。在单个数据中心安装中,该值通常为“dc-1”。
- 使用以下任一命令注册新 IP 地址。所需的命令取决于已更改节点的类型。
注意:下面的 REGION 参数是指集群所在的数据中心。例如,为了实现高可用性,您通常会在 dc-1(数据中心 1)中有一个集群,在 dc-2(数据中心 2)中有一个集群。此参数在安装时定义。默认值为 dc-1。- 对于 type="application-datastore":
curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers -d "Type=application-datastore&Type=audit-datastore&InternalIP=${NEWIP}®ion=${REGION}&pod=central" -H 'content-type: application/x-www-form-urlencoded' -X POST - 对于 type="kms-datastore":
curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers -d "Type=kms-datastore&Type=dc-datastore&Type=keyvaluemap-datastore&Type=counter-datastore&Type=cache-datastore &InternalIP=${NEWIP}®ion=${REGION}&pod=${GATEWAY_POD}" -H 'content-type: application/x-www-form-urlencoded' -X POST - 对于 type="reportcrud-datastore":
curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers" -d "Type=reportcrud-datastore&InternalIP=${NEW_IP}®ion=${REGION}&pod=analytics" -H 'content-type: application/x-www-form-urlencoded' -X POST
- 对于 type="application-datastore":
- 删除 IP 地址已更改的系统的 UUID 的旧注册。对于每个 UUID,请发出以下命令:
curl -u $ADMINEMAIL:$PW "http://$MSIP:$port/v1/servers/${OLD_UUID}" -X DELETE
更改 ZooKeeper 节点的 IP 地址
请按照以下步骤更改 ZooKeeper 节点的 IP 地址:
更改 IP 地址并重启 ZooKeeper 集群(仅适用于多节点集群配置)
- 在编辑器中打开 /opt/apigee/apigee-zookeeper/conf/zoo.cfg。您应该会看到所有 ZooKeeper IP 地址和默认设置,格式如下:
server.1=192.168.56.101:2888:3888
server.2=192.168.56.102:2888:3888
server.3=192.168.56.103:2888:3888
保存该信息。 - 在每个 ZooKeeper 节点上,修改 /opt/apigee/customer/application/zookeeper.properties 文件,将 conf_zoo_quorum 属性设置为正确的 IP 地址。如果该文件不存在,请创建它。
conf_zoo_quorum=server.1=192.168.56.101:2888:3888\nserver.2=192.168.56.102:2888:3888\nserver.3=192.168.56.104:2888:3888\n
确保在每个 IP 地址后插入“\n”,并且每个节点上的条目顺序相同。 - 使用以下命令查找 ZooKeeper 集群的领导者(将 <node> 替换为 Zookeeper 机器的 IP 地址):
echo srvr | nc <node> 2181
输出中的“模式”行应显示“领导者”。 - 依次重启 ZooKeeper,从领导者开始,到 IP 地址已更改的节点结束。如果多个 zookeeper 节点更改了 IP 地址,则可能需要重启所有节点。
> /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart - 使用上述 echo 命令验证每个 ZooKeeper 节点。
将更改后的配置告知 Apigee 节点
- 在每个路由器节点上,按如下方式修改文件 /opt/apigee/customer/application/router.properties。如果该文件不存在,请创建它。
- 更改 conf_zookeeper_connection.string 参数,以包含新的 IP 地址
- 更改 conf_zookeeper_zk1.host 参数,以包含新的 IP 地址
- 在每个消息处理器节点上,按如下方式修改 /opt/apigee/customer/application/message-processor.properties 文件。如果该文件不存在,请创建它。
- 更改 conf_zookeeper_connection.string 参数以包含新的 IP 地址
- 更改 conf_zookeeper_zk1.host 参数以包含新的 IP 地址
- 在管理服务器节点上,按如下方式修改文件 /opt/apigee/customer/application/management-server.properties。如果该文件不存在,请创建它。
- 更改 conf_zookeeper_connection.string 参数以包含新的 IP 地址
- 更改 conf_zookeeper_zk1.host 参数以包含新的 IP 地址
- 在每个节点上运行以下命令,重启所有 Apigee 平台组件:
/opt/apigee/apigee-service/bin/apigee-all restart
更改 LDAP 服务器 (OpenLDAP) 的 IP 地址
如需更改 OpenLDAP 节点的 IP 地址,请执行以下操作:
- 在 Management Server 节点上,修改 /opt/apigee/customer/application/management-server.properties 文件。如果该文件不存在,请创建它。
- 在 management-server.properties 文件中,将 conf_security_ldap.server.host 参数设置为新的 IP 地址。
- 重启 Management Server:
> /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
更改其他 Apigee 节点类型的 IP 地址
如需更改以下任何节点类型(路由器、消息处理器、Postgres 服务器 [非 postgresql] 和 Qpid 服务器 [非 qpidd])的 IP 地址,请执行以下操作:
- 使用以下 cURL 命令注册新的内部和外部 IP 地址:
curl -u $ADMINEMAIL:$PW -X PUT http://$MSIP:8080/v1/servers/<uuid> -d ExternalIP=<ip>
curl -u $ADMINEMAIL:$PW -X PUT http://$MSIP:8080/v1/servers/<uuid> -d InternalIP=<ip>
其中,uuid 是节点的 UUID。
如果您不知道节点的 UUID,可以使用以下命令显示它:
- 路由器:curl http://<router_IP>:8081/v1/servers/self
- 消息处理器: curl http://<mp_IP>:8082/v1/servers/self
- Qpid:curl http://<qp_IP>:8083/v1/servers/self
- Postgres:curl http://<pg_IP>:8084/v1/servers/self