硬件要求
您必须满足以下最低硬件要求,才能在生产级环境中构建高可用性基础架构。
以下视频简要介绍了安装的大小调整指南:
对于安装拓扑中所述的所有安装场景,下表列出了安装组件的最低硬件要求。
在这些表格中,硬盘要求是指除操作系统所需的硬盘空间之外的硬盘空间。根据您的应用和网络流量,您的安装可能需要的资源可能比下方列出的更多或更少。
安装组件 | RAM | CPU | 硬盘最低要求 |
---|---|---|---|
Cassandra | 16 GB | 8 核 | 250GB 本地存储空间,配备支持 2000 IOPS 的 SSD |
同一台机器上的消息处理器/路由器 | 16 GB | 8 核 | 100 GB |
消息处理器(独立) | 16 GB | 8 核 | 100 GB |
路由器(独立) | 16 GB | 8 核 | 100 GB |
分析 - 同一服务器上的 Postgres/Qpid | 16GB* | 8 核* | 500GB - 1TB** 网络存储空间***,最好有 SSD 后端,支持 1,000 IOPS 或更高* |
分析 - Postgres 主服务器或备用服务器(独立) | 16GB* | 8 核* | 500GB - 1TB** 网络存储空间***,最好有 SSD 后端,支持 1,000 IOPS 或更高* |
分析 - Qpid 独立 | 8 GB | 4 核 | 30GB - 50GB 本地存储空间(含 SSD)
Qpid 队列的默认大小为 1 GB,可增加到 2 GB。如果您需要更多容量,请添加其他 Qpid 节点。 |
OpenLDAP/界面/管理服务器 | 8 GB | 4 核 | 60 GB |
界面/管理服务器 | 4GB | 2 核 | 60 GB |
OpenLDAP(独立) | 4GB | 2 核 | 60 GB |
* 根据吞吐量调整 Postgres 系统要求:
** Postgres 硬盘值基于 Edge 捕获的开箱即用分析。 如果您向分析数据添加自定义值,则应相应地增加这些值。您可以使用以下公式来估算所需的存储空间:
例如:
*** 建议为 Postgresql 数据库使用网络存储,因为:
|
此外,如果您想安装变现服务(不支持“一站式”安装),请参阅下方列出的硬件要求:
可用于创收的组件 | RAM | CPU | 硬盘 |
---|---|---|---|
管理服务器(包含创收服务) | 8 GB | 4 核 | 60 GB |
分析 - 同一服务器上的 Postgres/Qpid | 16 GB | 8 核 | 500GB - 1TB 的网络存储空间,最好是具有 SSD 后端,支持 1000 IOPS 或更高,或者使用上表中的规则。 |
分析 - 独立的 Postgres 主服务器或备用服务器 | 16 GB | 8 核 | 500GB - 1TB 的网络存储空间,最好是具有 SSD 后端,支持 1000 IOPS 或更高,或者使用上表中的规则。 |
分析 - Qpid 独立 | 8 GB | 4 核 | 40GB - 500GB 本地存储空间,配备 SSD 或高速 HDD
对于大于 250 TPS 的安装,建议使用支持 1, 000 IOPS 的本地存储空间的 HDD。 |
Cassandra 网络带宽要求
Cassandra 使用 Gossip 协议与其他节点交换有关网络拓扑的信息。使用 Gossip 以及 Cassandra 的分布式特性(涉及与多个节点通信以执行读写操作)会导致通过网络传输大量数据。
Cassandra 要求每个节点至少有 1 Gbps 的网络带宽。对于生产安装,建议使用更高的带宽。
Cassandra 的最大或第 99 百分位延迟时间应低于 100 毫秒。
操作系统和第三方软件要求
这些安装说明和提供的安装文件已在支持的软件和支持的版本中列出的操作系统和第三方软件上进行了测试。
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
。
从 /opt/apigee 创建符号链接
在创建符号链接之前,您必须先创建一个名为“apigee”的用户和组。这是 Edge 安装程序创建的同一组和用户。
如需创建符号链接,请先执行以下步骤,然后再下载 bootstrap_4.52.02.sh 文件。 您必须以 root 用户身份执行以下所有步骤:
- 创建“apigee”用户和群组:
groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
- 从
/opt/apigee
创建指向所需安装根目录的符号链接:ln -Ts /srv/myInstallDir /opt/apigee
其中,/srv/myInstallDir 是 Edge 文件的目标位置。
- 将安装根目录和符号链接的所有权更改为“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 封装容器
TCP 封装容器可能会阻止某些端口的通信,并可能会影响 OpenLDAP、Postgres 和 Cassandra 安装。在这些节点上,检查 /etc/hosts.allow
和 /etc/hosts.deny
,确保所需的 OpenLDAP、Postgres 和 Cassandra 端口没有端口限制。
iptables
验证是否没有 iptables 政策阻止所需边缘端口上的节点之间建立连接。如有必要,您可以在安装过程中使用以下命令停止 iptables:
sudo/etc/init.d/iptables stop
在 CentOS 7.x 上:
systemctl stop firewalld
目录访问权限
下表列出了 Edge 节点上受 Edge 进程特殊要求约束的目录:
服务 | 目录 | 说明 |
---|---|---|
路由器 | /etc/rc.d/init.d/functions |
Edge Router 使用 Nginx 路由器,并且需要对 如果您的安全流程要求您为 您可以将权限设置为 744,以允许对 |
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
如需设置这些值,请执行以下操作:
- 修改 postgresql.properties 文件:
vi /opt/apigee/customer/application/postgresql.properties
如果该文件不存在,请创建一个。
- 设置上述属性。
- 保存修改内容。
- 重启 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
- 在消息处理器节点上,将
/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(名称服务缓存守护程序)时,停用 IPv6 上的 DNS 查找
如果您已安装并启用 NSCD(名称服务缓存守护程序),则消息处理程序会进行两次 DNS 查询:一次针对 IPv4,一次针对 IPv6。使用 NSCD 时,您应停用 IPv6 上的 DNS 查找。
如需停用 IPv6 上的 DNS 查找,请执行以下操作:
- 在每个消息处理器节点上,修改
/etc/nscd.conf
- 设置以下属性:
enable-cache hosts no
在 Google Cloud Platform 上停用 IPv6(适用于 RedHat/CentOS 7)
如果您要在 Google Cloud 平台上 RedHat 7 或 CentOS 7 上安装 Edge,则必须在所有 Qpid 节点上停用 IPv6。
如需了解如何停用 IPv6,请参阅您所用特定操作系统版本的 RedHat 或 CentOS 文档。例如,您可以:
- 在编辑器中打开
/etc/hosts
。 - 在以下行的第一列中插入“#”字符,以将其注释掉:
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 保存文件。
AWS AMI
如果您要在适用于 Red Hat Enterprise Linux 7.x 的 AWS Amazon 机器映像 (AMI) 上安装 Edge,则必须先运行以下命令:
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
工具
安装程序在标准版本中使用 EL5 或 EL6 提供的以下 UNIX 工具。
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 |
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 复制。
防火墙和虚拟主机
在 IT 领域,virtual
这个术语通常会被过度使用,适用于私有云的 Apigee Edge 部署和虚拟主机也是如此。需要说明的是,virtual
一词有两种主要用法:
- 虚拟机 (VM):不是必需的,但某些部署会使用虚拟机技术为其 Apigee 组件创建隔离的服务器。与物理主机一样,虚拟机主机可以有网络接口和防火墙。
- 虚拟主机:Web 端点,类似于 Apache 虚拟主机。
虚拟机中的路由器可以公开多个虚拟主机(只要它们的主机别名或接口端口不同即可)。
举个命名示例,单个物理服务器 A
可能运行两个虚拟机,分别名为“VM1”和“VM2”。假设“VM1”公开了一个虚拟以太网接口,该接口在虚拟机内被命名为“eth0”,并由虚拟化机器或网络 DHCP 服务器分配了 IP 地址 111.111.111.111
;然后假设 VM2 公开了一个也命名为“eth0”的虚拟以太网接口,并为其分配了 IP 地址 111.111.111.222
。
我们可能会在两个虚拟机中各运行一个 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 流量。此外,每个虚拟机的操作系统都可能会在其 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(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 销售团队联系。