移动 Apigee 服务器

如果您不使组件配置文件中的 IP 地址保持同步,将组件从一台机器移至另一台机器可能会导致配置不匹配

本部分介绍如何诊断和修复配置不匹配问题。

IP 地址与主机名

您应该在组件配置文件中使用 IP 地址,而不是主机名。

虽然某些组件配置文件允许您使用主机名而不是 IP 地址,但使用主机名可能会使问题排查变得复杂。例如,主机名可能会导致与 DNS 服务器连接、查找失败和同步相关的问题。

因此,Apigee 强烈建议您为所有组件配置使用 IP 地址。在某些情况下(例如使用 Cassandra 时),您必须使用 IP 地址,而不能使用主机名。文档中的大多数示例都使用 IP 地址进行组件配置。

对于主机名和 IP 地址,在迁移 Apigee 服务器时,请考虑以下情形的影响:

场景 对迁移服务器的影响
IP 地址发生变化 更新引用原始 IP 地址的所有相关文件
主机名更改,但 IP 地址未更改 无影响
IP 地址发生变化时主机名也随之变化 与更改 IP 地址相同

更改 Cassandra 节点的 IP 地址

如需更改 Cassandra 节点的 IP 地址,请执行以下步骤:

对于具有单个 Cassandra 节点的配置

  1. 修改正在修改的系统上的 /opt/apigee/customer/application/cassandra.properties。如果该文件不存在,请创建它。
  2. 更改以下参数:
    • 设置 conf_cassandra_seedsconf_cassandra_listen_address 参数,以指定系统的新 IP 地址。
    • conf_cassandra_rpc_address 更改为使用新 IP 地址或 0.0.0.0(允许 Cassandra Thrift 在所有接口上进行监听)。
  3. 在编辑器中打开 /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties。您应该会看到旧 IP 地址和默认设置,如下所示:
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1

    保存该信息。

  4. 修改 /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 步中找到的相同的默认设置。

  5. 重启 Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 如有必要,还需修复 ZooKeeper(请参阅更改 ZooKeeper 节点的 IP 地址)。否则,请重新启动所有 Apigee 平台组件,从管理服务器开始。

对于具有多个 Cassandra 节点(环)的配置

  1. 如果更改的节点是种子节点,请在环中的每个系统上修改 /opt/apigee/customer/application/cassandra.properties 文件,并将 conf_cassandra_seeds 参数更改为包含修改后的系统的新 IP。如果 cassandra.properties 文件不存在,请创建该文件。
  2. 修改正在修改的系统上的 /opt/apigee/customer/application/cassandra.properties,并更改以下参数:
    • conf_cassandra_listen_address 设置为使用新的 IP 地址。
    • conf_cassandra_rpc_address 设置为使用新 IP 地址或“0.0.0.0”(允许 Cassandra Thrift 监听所有接口)。
  3. 在编辑器中打开 /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

    保存该信息。

  4. 修改 /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 步中记录的相同的默认设置。

  5. 在修改后的系统上重启 Cassandra。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. 对于所有其他节点,请重复步骤 3 和 4 中所做的更改,以告知它们此节点在 Cassandra 环中的位置。此外,请按照第 1 步中的说明更改种子节点 IP。
  7. 逐个重启其余的每个 Cassandra 节点。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  8. 在修改后的节点上运行 nodetool ring 命令,以确保环已完成。您可以在 /opt/apigee/apigee-cassandra/bin 中找到该实用程序。
    nodetool [-u username -pw password] -h localhost ring
  9. 在修改后的节点上运行 nodetool repair。请注意,此过程可能需要一些时间,因此强烈建议您不要在 API 流量高峰时段执行此操作。
    nodetool [-u username -pw password] -h localhost repair -pr
  10. 如有必要,请修复 ZooKeeper(请参阅更改 ZooKeeper 节点的 IP 地址),然后重启每个 Apigee 平台组件,从管理服务器开始。

更新数据存储区注册信息

  1. 使用以下命令查找指定旧 IP 地址的数据存储区注册的 UUID。记下“type”和“UUID”参数:
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=central&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=gateway&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=analytics&region=DC" | egrep -i '[type|internalip|uuid|region]'

      其中,DC 是数据中心名称。在单个数据中心安装中,该值通常为“dc-1”。

  2. 使用以下命令之一注册新 IP 地址。所需的命令将取决于更改的节点类型。
    • 对于 type="application-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=application-datastore&Type=audit-datastore&InternalIP=NEWIP&region=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&region=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&region=REGION&pod=analytics" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST 
  3. 删除 IP 地址发生更改的系统上 UUID 的旧注册信息。对于每个此类 UUID 问题:
    curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE

更改 ZooKeeper 节点的 IP 地址

如需更改 ZooKeeper 节点的 IP 地址,请按以下步骤操作:

更改 IP 地址并重启 ZooKeeper 集群(仅适用于多节点集群配置)

  1. 在编辑器中打开 /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

    保存该信息。

  2. 在每个 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”,并且每个节点上的条目顺序相同。

  3. 使用以下命令查找 ZooKeeper 集群的领导者(将 node 替换为 ZooKeeper 机器的 IP 地址):
    echo srvr | nc node 2181

    输出中的“模式”行应显示“leader”。

  4. 依次重启 ZooKeeper,先重启领导者,最后重启 IP 地址已更改的节点。如果多个 Zookeeper 节点更改了 IP 地址,可能需要重启所有节点。
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. 使用上述 echo 命令验证每个 ZooKeeper 节点。

将更改后的配置告知 Apigee 节点

  1. 在每个路由器节点上,按如下方式修改文件 /opt/apigee/customer/application/router.properties。如果该文件不存在,则创建该文件。
    • 更改 conf_zookeeper_connection.string 参数以包含新的 IP 地址
    • 更改 conf_zookeeper_zk1.host 参数以包含新的 IP 地址
  2. 在每个消息处理器节点上,按如下方式修改文件 /opt/apigee/customer/application/message-processor.properties。如果该文件不存在,则创建该文件。
    • 更改 conf_zookeeper_connection.string 参数以包含新的 IP 地址
    • 更改 conf_zookeeper_zk1.host 参数以包含新的 IP 地址
  3. 在管理服务器节点上,按如下方式修改文件 /opt/apigee/customer/application/management-server.properties。如果该文件不存在,则创建该文件。
    • 更改 conf_zookeeper_connection.string 参数以包含新的 IP 地址
    • 更改 conf_zookeeper_zk1.host 参数以包含新的 IP 地址
  4. 在每个节点上运行以下命令,以重启所有 Apigee 平台组件:
    /opt/apigee/apigee-service/bin/apigee-all restart

更改 LDAP 服务器 (SymasLDAP) 的 IP 地址

如需更改 SymasLDAP 节点的 IP 地址,请执行以下操作:

  1. 在管理服务器节点上,修改 /opt/apigee/customer/application/management-server.properties 文件。如果该文件不存在,请创建它。
  2. management-server.properties 文件中,将 conf_security_ldap.server.host 参数设置为新的 IP 地址。
  3. 重启管理服务器:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

更改其他 Apigee 节点类型的 IP 地址

如需更改任何这些节点类型(路由器、消息处理器、Postgres 服务器 [而非 postgresql] 和 Qpid 服务器 [而非 qpidd])的 IP 地址,请执行以下操作:

  1. 使用以下 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