安装要求

硬件要求

您必须满足以下最低硬件要求,才能在生产级环境中实现高可用性基础架构。

以下视频提供了有关安装的简要规模调整指南:

对于安装拓扑中所述的所有安装方案,下表列出了安装组件的最低硬件要求。

在这些表格中,硬盘要求是操作系统所需的硬盘空间之外的额外要求。根据您的应用和网络流量,您的安装可能需要比下文列出的更多或更少的资源。

安装组件 RAM CPU 最低硬盘空间
Cassandra(独立) 16 GB 8 核 250 GB 本地存储空间,配备支持 2000 IOPS 的 SSD
同一机器上的 Cassandra/Zookeeper 16 GB 8 核 250 GB 本地存储空间,配备支持 2000 IOPS 的 SSD
消息处理器/路由器位于同一台机器上 16 GB 8 核 100 GB
消息处理器(独立) 16 GB 8 核 100 GB
路由器(独立) 8 GB 8 核 100 GB
分析 - 同一服务器上的 Postgres/Qpid 16GB* 8 核* 500GB - 1TB** 网络存储空间***,最好具有 SSD 后端,支持 1000 IOPS 或更高*
分析 - Postgres 主服务器或备用独立服务器 16GB* 8 核* 500GB - 1TB** 网络存储空间***,最好具有 SSD 后端,支持 1000 IOPS 或更高*
Analytics - Qpid(独立) 8 GB 4 核 30GB - 50GB 本地存储空间,配备 SSD

默认的 Qpid 队列大小为 1 GB,可以增加到 2 GB。如果需要更多容量,请添加额外的 Qpid 节点。

SymasLDAP/界面/管理服务器 8 GB 4 核 60 GB
界面/管理服务器 4GB 2 核 60 GB
SymasLDAP(独立) 4GB 2 核 60 GB

* 根据吞吐量调整 Postgres 系统要求:

  • 低于 250 TPS:可以考虑使用 8 GB、4 核的托管网络存储***,支持 1000 IOPS 或更高
  • 高于 250 TPS:16 GB、8 核、受管网络存储***,支持 1000 IOPS 或更高
  • 大于 1000 TPS:16GB、8 核、受管网络存储***,支持 2000 IOPS 或更高
  • 高于 2000 TPS:32GB、16 核、受管网络存储***,支持 2000 IOPS 或更高
  • 高于 4000 TPS:64GB、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
分析 - 同一服务器上的 Postgres/Qpid 16 GB 8 核 500 GB - 1 TB 网络存储空间,最好具有 SSD 后端,支持 1000 IOPS 或更高,或者使用上表中的规则。
分析 - 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。

Cassandra 网络带宽要求

Cassandra 使用 Gossip 协议与其他节点交换有关网络拓扑的信息。使用 Gossip 以及 Cassandra 的分布式特性(涉及与多个节点通信以执行读写操作)会导致通过网络传输大量数据。

Cassandra 要求每个节点至少有 1 Gbps 的网络带宽。对于生产安装,建议使用更高的带宽。

Cassandra 的最大或第 99 百分位延迟时间应低于 100 毫秒。

操作系统和第三方软件要求

这些安装说明和提供的安装文件已在支持的软件和支持的版本中列出的操作系统和第三方软件上经过测试。

前提条件:启用 EPEL 仓库

在继续安装之前,请确保已启用 EPEL(Extra Packages for Enterprise Linux)代码库。根据您的操作系统版本使用以下命令:

  • 对于 Red Hat/CentOS/Oracle 8.X
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo rpm -ivh epel-release-latest-8.noarch.rpm
  • 对于 Red Hat/CentOS/Oracle 9.X
    wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo rpm -ivh epel-release-latest-9.noarch.rpm

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.53.01.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”。如需了解详情,请参阅边缘配置文件参考文档

TCP Wrappers

TCP Wrappers 可以阻止某些端口的通信,并影响 SymasLDAP、Postgres 和 Cassandra 安装。在这些节点上,检查 /etc/hosts.allow/etc/hosts.deny,确保所需的 SymasLDAP、Postgres 和 Cassandra 端口没有端口限制。

iptables

验证是否没有 iptables 政策阻止节点之间在所需的边缘端口上建立连接。如有必要,您可以在安装期间使用以下命令停止 iptables:

sudo/etc/init.d/iptables stop

目录访问权限

下表列出了 Edge 节点上对 Edge 进程有特殊要求的目录:

服务 目录 说明
路由器 /etc/rc.d/init.d/functions

边缘路由器使用 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

Rocky 9.X 的语言区域配置

如果您使用的是 Rocky 9.X,请确保您的系统在系统级语言区域设置中配置了 LANG=en_US.utf8。如需配置此功能,请运行以下命令:

dnf -y -q install langpacks-en
localectl set-locale LANG=en_US.utf8
reboot

系统限制

