适用于私有云的 Edge v4.19.01
需要管理防火墙的不仅仅是虚拟主机;虚拟机防火墙和物理主机防火墙都必须允许组件之间通信所需的端口的流量。
端口示意图
下图显示了单个数据中心和多个数据中心配置的端口要求:
单个数据中心
下图显示了单个数据中心配置中每个 Edge 组件的端口要求:
关于此图表的注意事项:
- 以“M”为前缀的端口是用于管理组件的端口,必须在组件上开放以便管理服务器访问。
- Edge 界面需要访问 API 代理公开的端口上的路由器,才能支持轨迹工具中的发送按钮。
- 您可以将对 JMX 端口的访问权限配置为需要用户名/密码。如需了解详情,请参阅如何监控。
- 您可以选择为某些连接配置 TLS/SSL 访问权限,这些连接可以使用不同的端口。如需了解详情,请参阅 TLS/SSL。
- 您可以配置管理服务器和 Edge 界面,以便通过外部 SMTP 服务器发送电子邮件。如果您这样做,则必须确保管理服务器和界面可以访问 SMTP 服务器上的必要端口(未显示)。对于非 TLS SMTP,端口号通常为 25。对于启用了 TLS 的 SMTP,该值通常为 465,但请咨询您的 SMTP 提供商。
多个数据中心
如果您安装的是包含两个数据中心的 12 节点集群配置,请确保两个数据中心中的节点可以通过下方所示的端口进行通信:
请注意:
- 所有管理服务器都必须能够访问所有其他数据中心中的所有 Cassandra 节点。
- 所有数据中心中的所有消息处理器都必须能够通过端口 4528 相互访问。
- 管理服务器必须能够通过端口 8082 访问所有消息处理器。
- 所有管理服务器和所有 Qpid 节点都必须能够访问所有其他数据中心中的 Postgres。
- 出于安全原因,除了上面显示的端口以及您自己的网络要求所需的任何其他端口外,请勿在数据中心之间打开任何其他端口。
默认情况下,组件之间的通信不会加密。您可以通过安装 Apigee mTLS 添加加密。如需了解详情,请参阅 Apigee mTLS 简介。
充电桩详情
下表介绍了需要在防火墙中按 Edge 组件打开的端口:
组件 | 端口 | 说明 |
---|---|---|
标准 HTTP 端口 | 80、443 | HTTP 以及您用于虚拟主机的任何其他端口 |
Cassandra | 7000、9042、9160 | Apache Cassandra 端口,用于在 Cassandra 节点之间进行通信以及供其他 Edge 组件访问。 |
7199 | JMX 端口。必须处于打开状态,以便管理服务器访问。 | |
LDAP | 10389 | OpenLDAP |
管理服务器 | 1099 | JMX 端口 |
4526 | 用于分布式缓存和管理调用的端口。此端口可配置。 | |
5636 | 用于创收提交通知的端口。 | |
8080 | 用于 Edge Management API 调用的端口。以下组件需要访问 Management Server 上的端口 8080:路由器、消息处理器、界面、Postgres 和 Qpid。 | |
管理界面 | 9000 | 用于浏览器访问管理界面的端口 |
消息处理器 | 1101 | JMX 端口 |
4528 | 用于消息处理器之间的分布式缓存和管理调用,以及路由器和管理服务器之间的通信。
消息处理方必须将端口 4528 作为其管理端口打开。如果您有多个消息处理器,则它们都必须能够通过端口 4528 相互访问(上图中消息处理器上的端口 4528 对应的循环箭头表示这一点)。如果您有多个数据中心,则必须确保所有数据中心中的所有消息处理器都可以访问该端口。 |
|
8082 |
消息处理器的默认管理端口,必须在该组件上打开,以便管理服务器访问。 如果您在路由器和消息处理器之间配置了 TLS/SSL,则路由器会使用此端口对消息处理器进行健康检查。 只有在您在路由器和消息处理器之间配置 TLS/SSL 时,消息处理器上的端口 8082 才需要处于打开状态,以便路由器可以访问。如果您未在路由器和消息处理器之间配置 TLS/SSL,则仍必须在消息处理器上打开默认配置端口 8082 才能管理该组件,但路由器无需对其进行访问。 |
|
8443 | 在路由器和消息处理器之间启用 TLS 后,您必须在消息处理器上打开端口 8443,以便路由器可以访问。 | |
8998 | 用于与路由器通信的消息处理器端口 | |
Postgres | 22 | 如果将两个 Postgres 节点配置为使用主-备份复制,您必须在每个节点上打开端口 22 以便进行 SSH 访问。 |
1103 | JMX 端口 | |
4530 | 对于分布式缓存和管理调用 | |
5432 | 用于从 Qpid/管理服务器到 Postgres 的通信 | |
8084 | Postgres 服务器上的默认管理端口;必须在该组件上打开,以便管理服务器访问。 | |
Qpid | 1102 | JMX 端口 |
4529 位 | 适用于分布式缓存和管理调用 | |
5672 |
|
|
8083 | Qpid 服务器上的默认管理端口,必须在该组件上打开,以便管理服务器访问。 | |
路由器 | 4527 | 适用于分布式缓存和管理调用。
路由器必须打开端口 4527 作为其管理端口。如果您有多个路由器,则它们必须都能够通过端口 4527(由上图中路由器上的端口 4527 的环形箭头表示)互相访问。 您可以在路由器上打开端口 4527,以便任何消息处理器访问,但这并非强制性要求。否则,您可能会在消息处理器日志文件中看到错误消息。 |
8081 | 路由器的默认管理端口,必须在该组件上打开,以便管理服务器访问。 | |
15999 |
健康检查端口。负载平衡器使用此端口来确定路由器是否可用。 如需获取路由器的状态,负载平衡器会向路由器上的端口 15999 发出请求: curl -v http://routerIP:15999/v1/servers/self/reachable 如果路由器可访问,请求会返回 HTTP 200。 |
|
59001 | 用于通过 apigee-validate 实用程序测试 Edge 安装的端口。
此实用程序需要访问路由器上的端口 59001。如需详细了解端口 59001,请参阅测试安装。 |
|
SmartDocs | 59002 | Edge 路由器上用于发送 SmartDocs 页面请求的端口。 |
ZooKeeper | 2181 | 供其他组件(如管理服务器、路由器、消息处理器等)使用 |
2888、3888 | 供 ZooKeeper 在内部用于 ZooKeeper 集群(称为 ZooKeeper 集成学习)通信 |
下表显示了相同的端口,并按数字列出了来源和目的地组件:
端口号 | 用途 | 来源组件 | 目的地组件 |
---|---|---|---|
virtual_host_port | 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 | RPC 管理端口 | 管理服务器 | 管理服务器 |
4527 | RPC 管理端口,用于分布式缓存和管理调用,以及路由器之间的通信 | 管理服务器 路由器 |
路由器 |
4528 | 适用于消息处理器之间的分布式缓存调用,以及来自路由器的通信 | 管理服务器 路由器 消息处理器 |
消息处理器 |
4529 | 分布式缓存和管理调用的 RPC 管理端口 | 管理服务器 | Qpid 服务器 |
4530 | 分布式缓存和管理调用的 RPC 管理端口 | 管理服务器 | Postgres 服务器 |
5432 | Postgres 客户端 | Qpid 服务器 | Postgres |
5636 | 创收 | 外部 JMS 组件 | 管理服务器 |
5672 |
|
Qpid 服务器 | Qpid 服务器 |
7000 | 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) |
8443 | 启用 TLS 后路由器与消息处理器之间的通信 | 路由器 | 消息处理器 |
8998 | 路由器和消息处理器之间的通信 | 路由器 | 消息处理器 |
9000 | 默认边缘管理界面端口 | 浏览器 | 管理界面服务器 |
9042 | CQL 原生传输 | 路由器 消息处理器 管理服务器 |
Cassandra |
9160 | Cassandra Thrift 客户端 | 路由器 消息处理器 管理服务器 |
Cassandra |
10389 | LDAP 端口 | 管理服务器 | OpenLDAP |
15999 | 健康检查端口。负载平衡器使用此端口来确定路由器是否可用。 | 负载均衡器 | 路由器 |
59001 | apigee-validate 实用程序用于测试 Edge 安装的端口 |
apigee-validate | 路由器 |
59002 | 发送 SmartDocs 网页请求的路由器端口 | SmartDocs | 路由器 |
消息处理器会向 Cassandra 保持一个专用连接池,该连接池配置为永不超时。如果消息处理器和 Cassandra 服务器之间存在防火墙,防火墙可能会使连接超时。不过,消息处理器无法重新建立与 Cassandra 的连接。
为避免这种情况,Apigee 建议将 Cassandra 服务器、消息处理器和路由器放在同一子网中,以便防火墙不参与这些组件的部署。
如果路由器和消息处理器之间有防火墙,并且防火墙设置了空闲 TCP 超时,我们建议您执行以下操作:
- 在 Linux 操作系统上的 sysctl 设置中设置
net.ipv4.tcp_keepalive_time = 1800
,其中 1800 应低于防火墙空闲 TCP 超时时间。此设置应使连接保持在已建立状态,以免防火墙断开连接。 - 在所有消息处理方中,修改
/opt/apigee/customer/application/message-processor.properties
以添加以下属性。如果该文件不存在,请创建一个。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在所有路由器上,修改
/opt/apigee/customer/application/router.properties
以添加以下属性。如果该文件不存在,请创建一个。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart