將元件從某部機器移至另一個機器,可能會引發設定不符,但原因: 您就不會讓元件設定檔中的 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
」 受到修改的系統影響如果檔案不存在,請建立一個。 - 變更下列參數:
- 設定
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」,並指定與 執行這些步驟
- 重新啟動 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 如有必要,請一併修復 ZooKeeper (請參閱變更 ZooKeeper 節點的 IP 位址)。否則,請重新啟動每個 Apigee 平台元件,從管理伺服器開始。
適用對象 具有多個 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
確認已插入「\n」並使用相同的預設設定 記錄在上述步驟 3 中的
- 在修改的系統上重新啟動 Cassandra。
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- 針對其他所有節點,重複在步驟 3 和 4 所做的變更,通知節點這個節點在 Cassandra 環中的位置。此外,請按照步驟 1 的說明變更種子節點 IP。
- 逐一重新啟動剩餘的 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
- 在修改的節點上執行
nodetool repair
。請注意,這個程序可能需要一些時間,因此強烈建議您不要在 API 流量高峰時段執行上述操作。nodetool [-u username -pw password] -h localhost repair -pr
- 如有需要,請修復 ZooKeeper (請參閱「變更 ZooKeeper 節點的 IP 位址」),然後重新啟動每個 Apigee 平台元件,從管理伺服器開始。
更新資料儲存庫 註冊
- 使用
指令。記下「類型」以及「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 位址。所需指令
取決於變更節點的類型
- 針對 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
確認已插入「\n」且當中的項目順序也相同 每節點
- 使用以下指令尋找 ZooKeeper 組系的領導者 (取代
將 node 替換為 Zookeeper 機器的 IP 位址:
echo srvr | nc node 2181
輸出內容中的模式行應會顯示「leader」。
- 依序重新啟動其中一個 ZooKeeper
IP 位址已變更如有多個妥當者節點變更了 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 地址
- 將
- 在 Management Server 節點上編輯
/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 位址,請按照下列步驟操作:
- 在 Management Server 節點上編輯
/opt/apigee/customer/application/management-server.properties
檔案 檔案。如果檔案不存在,請建立一個。 - 在
management-server.properties
檔案中設定 要求新 IP 位址的conf_security_ldap.server.host
參數。 - 重新啟動管理伺服器:
/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」。