遷移 Apigee 伺服器

私有雲 v4.19.01 的邊緣

如果您沒有讓元件設定檔中的 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 位址變更為新的 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 (請見下方說明),則請重新啟動每個 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 位址變更為新的 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. 在修改後的節點上執行 nodetool ring 指令,確認環已完成。這個公用程式位於 /opt/apigee/apigee-cassandra/bin
    nodetool [-u username -pw password] -h localhost ring

    只有在為 Cassandra 啟用 JMX 驗證時,才需要傳送使用者名稱和密碼。

  7. 在已修改的節點上執行 nodetool repair。請注意,這項程序可能需要一點時間才能完成,因此強烈建議您不要在 API 流量高峰時段執行這項操作。
    nodetool [-u username -pw password] -h localhost repair -pr
  8. 如有需要,請修復 ZooKeeper (請見下方說明),然後重新啟動每個 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. 由領導者開始,並以變更 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 伺服器 (OpenLDAP) 的 IP 位址

如要變更 OpenLDAP 節點的 IP 位址,請按照下列步驟操作:

  1. 在 Management Server 節點上,編輯 /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 伺服器) 的 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