安裝需求

硬體需求

在正式環境中,高可用性基礎架構必須符合下列最低硬體需求。

以下影片提供安裝作業的概略規模指南:

針對「安裝拓撲」中描述的所有安裝情境,下表列出安裝元件的最低硬體需求。

在這些表格中,硬碟需求是指作業系統所需磁碟空間以外的空間。視應用程式和網路流量而定,安裝作業所需的資源可能多於或少於下列數量。

安裝元件 RAM CPU 硬碟最低需求
Cassandra 16 GB 8 核心 250 GB 本機儲存空間,SSD 支援 2000 IOPS
訊息處理器/路由器位於同一部機器 16 GB 8 核心 100 GB
訊息處理器 (獨立) 16 GB 8 核心 100 GB
路由器 (獨立式) 16 GB 8 核心 100 GB
Analytics - Postgres/Qpid 位於同一伺服器 16GB* 8 核心* 500 GB 至 1 TB** 網路儲存空間***,最好採用 SSD 後端,支援 1000 IOPS 以上*
Analytics - Postgres 主要或待命 (獨立) 16GB* 8 核心* 500 GB 至 1 TB** 網路儲存空間***,最好採用 SSD 後端,支援 1000 IOPS 以上*
Analytics - Qpid 獨立式 16 GB 8 核心 30 GB 至 50 GB 的本機儲存空間 (SSD)

Qpid 佇列大小預設為 1 GB,最多可增加至 2 GB。如需更多容量,請新增其他 Qpid 節點。

OpenLDAP/UI/管理伺服器 8 GB 4 核心 60 GB
UI/管理伺服器 4 GB 2 核心 60 GB
OpenLDAP (獨立) 4 GB 2 核心 60 GB

* 根據處理量調整 Postgres 系統需求:

  • 低於 250 TPS:可考慮使用 8 GB、4 核心,搭配支援 1000 IOPS 以上的代管網路儲存空間***
  • 超過 250 TPS:16 GB、8 核心、代管網路儲存空間***,支援 1000 IOPS 以上
  • 超過 1000 TPS:16 GB、8 核心、代管網路儲存空間***,支援 2000 IOPS 以上
  • 超過 2000 TPS:32 GB、16 核心、代管網路儲存空間***,支援 2000 IOPS 以上
  • 超過 4000 TPS:64 GB、32 核心、支援 4000 IOPS 以上的代管網路儲存空間***

** Postgres 硬碟值是根據 Edge 擷取的現成數據分析計算得出。 如果您在數據分析資料中加入自訂值,則應相應增加這些值。請使用下列公式估算所需儲存空間:

