如果您未同步元件設定檔中的 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 (請見下方),否則請重新啟動每個 Apigee 平台 從 Management Server 開始
適用對象 具有多個 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
- 在修改的節點上執行
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 平台元件。 就從管理伺服器開始
更新資料儲存庫註冊
- 使用
指令。記下「類型」以及「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
檔案中,將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」。