适用于私有云的 Edge v4.19.01
在以下情况下,将组件从一台机器移到另一台机器可能会导致配置不匹配: 您并未使组件配置文件中的 IP 地址保持同步。
本部分介绍了如何诊断和修复配置不匹配问题。
IP 地址与主机名
在组件配置文件中,您应使用 IP 地址,而不是主机名。
虽然有些组件配置文件允许您使用主机名 使用主机名会使问题排查变得更加复杂。例如,主机名 可能是 DNS 服务器连接、查找失败 同步。
因此,Apigee 强烈建议所有组件都使用 IP 地址 配置。在某些情况下(例如使用 Cassandra 时),您必须使用 IP 地址,而不能使用 主机名文档中的大多数示例都使用 IP 地址进行组件配置。
对于主机名和 IP 地址,请考虑以下情况的影响 迁移 Apigee 服务器所需的资源:
场景 | 对移动服务器的影响 |
---|---|
IP 地址变更 | 更新引用原始 IP 地址的所有相关文件 |
更改主机名,但不更改 IP 地址 | 无影响 |
IP 地址更改导致主机名更改 | 与 IP 地址更改相同 |
更改 Cassandra 节点的 IP 地址
如需更改 Cassandra 节点的 IP 地址,请执行以下步骤:
对于 具有单个 Cassandra 节点的配置
- 修改“
/opt/apigee/customer/application/cassandra.properties
” 更改。如果该文件不存在,请创建该文件。 - 更改以下参数:
<ph type="x-smartling-placeholder">
- </ph>
- 设置
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
请务必插入“\n”指定与上述 IP 地址相同的默认设置, 如上面第 3 步中所示。
- 重启 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 如有必要,还要修复 ZooKeeper(见下文),否则,请重启每个 Apigee 平台 组件。
对于 具有多个 Cassandra 节点(环)的配置
- 如果要更改的节点是种子节点,请修改
/opt/apigee/customer/application/cassandra.properties
文件,并将conf_cassandra_seeds
参数更改为包含 更改后的系统的新 IP。如果 cassandra.properties 文件不存在,请创建 。 - 修改“
/opt/apigee/customer/application/cassandra.properties
” 然后更改以下参数: <ph type="x-smartling-placeholder">- </ph>
- 将
conf_cassandra_listen_address
设置为使用新的 IP 地址。 - 将
conf_cassandra_rpc_address
设置为使用新的 IP 地址或“0.0.0.0” (可让 Cassandra Thrift 监听所有接口)。
- 将
- 打开“
/opt/apigee/apigee-cassandra/conf/cassandra-topology.properties
” 。您应该会在 表单: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
请务必插入“\n”并使用相同的默认设置 在上文第 3 步中记录。
- 在修改后的系统上重启 Cassandra。如果修改后的系统是种子节点,
重新启动每一个使用了修改的种子节点的系统。
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 在修改后的节点上运行
nodetool ring
命令,以确保环 。此实用程序可在以下位置找到:/opt/apigee/apigee-cassandra/bin
。nodetool [-u username -pw password] -h localhost ring
只有在以下情况下,您才需要传递用户名和密码: 为 Cassandra 启用了 JMX 身份验证。
- 在
nodetool repair
已修改的节点。请注意,此过程可能需要一些时间,因此强烈建议您 切勿在 API 流量高峰时段执行此操作。nodetool [-u username -pw password] -h localhost repair -pr
- 如有必要,请修复 ZooKeeper(见下文),然后重启每个 Apigee 平台组件, 从管理服务器开始
更新数据存储区 注册
- 使用
命令。记录“type”和“UUID”参数:
<ph type="x-smartling-placeholder">
- </ph>
-
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 地址。所需的命令将
取决于已更改节点的类型。
- 对于 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
。您应该会看到 形式如下: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
请务必插入“\n”并且条目会按照相同的顺序 每个节点。
- 使用以下命令查找 ZooKeeper 集成学习的领导者(将
将 node 替换为 ZooKeeper 机器的 IP 地址:
echo srvr | nc node 2181
输出中的 Mode 行应显示“leader”。
- 逐个重启 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 服务器的 IP 地址 (OpenLDAP)
如需更改 OpenLDAP 节点的 IP 地址,请执行以下操作:
- 在管理服务器节点上,修改文件
/opt/apigee/customer/application/management-server.properties
文件。如果该文件不存在,请创建该文件。 - 在
management-server.properties
文件中,设置 将conf_security_ldap.server.host
参数设置为新的 IP 地址。 - 重启管理服务器:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
更改其他 Apigee 节点的 IP 地址 类型
更改任意节点类型(路由器、消息处理器、Postgres)的 IP 地址 服务器(非 postgresql)和 Qpid 服务器(非 qpidd):
- 使用以下
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,请参阅获取 UUID。