bytes of storage needed =

  (# bytes of analytics data/request) *

  (requests/second) *

  (seconds/hour) *

  (hours of peak usage/day) *

  (days/month) *

  (months of data retention)

例如:

(2K bytes) * (100 req/sec) * (3600 secs/hr) * (18 peak hours/day) * (30 days/month) * (3 months retention)

= 1,194,393,600,000 bytes or 1194.4 GB of storage needed

*** 建議將網路儲存空間用於 Postgresql 資料庫,原因如下:

  • 可讓您視需要動態擴充儲存空間大小。
  • 在現今大多數的環境/儲存空間/網路子系統中,網路 IOPS 都能即時調整。
  • 您可以啟用儲存空間層級快照,做為備份和復原解決方案的一部分。

此外,如要安裝營利服務 (不支援多合一安裝),請參閱下列硬體需求:

具備營利功能的元件 RAM CPU 硬碟
管理伺服器 (含營利服務) 8 GB 4 核心 60 GB
Analytics - Postgres/Qpid 位於同一伺服器 16 GB 8 核心 500 GB 至 1 TB 的網路儲存空間,最好採用 SSD 後端,支援 1000 IOPS 以上,或使用上表中的規則。
Analytics - Postgres 主要或待命獨立 16 GB 8 核心 500 GB 至 1 TB 的網路儲存空間,最好採用 SSD 後端,支援 1000 IOPS 以上,或使用上表中的規則。
Analytics - Qpid 獨立式 8 GB 4 核心 40 GB 至 500 GB 的本機儲存空間,配備 SSD 或快速 HDD

如果安裝作業超過 250 TPS,建議使用本機儲存空間支援 1000 IOPS 的 HDD。

作業系統和第三方軟體需求

這些安裝操作說明和提供的安裝檔案,已在「支援的軟體和支援的版本」中列出的作業系統和第三方軟體上測試過。

Java

安裝前,每部機器都必須安裝支援的 Java 1.8 版本。支援的 JDK 列於「支援的軟體和支援的版本」。

確認 JAVA_HOME 環境變數指向執行安裝作業的使用者 JDK 根目錄。

SELinux

視 SELinux 的設定而定,Edge 可能會在安裝及啟動 Edge 元件時發生問題。如有需要,您可以在安裝期間停用 SELinux 或將其設為寬鬆模式,並在安裝後重新啟用。詳情請參閱「安裝 Edge apigee-setup 公用程式」。

建立「apigee」使用者

安裝程序會建立名為「apigee」的 Unix 系統使用者。Edge 目錄和檔案由「apigee」擁有,Edge 程序也是如此。也就是說,Edge 元件會以「apigee」使用者的身分執行。如有需要,您可以以其他使用者身分執行元件。

安裝目錄

根據預設,安裝程式會將所有檔案寫入 /opt/apigee 目錄。您無法變更這個目錄位置。雖然您無法變更這個目錄,但可以建立符號連結,將 /opt/apigee 對應至其他位置,如「從 /opt/apigee 建立符號連結」一節所述。

在本指南的操作說明中,安裝目錄會標示為 /opt/apigee。

建立符號連結前,必須先建立名為「apigee」的使用者和群組。這與 Edge 安裝程式建立的群組和使用者相同。

如要建立符號連結,請在下載 bootstrap_4.50.00.sh 檔案前,先執行下列步驟。 您必須以 root 身分執行下列所有步驟:

  1. 建立「apigee」使用者和群組:
    groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
  2. 從 /opt/apigee 建立符號連結至所需的安裝根目錄:
    ln -Ts /srv/myInstallDir /opt/apigee

    其中 /srv/myInstallDir 是 Edge 檔案的所需位置。

  3. 將安裝根目錄和符號連結的擁有權變更為「apigee」使用者:
    chown -h apigee:apigee /srv/myInstallDir /opt/apigee

聯播網設定

Apigee 建議您在安裝前檢查網路設定。安裝程式會假設所有機器都有固定的 IP 位址。使用下列指令驗證設定:

  • hostname 會傳回機器名稱
  • hostname -i 會傳回可從其他機器定址的主機名稱 IP 位址。

視作業系統類型和版本而定,如果主機名稱設定不正確,您可能需要編輯 /etc/hosts 和 /etc/sysconfig/network。詳情請參閱特定作業系統的說明文件。

如果伺服器有多張介面卡,「hostname -i」指令會傳回以空格分隔的 IP 位址清單。根據預設,Edge 安裝程式會使用傳回的第一個 IP 位址,但這不一定適用於所有情況。或者,您也可以在安裝設定檔中設定下列屬性:

ENABLE_DYNAMIC_HOSTIP=y

將該屬性設為「y」後,安裝程式會提示您選取要在安裝過程中使用的 IP 位址。預設值為「n」。詳情請參閱「Edge 設定檔參考資料」。

TCP Wrapper

TCP 包裝函式可能會封鎖部分通訊埠的通訊,並影響 OpenLDAP、Postgres 和 Cassandra 的安裝。在這些節點上,請檢查 /etc/hosts.allow 和 /etc/hosts.deny,確保必要的 OpenLDAP、Postgres 和 Cassandra 通訊埠沒有任何通訊埠限制。

iptables

確認沒有任何 iptables 政策會阻止必要 Edge 通訊埠上的節點之間連線。如有需要,您可以在安裝期間使用下列指令停止 iptables:

sudo/etc/init.d/iptables stop

CentOS 7.x:

systemctl stop firewalld

目錄存取權

下表列出 Edge 節點上對 Edge 程序有特殊要求的目錄:

服務 目錄 說明
路由器 /etc/rc.d/init.d/functions

Edge 路由器使用 Nginx 路由器,且需要 /etc/rc.d/init.d/functions 的讀取權限。

如果安全性程序要求您設定 /etc/rc.d/init.d/functions 的權限,請勿將權限設為 700,否則路由器將無法啟動。

您可以將權限設為 744,允許讀取 /etc/rc.d/init.d/functions。

Zookeeper /dev/random Zookeeper 用戶端程式庫需要隨機號碼產生器 /dev/random 的讀取權限。如果 /dev/random 在讀取時遭到封鎖,Zookeeper 服務可能無法啟動。

Cassandra

所有 Cassandra 節點都必須連線至環。Cassandra 會將資料副本儲存在多個節點上,確保可靠性和容錯能力。每個 Edge 鍵空間的複製策略會決定放置副本的 Cassandra 節點。詳情請參閱「關於 Cassandra 複製係數和一致性層級」。

Cassandra 會根據可用記憶體自動調整 Java 堆積大小。詳情請參閱「調整 Java 資源」,瞭解如何因應效能降低或記憶體消耗量過高的情況。

安裝 Edge for Private Cloud 後,您可以檢查 /opt/apigee/apigee-cassandra/conf/cassandra.yaml 檔案,確認 Cassandra 設定正確。舉例來說,請確認 Edge for Private Cloud 安裝指令碼已設定下列屬性:

  • cluster_name
  • initial_token
  • partitioner
  • seeds
  • listen_address
  • rpc_address
  • snitch

PostgreSQL 資料庫

安裝 Edge 後,您可以根據系統可用的 RAM 量,調整下列 PostgreSQL 資料庫設定:

conf_postgresql_shared_buffers = 35% of RAM      # min 128kB
conf_postgresql_effective_cache_size = 45% of RAM
conf_postgresql_work_mem = 512MB       # min 64kB

如何設定這些值:

  1. 編輯 postgresql.properties 檔案:
    vi /opt/apigee/customer/application/postgresql.properties

    如果檔案不存在,請建立檔案。

  2. 設定上述屬性。
  3. 儲存編輯內容。
  4. 重新啟動 PostgreSQL 資料庫:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart

系統限制

請確認您已在 Cassandra 和訊息處理器節點上設定下列系統限制:

  • 在 Cassandra 節點上,為 /etc/security/limits.d/90-apigee-edge-limits.conf 中的安裝使用者 (預設為「apigee」) 設定軟性和硬性 memlock、nofile 和位址空間 (as) 限制,如下所示:
    apigee soft memlock unlimited
    apigee hard memlock unlimited
    apigee soft nofile 32768
    apigee hard nofile 65536
    apigee soft as unlimited
    apigee hard as unlimited
    apigee soft nproc 32768
    apigee hard nproc 65536

    詳情請參閱 Apache Cassandra 說明文件中的「建議的正式版設定」。

  • 在訊息處理器節點上,將 /etc/security/limits.d/90-apigee-edge-limits.conf 中開啟的檔案描述元數量上限設為 64K,如下所示:
    apigee soft nofile 32768
    apigee hard nofile 65536

    如有需要,您可以提高這項限制。例如,如果您同時開啟大量暫存檔案。

  • 如果在路由器或訊息處理器 system.log 中看到下列錯誤,表示檔案描述元限制可能設得太低:

    "java.io.IOException: Too many open files"

    您可以執行下列指令,查看使用者限制:

    # su - apigee
    $ ulimit -n
    100000
    

    如果將檔案描述元限制設為 100000 後,仍達到開啟檔案限制,請向 Apigee Edge 支援團隊提交支援單,進一步排解問題。

網路安全服務 (NSS)

網路安全服務 (NSS) 是一組程式庫,可支援開發具備安全防護功能的用戶端和伺服器應用程式。請確認您已安裝 NSS 3.19 以上版本。

如要查看目前的版本,請按照下列步驟操作:

yum info nss

如要更新 NSS,請按照下列步驟操作:

yum update nss

詳情請參閱 RedHat 的這篇文章。

使用 NSCD (名稱服務快取 Daemon) 時,停用 IPv6 的 DNS 查詢

如果您已安裝並啟用 NSCD (名稱服務快取 Daemon),訊息處理器會執行兩次 DNS 查詢:一次針對 IPv4,另一次針對 IPv6。使用 NSCD 時,請停用 IPv6 的 DNS 查詢。

如要停用 IPv6 的 DNS 查詢,請按照下列步驟操作:

  1. 在每個訊息處理器節點上,編輯 /etc/nscd.conf
  2. 設定下列屬性:
    enable-cache hosts no

在 Google Cloud Platform 停用 RedHat/CentOS 7 的 IPv6

如果您是在 Google Cloud Platform 上的 RedHat 7 或 CentOS 7 上安裝 Edge,則必須在所有 Qpid 節點上停用 IPv6。

請參閱特定 OS 版本的 RedHat 或 CentOS 說明文件,瞭解如何停用 IPv6。例如,您可以:

  1. 在編輯器中開啟 /etc/hosts。
  2. 在下一行的第一欄插入「#」字元,將其註解排除:
    #::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  3. 儲存檔案。

AWS AMI

如要在 Red Hat Enterprise Linux 7.x 的 AWS Amazon Machine Image (AMI) 上安裝 Edge,請先執行下列指令:

yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional

工具

安裝程式會使用 EL5 或 EL6 提供的標準版 UNIX 工具。

awk

expr

libxslt

rpm

unzip

basename

grep

lua-socket

rpm2cpio

useradd

bash

主機名稱

ls

sed

wc

bc

id

net-tools

sudo

wget

curl

libaio

perl (來自 procps)

tar

xerces-c

cyrus-sasl libdb4 pgrep (來自 procps) tr 好吃

日期

libdb-cxx

ps

uuid

chkconfig

目錄名稱 libibverbs pwd uname  
echo librdmacm python    

ntpdate

Apigee 建議您同步伺服器的時間。如果尚未設定,ntpdate 公用程式可用於此目的,驗證伺服器是否時間同步。您可以使用 yum install ntp 安裝公用程式。這項功能在複製 OpenLDAP 設定時特別實用。請注意,伺服器時區是以世界標準時間 (UTC) 設定。

openldap 2.4

地端部署安裝作業需要 OpenLDAP 2.4。如果伺服器有網際網路連線,Edge 安裝指令碼會下載並安裝 OpenLDAP。如果伺服器未連上網際網路連線,請務必先確認已安裝 OpenLDAP,再執行 Edge 安裝指令碼。在 RHEL/CentOS 上,您可以執行 yum install openldap-clients openldap-servers 來安裝 OpenLDAP。

如果是 13 主機安裝作業,以及具有兩個資料中心的 12 主機安裝作業,則必須執行 OpenLDAP 複製作業,因為有多個節點託管 OpenLDAP。

防火牆和虛擬主機

virtual 一詞在 IT 領域中經常超載,Apigee Edge for Private Cloud 部署作業和虛擬主機也是如此。virtual 一詞有兩種主要用途:

  • 虛擬機器 (VM):非必要,但部分部署作業會使用 VM 技術,為 Apigee 元件建立獨立伺服器。VM 主機與實體主機一樣,可以有網路介面和防火牆。
  • 虛擬主機:網路端點,類似於 Apache 虛擬主機。

VM 中的路由器可以公開多個虛擬主機 (只要主機別名或介面通訊埠不同即可)。

舉例來說,單一實體伺服器 A 可能會執行兩個 VM,分別名為「VM1」和「VM2」。假設「VM1」公開虛擬乙太網路介面,在 VM 內命名為「eth0」,並由虛擬化機制或網路 DHCP 伺服器指派 IP 位址 111.111.111.111;然後假設 VM2 公開虛擬乙太網路介面,也命名為「eth0」,並指派 IP 位址 111.111.111.222。

我們可能會在兩個 VM 中各執行一個 Apigee 路由器。路由器會公開虛擬主機端點,如下列假設範例所示:

VM1 中的 Apigee 路由器會在 eth0 介面 (具有特定 IP 位址) 上公開三個虛擬主機:api.mycompany.com:80、api.mycompany.com:443 和 test.mycompany.com:80。

VM2 中的路由器會公開 api.mycompany.com:80 (與 VM1 公開的名稱和通訊埠相同)。

實體主機的作業系統可能會有網路防火牆。如有,則必須設定該防火牆,以傳遞繫結至虛擬化介面 (111.111.111.111:{80, 443} 和 111.111.111.222:80) 上公開通訊埠的 TCP 流量。此外,每個 VM 的作業系統都可能在其 eth0 介面上提供自己的防火牆,而且這些防火牆也必須允許通訊埠 80 和 443 流量連線。

基本路徑是第三個元件,用於將 API 呼叫轉送至您可能已部署的不同 API Proxy。如果 API Proxy 繫結組合有不同的基本路徑,則可共用端點。舉例來說,一個基本路徑可以定義為 http://api.mycompany.com:80/,另一個則定義為 http://api.mycompany.com:80/salesdemo。

在這種情況下,您需要使用某種負載平衡器或流量導向器,將 http://api.mycompany.com:80/ 流量分配到兩個 IP 位址 (VM1 上的 111.111.111.111 和 VM2 上的 111.111.111.222)。這項功能僅適用於特定安裝作業,並由區域網路群組設定。

基本路徑是在部署 API 時設定。在上述範例中,您可以為組織 mycompany-org 部署兩個 API:mycompany 和 testmycompany,並使用主機別名為 api.mycompany.com、通訊埠設為 80 的虛擬主機。如未在部署作業中宣告基本路徑,路由器就無法判斷應將傳入要求傳送至哪個 API。

不過,如果您使用 /salesdemo 的基準網址部署 API testmycompany,使用者就會透過 http://api.mycompany.com:80/salesdemo 存取該 API。如果您使用 / 的基準網址部署 API mycompany,使用者就會透過 http://api.mycompany.com:80/ 網址存取 API。

授權

每次安裝 Edge 時,都必須使用從 Apigee 取得的專屬授權檔案。安裝管理伺服器時,您必須提供授權檔案的路徑,例如 /tmp/license.txt。

安裝程式會將授權檔案複製到 /opt/apigee/customer/conf/license.txt。

如果授權檔案有效,管理伺服器會驗證到期日和允許的訊息處理器 (MP) 數量。如果任何授權設定已過期,您可以在下列位置找到記錄:/opt/apigee/var/log/edge-management-server/logs。在這種情況下,您可以聯絡 Apigee Edge 支援團隊,瞭解遷移作業詳情。

如果尚未取得授權,請與 Apigee 銷售團隊聯絡。