适用于私有云的 Edge v. 4.16.05
硬件要求
您必须满足以下最低硬件要求,才能获得高可用性 部署在生产级环境中的基础架构。对于安装拓扑中介绍的所有安装场景,下表列出了安装组件的最低硬件要求。
在以下表格中,除了要用到的磁盘可用空间之外, 操作系统根据您的应用和网络流量,您的安装可能需要的资源可能比下方列出的更多或更少。
安装组件 |
RAM |
CPU |
最小硬盘容量 |
---|---|---|---|
Cassandra |
16 GB |
8 核 |
250GB 本地存储空间(含 SSD)或支持 2000 IOPS 的快速 HDD |
同一机器上有消息处理器/路由器 |
8/16GB |
4 核† |
100GB |
Google Analytics- 将 Postgres/Qpid 置于同一服务器上(不建议用于生产) |
16GB* |
8 核* |
500GB - 1TB** 网络存储空间***,最好使用 SSD 后端,支持 1000 IOPS 或更高*。 |
Google Analytics- Postgres 独立式 |
16GB* |
8 核* |
500GB - 1TB** 网络存储空间***,最好使用 SSD 后端; 支持 1000 IOPS 或更高*。 |
Google Analytics- Qpid 独立式 |
8 GB |
4 核 |
30GB - 50GB 本地存储空间,配备 SSD 或高速 HDD 如果安装时间超过 250 TPS,本地存储支持 1000 IOPS 的 HDD 建议。 |
其他(OpenLDAP、界面、管理服务器) |
4GB |
2 核 |
60 GB |
† 根据吞吐量调整消息处理器系统要求: 为高吞吐量系统,最小建议为 4 核和 8 核。 您可以运行性能测试来确定 API 的最佳大小。 |
|||
*根据吞吐量调整 Postgres 系统要求:
|
|||
**Postgres 硬盘值基于 Edge 捕获的开箱即用分析。如果您向分析数据添加自定义值,则应相应地增加这些值。使用以下公式估算所需存储空间: |
|||
*** 建议为 Postgresql 数据库使用 Network Storage,因为:
|
此外,下面还列出了要安装 变现服务:
具有创收功能的组件 |
RAM |
CPU |
硬盘 |
---|---|---|---|
管理服务器(含变现服务) |
8 GB |
4 核 |
60 GB |
Google Analytics- 同一服务器上的 Postgres/Qpid |
16 GB |
8 核 |
500GB - 1TB 网络存储空间,最好带 SSD 后端,支持 1000 IOPS 或 或使用上表中的规则。 |
Google Analytics- Postgres 独立式 |
16 GB |
8 核 |
500GB - 1TB 网络存储空间,最好带 SSD 后端,支持 1000 IOPS 或 或使用上表中的规则。 |
Google Analytics- Qpid 独立式 |
8 GB |
4 核 |
40GB |
下面列出了要安装 API BaaS 的硬件要求:
API BaaS 组件 |
RAM |
CPU |
硬盘 |
---|---|---|---|
ElasticSearch* |
8 GB |
4 核 |
60 - 80GB |
API BaaS 堆栈 * |
8 GB |
4 核 |
60 - 80GB |
API BaaS 门户 |
1GB |
2 核 |
20GB |
Cassandra(可选 - 通常您针对这两个 Edge 使用同一 Cassandra 集群 和 API BaaS 服务) |
16 GB |
8 核 |
250GB 本地存储空间(含 SSD)或支持 2000 IOPS 的快速 HDD |
* 您可以在同一节点上安装 ElasticSearch 和 API BaaS Stack。如果您要使用 Elasticsearch,请将其配置为使用 4GB 内存(默认)。如果 ElasticSearch 已安装到 然后使用 6GB 内存。 |
注意:
- 如果根文件系统不够大,无法进行安装,建议您 将数据放在更大的磁盘上
- 如果机器上安装的是适用于私有云的旧版 Apigee Edge,请确保 在新安装前删除文件夹 /tmp/java。
- 系统级临时文件夹 /tmp 需要有执行权限, 启动 Cassandra。
- 如果在安装之前创建了用户“apigee”,请确保“/home/apigee”作为主目录存在且归“apigee:apigee”所有。
操作系统和第三方 软件要求
这些安装说明和提供的安装文件已在下方列出的操作系统和第三方软件上进行了测试:https://apigee.com/docs/api-services/reference/supported-software。
创建 apigee 用户
安装过程会创建一个名为“apigee”的 Unix 系统用户。边缘目录和 “apigee”拥有的文件和 Edge 进程均拥有。这意味着 Edge 组件会以“apigee”用户身份运行。如有必要,您可以以其他用户身份运行组件。请参阅“绑定路由器” 安全端口”请参阅在 node。
安装目录
默认情况下,安装程序会将所有文件写入 /opt/apigee 目录。您无法更改此设置 目录位置。
在本指南的说明中,安装目录标注为 /<inst_root>/apigee,其中 /<inst_root>/apigee 默认为 /<inst_root>/apigee。
Java
您需要在安装前在每台计算机上安装受支持的 Java1.8 版本。 下面列出了支持的 JDK:
https://apigee.com/docs/api-services/reference/supported-software
确保 JAVA_HOME 指向 到执行安装的用户的 JDK 的根目录。
网络设置
建议您在安装前检查网络设置。安装程序希望所有计算机都具有固定 IP 地址。使用以下命令验证 设置:
- hostname:返回名称 机器的
- hostname -i 会返回主机名的 IP 地址,该地址可从其他机器访问。
根据您的操作系统类型和版本,您可能必须修改 /etc/hosts 和 /etc/sysconfig/network(如果主机名不是 设置正确。如需了解详情,请参阅具体操作系统的文档。
卡桑德拉
所有 Cassandra 节点都必须连接到一个环。
Cassandra 会根据可用内存自动调整其 Java 堆大小。如需了解详情, 请参阅调整 Java 资源。在性能下降或内存消耗较高时。
安装适用于私有云的 Edge 后,您可以检查 Cassandra 是否已配置 正确做法是检查 /<inst_root>/apigee/apigee-cassandra/conf/cassandra.yaml 文件。例如,确保适用于私有云的 Edge 安装脚本设置了以下 属性:
- cluster_name
- initial_token
- 分区
- 种子
- listen_address
- rpc_address
- 告密
警告:请勿修改此文件。
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 /<inst_root>/apigee/customer/application/postgresql.properties
如果该文件不存在,请创建该文件。 - 设置上面列出的属性。
- 保存修改内容。
- 重启 PostgreSQL 数据库:
> /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql 重启
jsvc
“jsvc”是使用 API BaaS 的前提条件。安装 API BaaS 时,系统会安装版本 1.0.15-dev。
网络安全服务 (NSS)
网络威胁防护服务 (NSS) 是一组库,支持开发 启用了安全功能的客户端和服务器应用。您应该确保已安装 NSS v3.19 或更高版本。
如需查看当前版本,请按以下步骤操作:
> yum info nss
如需更新 NSS,请执行以下操作:
> yum update nss
请参阅 RedHat 的这篇文章 。
AWS AMI
如果要在适用于 Red Hat Enterprise Linux 的 AWS Amazon 机器映像 (AMI) 上安装 Edge 您必须先运行以下命令:
> yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
工具
安装程序在 EL5 提供的标准版中使用以下 UNIX 工具,或者 EL6。
awk |
dirname |
ls |
每分钟转数 |
unzip |
基名 |
echo |
perl |
rpm2cpio |
useradd |
bash |
expr |
pgrep(来自 procps) |
sed |
wc |
bc |
grep |
ps |
tar |
美味 |
curl |
主机名 |
pwd |
tr |
chkconfig |
日期 |
id |
Python |
uname |
sudo |
注意:
- 工具“useradd”的可执行文件位于 /usr/sbin,chkconfig 的可执行文件位于 /sbin。
- 通过 sudo 访问权限,您可以获取调用用户的环境的访问权限,例如, 通常,您会调用“sudo <command>”或 “sudo PATH=$PATH:/usr/sbin:/sbin <command>”。
- 确保您已先安装“补丁”工具,然后再安装服务软件包(补丁) 安装。
ntpdate - 建议对服务器进行时间同步。如果 则“ntpdate”实用程序可以用于这一目的, 服务器是否进行时间同步。您可以使用“yum install ntp”来安装 实用程序。这在复制 OpenLDAP 设置时特别有用。请注意,您设置了 时区。
openldap 2.4 - 本地安装需要 OpenLDAP 2.4。如果 您的服务器已连接到互联网,然后会下载并安装 Edge 安装脚本 OpenLDAP.如果您的服务器未连接到互联网,请务必确保 OpenLDAP 已 。在 RHEL/CentOS 上,你可以 “yum install openldap-clients openldap-servers"安装 OpenLDAP。
对于 13 个主机的安装和具有 2 个数据中心的 12 个主机的安装,您需要 OpenLDAP 复制,因为有多个托管 OpenLDAP 的节点。
防火墙和虚拟主机
“虚拟”一词在 IT 领域经常被忽视, 适用于私有云部署和虚拟主机的 Apigee Edge。需要说明的是 “虚拟”一词的使用:
- 虚拟机 (VM):不是必需的,但部分部署会使用虚拟机技术 为 Apigee 组件创建独立的服务器。与物理主机一样,虚拟机主机可以有网络接口和防火墙。这些安装说明不专门针对虚拟机安装。
- 虚拟主机:网络端点,类似于 Apache 虚拟主机。
虚拟机中的路由器可以公开多个虚拟主机(只要它们的主机别名或接口端口不同即可)。
举一个命名示例,单个物理服务器“A”可能运行两个虚拟机, 分别命名为“VM1”和“VM2”我们假设 VM1 公开了一个虚拟以太网 接口,命名为 eth0 并且虚拟化会为其分配 IP 地址 111.111.111.111 计算机或网络 DHCP 服务器;然后假设 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)。此外,每个 虚拟机的操作系统可能会在其 eth0 接口上提供自己的防火墙,这些防火墙也必须 则允许端口 80 和 443 流量进行连接。
基本路径是将 API 调用路由到不同 API 代理所涉及的第三个组成部分 您可能已部署的资源如果 API 代理软件包具有不同的端点,则可以共享一个端点 基本路径。例如,一个基本路径可以定义为 http://api.mycompany.com:80/,而另一个基本路径可以定义为 定义为 http://api.mycompany.com:80/salesdemo。
在这种情况下,您需要通过某种类型的负载平衡器或 Traffic Director 来拆分 两个 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 目标。
但是,如果您使用以下基本网址部署 API testmycompany, /salesdemo,则用户可以访问 该 API(网址为 http://api.mycompany.com:80/salesdemo)。如果您 使用 / 的基础网址部署您的 API mycompany,然后用户通过该网址访问 API http://api.mycompany.com:80/.
边缘端口要求
对防火墙的管理不仅仅局限于虚拟主机;虚拟机和物理主机 防火墙必须允许组件与各个组件通信所需端口的流量通过 其他。
下图显示了每个 Edge 组件的端口要求:
下图中的备注:
-
*只有在您在路由器和消息处理器之间配置 TLS/SSL 时,消息处理器上的端口 8082 才需要处于打开状态,以便路由器可以访问。如果您未配置 TLS/SSL (默认配置),端口 8082 仍必须 在消息处理器上打开以管理组件,但路由器不要求 访问。
- 以“M”为前缀的端口是用于管理组件的端口,必须在 组件。
- 以下组件需要访问管理服务器上的端口 8080:路由器、 消息处理器、界面、Postgres 和 Qpid。
- 消息处理器必须打开端口 4528 作为其管理端口。如果您有多个 它们必须都能够通过端口 4528(用 上图中消息处理器上的端口 4528 的循环箭头)。如果您有多个 数据中心,必须可从所有数据中心内的所有消息处理器访问该端口。
- 您可以在路由器上打开端口 4527,以供任何邮件访问,尽管这不是必需操作 处理器。否则,您可能会在消息处理器日志文件中看到错误消息。
- 路由器必须打开端口 4527 作为其管理端口。如果您有多个路由器 都必须能够通过端口 4527(由 如上图所示,路由器上的端口 4527)。
- Edge 界面需要访问 API 代理公开的端口上的路由器,以支持 跟踪工具中的发送按钮。
- 管理服务器需要访问 Cassandra 上的 JMX 端口 节点。
- 您可以将对 JMX 端口的访问权限配置为需要用户名/密码。如需了解详情,请参阅如何监控。
- 您可以选择为某些连接配置 TLS/SSL 访问权限,这些连接可以使用不同的端口。请参阅 TLS/SSL 。
- 如果将两个 Postgres 节点配置为使用主备用复制功能,则必须打开端口 22 进行 SSH 访问您可以选择在各个节点上打开端口,以允许 ssh 访问。
- 您可以将管理服务器和边缘界面配置为通过外部 SMTP 发送电子邮件 服务器。如果这样做,您必须确保管理服务器和 UI 可以访问必要的 SMTP 服务器上的端口对于非 TLS SMTP,端口号通常为 25。对于已启用 TLS SMTP,通常为 465,但请与您的 SMTP 提供商确认。
下表显示了需要在防火墙中按 Edge 组件打开的端口:
组件 |
Port(端口) |
说明 |
---|---|---|
标准 HTTP 端口 |
80、443 |
HTTP 以及您用于虚拟主机的任何其他端口 |
管理服务器 |
8080 |
用于调用 Edge Management API 的端口。以下组件需要访问 Management Server 上的端口 8080:路由器、消息处理器、界面、Postgres 和 Qpid。 |
1099 |
JMX 端口 |
|
4526 |
适用于分布式缓存和管理调用 |
|
管理界面 |
9000 |
用于通过浏览器访问管理界面的端口 |
消息处理器 |
8998 |
用于从路由器通信的消息处理器端口 |
8082 |
消息处理器的默认管理端口,必须在组件上打开 管理服务器访问的资源。
如果您在路由器和邮件处理器之间配置 TLS/SSL(由路由器使用)
对消息处理器进行健康检查。
|
|
1101 |
JMX 端口 |
|
4528 |
适用于消息处理器之间的分布式缓存和管理调用,以及 通过路由器进行通信 |
|
路由器 |
8081 |
路由器的默认管理端口,必须在组件上打开才能访问 由管理服务器管理 |
4527 |
适用于分布式缓存和管理调用 |
|
15999 |
健康检查端口。负载平衡器使用此端口来确定路由器是否 可用。 如需获取路由器的状态,负载均衡器会向路由器上的端口 15999 发出请求: > curl -v http://<routerIP>:15999/v1/servers/self/reachable 如果路由器可访问,请求会返回 HTTP 200。 |
|
ZooKeeper |
2181 |
供其他组件(如管理服务器、路由器、消息处理器等)使用 |
2888、3888 |
供 ZooKeeper 在内部用于 ZooKeeper 集群(称为 ZooKeeper 集成学习) 通信 |
|
Cassandra |
7000、9042、9160 |
Apache Cassandra 端口,用于在 Cassandra 节点之间通信以及 其他 Edge 组件。 |
7199 |
JMX 端口。必须开放以供管理服务器访问。 |
|
Qpid |
5672 |
用于从路由器和消息处理器到 Qpid 服务器的通信 |
8083 |
Qpid 服务器上的默认管理端口,必须在组件上打开 管理服务器访问的资源。 |
|
1102 |
JMX 端口 |
|
4529 |
对于分布式缓存和管理调用 |
|
Postgres |
5432 |
用于从 Qpid/Management 服务器到 Postgres 的通信 |
8084 |
Postgres 服务器上的默认管理端口,必须在组件上打开 管理服务器访问的资源。 |
|
1103 |
JMX 端口 |
|
4530 |
对于分布式缓存和管理调用 |
|
22 |
如果要将两个 Postgres 节点配置为使用主备用复制功能,则必须打开 为 SSH 访问各节点上的端口 22。 |
|
LDAP |
10389 |
OpenLDAP |
SmartDocs |
59002 |
边缘路由器上的端口,用于发送 SmartDocs 页面请求。 |
注意:此外,您可能需要在防火墙中打开端口以进行测试。对于 例如 59001,依此类推。 |
下表显示了相同的端口(以数字形式列出),其中包含来源和目标 组件:
端口号 |
目的 |
源组件 |
目的地组件 |
---|---|---|---|
<虚拟主机端口> |
HTTP 以及您用于虚拟主机 API 调用流量的任何其他端口。端口 80 和 443 最常用的类别邮件路由器可以终止 TLS/SSL 连接。 |
外部客户端(或负载平衡器) |
邮件路由器上的监听器 |
1099 至 1103 |
JMX 管理 |
JMX 客户端 |
管理服务器 (1099) 消息处理器 (1101) Qpid 服务器 (1102) Postgres 服务器 (1103) |
2181 |
ZooKeeper 客户端通信 |
管理服务器 路由器 消息处理器 Qpid 服务器 Postgres 服务器 |
ZooKeeper |
2888 和 3888 |
Zookeeper 节点间管理 |
ZooKeeper |
ZooKeeper |
4526 到 4530 |
RPC 管理端口,用于分布式缓存和来自管理服务器的调用 其他组件 |
管理服务器 |
管理服务器 (4526) 路由器 (4527) 消息处理器 (4528) Qpid 服务器 (4529) Postgres 服务器 (4530) |
4528 |
适用于消息处理器之间的分布式缓存调用,以及 从路由器 |
路由器 消息处理器 |
消息处理器 |
5432 |
Postgres 客户端 |
Qpid 服务器 |
Postgres |
5672 |
用于从路由器和消息处理器向 Qpid 发送分析数据 |
路由器 消息处理器 |
Qpid 服务器 |
7,000 |
Cassandra 节点间通信 |
Cassandra |
其他 Cassandra 节点 |
7199 |
JMX 管理。必须开放给管理层在 Cassandra 节点上访问 服务器。 |
JMX 客户端 |
Cassandra |
8080 |
Management API 端口 |
Management API 客户端 |
管理服务器 |
8081 到 8084 |
组件 API 端口,用于直接向各个组件发出 API 请求。 每个组件会打开不同的端口;所使用的端口取决于具体的配置 但必须在组件上打开,以便管理服务器访问 |
Management API 客户端 |
路由器 (8081) 消息处理器 (8082) Qpid 服务器 (8083) Postgres 服务器 (8084) |
8998 |
路由器和消息处理器之间的通信 |
路由器 |
消息处理器 |
9,000 |
默认的 Edge 管理界面端口 |
浏览器 |
管理界面服务器 |
9042 |
CQL 原生传输 |
路由器 消息处理器 管理服务器 |
Cassandra |
9160 |
Cassandra 旧款客户 |
路由器 消息处理器 管理服务器 |
Cassandra |
10389 |
LDAP 端口 |
管理服务器 |
OpenLDAP |
15999 | 健康检查端口。负载平衡器使用此端口来确定路由器是否 可用。 | 负载均衡器 | 路由器 |
59002 |
发送 SmartDocs 页面请求的路由器端口 |
SmartDocs |
路由器 |
消息处理器使专用连接池保持对已配置的 Cassandra 开放 永不超时。当消息处理器和 Cassandra 服务器之间有防火墙时, 防火墙可能会使连接超时。但是,消息处理器不 重新建立与 Cassandra 的连接。
为避免这种情况,Apigee 建议将 Cassandra 服务器、消息处理器和路由器放在同一子网中,以便防火墙不参与这些组件的部署。
如果防火墙位于路由器和消息处理器之间,并且设置了空闲的 tcp 超时时间, 我们的建议是:
- 设置 net.ipv4.tcp_keepalive_time = Linux 操作系统上 sysctl 设置中的 1800,其中 1800 应低于防火墙空闲时间 tcp 超时。此设置应使连接保持在已建立状态,以免防火墙断开连接。
- 在所有消息处理器上,修改 /<inst_root>/apigee/customer/application/message-processor.properties
以添加以下属性。如果该文件不存在,请创建该文件。
conf_system_casssandra.maxconnecttimeinmillis=-1 - 重启消息处理器:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart - 在所有路由器上,修改 /<inst_root>/apigee/customer/application/router.properties
以添加以下属性。如果该文件不存在,请创建一个。
conf_system_casssandra.maxconnecttimeinmillis=-1 - 重启路由器:
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart
如果您安装含有两个数据中心的 12 个主机集群配置,请确保 两个数据中心内的节点可以通过如下所示的端口进行通信:
API BaaS 端口要求
如果您选择安装 API BaaS,则需要添加 API BaaS 堆栈和 API BaaS 门户组件。 这些组件使用下图所示的端口:
下图中的备注:
- Cassandra 节点可以专用于 API BaaS,也可以与 Edge 共享。
- API BaaS 的生产环境安装在 API BaaS 门户节点之间使用负载平衡器 和 API BaaS 栈节点在配置门户和进行 BaaS API 调用时,您需要 指定负载平衡器的 IP 地址或 DNS 名称,而不是栈节点的 IP 地址或 DNS 名称。
- 您必须将所有 Baas Stack 节点配置为通过外部 SMTP 服务器发送电子邮件。对于非 TLS SMTP,端口号通常为 25。对于启用了 TLS 的 SMTP,该值通常为 465, 与您的 SMTP 提供商相关联。
下表按组件显示了需要在防火墙中打开的默认端口:
组件 |
Port(端口) |
说明 |
---|---|---|
API BaaS 门户 |
9000 |
API BaaS 界面的端口 |
API BaaS 堆栈 |
8080 |
接收 API 请求的端口 |
ElasticSearch |
9200 至 9400 |
用于与 API BaaS 堆栈通信以及在 ElasticSearch 之间通信 nodes |
许可
每次安装 Edge 时,您都需要从 Apigee 获取唯一的许可文件。您将 在安装管理服务器时需要提供许可文件的路径,例如 /tmp/license.txt.
安装程序将许可文件复制到 /<inst_root>/apigee/customer/conf/license.txt。
如果许可文件有效,管理服务器会验证许可文件是否过期,并显示允许的消息 处理器 (MP) 数量。如果任何许可设置已过期,您可以在以下位置找到日志:/<inst_root>/apigee/var/log/edge-management-server/logs。在这种情况下,您可以联系 Apigee 支持团队 迁移详情。