确保您已在 Cassandra 和 Message Processor 节点上设置以下系统限制:

  • 在 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
  • 在消息处理器节点上,将 /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 v3.19 或更高版本。

如需查看当前版本,请执行以下操作:

yum info nss

如需更新 NSS,请执行以下操作:

yum update nss

如需了解详情,请参阅 RedHat 的这篇文章

使用 NSCD(名称服务缓存守护程序)时,停用 IPv6 上的 DNS 查找

如果您已安装并启用 NSCD(名称服务缓存守护程序),消息处理器将执行两次 DNS 查找:一次用于 IPv4,一次用于 IPv6。使用 NSCD 时,您应停用 IPv6 上的 DNS 查找。

如需停用 IPv6 上的 DNS 查找,请执行以下操作:

  1. 在每个消息处理器节点上,修改 /etc/nscd.conf
  2. 设置以下属性:
    enable-cache hosts no

在 RHEL 8 及更高版本上停用 IPv6

如果您要在 Google Cloud Platform 上安装 Edge,并且使用的是 RHEL 8 或更高版本,则必须在所有 Qpid 节点上停用 IPv6。

如需了解如何停用 IPv6,请参阅操作系统供应商提供的文档。例如,您可以在 Red Hat Enterprise Linux 文档中找到相关信息。

工具

安装程序在标准版本中使用以下 UNIX 工具(由 EL5 或 EL6 提供)。

awk

expr

libxslt

每分钟转数

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

dirname libibverbs pwd uname  
echo librdmacm Python    

时间同步

Apigee 建议您确保服务器时间保持同步。如果尚未配置,可以使用 ntpdate 实用程序或同等工具来验证服务器是否已同步时间。例如,您可以使用 yum install ntp 或等效命令来安装该实用程序。这对于复制 LDAP 设置特别有用。请注意,您应将服务器时区设置为 UTC。

防火墙和虚拟主机

在 IT 领域,virtual 一词通常会被过度使用,Apigee Edge for Private Cloud 部署和虚拟主机也是如此。为明确起见,特此说明,“virtual”一词主要有以下两种用法:

  • 虚拟机 (VM):不是必需的,但某些部署会使用虚拟机技术为其 Apigee 组件创建隔离的服务器。与物理主机一样,虚拟机主机也可以具有网络接口和防火墙。
  • 虚拟主机:与 Apache 虚拟主机类似的 Web 端点。

虚拟机中的路由器可以公开多个虚拟主机(只要这些虚拟主机在主机别名或接口端口方面互不相同)。

举个命名方面的例子,一台物理服务器 A 可能正在运行两个名为“VM1”和“VM2”的虚拟机。假设“VM1”公开了一个虚拟以太网接口,该接口在虚拟机内部命名为“eth0”,并由虚拟化机制或网络 DHCP 服务器分配了 IP 地址 111.111.111.111;然后假设 VM2 公开了一个也命名为“eth0”的虚拟以太网接口,并分配了 IP 地址 111.111.111.222

我们可能在两个虚拟机中的每个虚拟机中运行一个 Apigee 路由器。路由器会公开虚拟主机端点,如以下假设示例所示:

虚拟机 1 中的 Apigee 路由器在其 eth0 接口(具有某个特定 IP 地址)上公开了三个虚拟主机:api.mycompany.com:80api.mycompany.com:443test.mycompany.com:80

VM2 中的路由器公开 api.mycompany.com:80(与 VM1 公开的名称和端口相同)。

物理主机操作系统可能具有网络防火墙;如果有,则必须将该防火墙配置为传递发往虚拟化接口(111.111.111.111:{80, 443}111.111.111.222:80)上公开的端口的 TCP 流量。此外,每个虚拟机的操作系统都可能在其 eth0 接口上提供自己的防火墙,这些防火墙也必须允许端口 80 和 443 流量进行连接。

基本路径是将 API 调用路由到您可能已部署的不同 API 代理所涉及的第三个组成部分。如果 API 代理软件包具有不同的基本路径,则可以共享一个端点。例如,一个基本路径可以定义为 http://api.mycompany.com:80/,另一个可以定义为 http://api.mycompany.com:80/salesdemo

在这种情况下,您需要某种负载平衡器或流量导向器,用于在两个 IP 地址(VM1 上的 111.111.111.111 和 VM2 上的 111.111.111.222)之间拆分 http://api.mycompany.com:80/ 流量。此功能特定于您的特定安装,并由您的本地网络群组配置。

基本路径是在部署 API 时设置的。在上述示例中,您可以为组织 mycompany-org 部署两个 API(mycompanytestmycompany),其中虚拟主机具有 api.mycompany.com 的主机别名,并且端口设置为 80。如果您未在部署中声明基本路径,路由器就不知道将传入的请求发送到哪个 API。

不过,如果您部署的 API testmycompany 的基本网址为 /salesdemo,那么用户将使用 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 销售人员联系。