遷移 Apigee 伺服器

Edge for Private Cloud 4.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_seeds 和 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。您應該會在表單中看到舊 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 (請參閱下文),否則請重新啟動每個 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. 在修改後的節點上執行 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

    輸出內容中的「Mode」行應顯示「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 伺服器的 IP 位址 (OpenLDAP)

如要變更 OpenLDAP 節點的 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 位址

如要變更下列任一節點類型的 IP 位址 (路由器、訊息處理器、Postgres 伺服器 (非 postgresql) 和 Qpid 伺服器 (非 qpidd):

  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」。