如果沒有讓元件設定檔中的 IP 位址保持同步,將元件從一部機器移到另一部機器可能會導致設定不符。
本節說明如何診斷及修正設定不符的問題。
IP 位址與主機名稱
您應在元件設定檔中使用 IP 位址,而非主機名稱。
雖然部分元件設定檔允許使用主機名稱 (而非 IP 位址),但使用主機名稱可能會使疑難排解作業變得複雜。舉例來說,主機名稱可能會導致 DNS 伺服器連線、查詢失敗和同步處理等問題。
因此,Apigee 強烈建議您為所有元件設定使用 IP 位址。在某些情況下 (例如使用 Cassandra 時),您必須使用 IP 位址,不得使用主機名稱。說明文件中的大多數範例都會使用 IP 位址進行元件設定。
遷移 Apigee 伺服器時,請考量下列情境對主機名稱和 IP 位址的影響:
情境 | 對伺服器遷移的影響 |
---|---|
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
請務必在 IP 位址後插入「\n」,並指定與步驟 3 中相同的預設設定。
- 重新啟動 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
請務必在每個 IP 位址後插入「\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 平台元件,從管理伺服器開始。
更新資料儲存庫註冊
- 使用下列指令,找出指定舊 IP 位址的資料存放區註冊 UUID。請記下「type」和「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
請務必在每個 IP 位址後插入「\n」,並確保每個節點上的項目順序相同。
- 使用下列指令找出 ZooKeeper 集群的領導者 (將 node 替換為 Zookeeper 機器的 IP 位址):
echo srvr | nc node 2181
輸出內容中的「Mode」行應顯示「leader」。
- 依序重新啟動 ZooKeeper,先從領導者開始,最後是 IP 位址變更的節點。如果有多個 Zookeeper 節點變更 IP 位址,可能需要重新啟動所有節點。
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
- 使用上述
echo
指令驗證每個 ZooKeeper 節點。
將變更後的設定通知 Apigee 節點
- 在每個 Router 節點上,按照下列方式編輯
/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 位址
- 變更
- 在管理伺服器節點上,按照下列方式編輯
/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 位址 (SymasLDAP)
如要變更 SymasLDAP 節點的 IP 位址,請按照下列步驟操作:
- 在管理伺服器節點上,編輯
/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 伺服器 (非 postgresql) 和 Qpid 伺服器 (非 qpidd)) 的 IP 位址,請按照下列步驟操作:
- 使用下列
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」。