端口要求

管理防火墙的需求不仅限于虚拟主机;虚拟机和物理主机防火墙都必须允许流量通过组件相互通信所需的端口。

端口示意图

以下图片显示了单数据中心和多数据中心配置的端口要求:

单个数据中心

下图显示了单数据中心配置中每个 Edge 组件的端口要求:

单个数据中心配置中每个 Edge 组件的端口要求

有关此图表的注意事项

  • 以“M”为前缀的端口是用于管理组件的端口,必须在组件上打开,以便管理服务器访问。
  • Edge 界面需要访问路由器(通过 API 代理公开的端口),才能支持轨迹工具中的发送按钮。
  • 您可以配置对 JMX 端口的访问权限,以要求提供用户名/密码。如需了解详情,请参阅如何监控
  • 您可以选择为某些连接配置 TLS/SSL 访问权限,这些连接可以使用不同的端口。如需了解详情,请参阅 TLS/SSL
  • 您可以配置管理服务器和 Edge 界面,以通过外部 SMTP 服务器发送电子邮件。如果这样做,您必须确保管理服务器和界面可以访问 SMTP 服务器上的必要端口(未显示)。对于非 TLS SMTP,端口号通常为 25。对于启用 TLS 的 SMTP,通常为 465,但请咨询您的 SMTP 提供商。

多个数据中心

如果您安装了包含两个数据中心的 12 节点集群配置,请确保两个数据中心中的节点可以通过以下端口进行通信:

12 节点集群配置中每个节点的端口要求

请注意

  • 所有管理服务器都必须能够访问所有其他数据中心内的所有 Cassandra 节点。
  • 所有数据中心的所有消息处理器都必须能够通过端口 4528 相互访问。
  • 管理服务器必须能够通过端口 8082 访问所有消息处理器。
  • 所有管理服务器和所有 Qpid 节点都必须能够访问所有其他数据中心内的 Postgres。
  • 出于安全考虑,除了上述端口以及您自己的网络要求所需的任何其他端口之外,数据中心之间不应打开任何其他端口。

默认情况下,组件之间的通信未加密。您可以通过安装 Apigee mTLS 来添加加密。如需了解详情,请参阅 Apigee mTLS 简介

携号转网详情

下表按 Edge 组件说明了需要在防火墙中打开的端口:

组件 端口 说明
标准 HTTP 端口 80、443 HTTP 以及您用于虚拟主机的任何其他端口
Apigee SSO 9099 来自外部 IDP、管理服务器和浏览器的连接,用于身份验证。
Cassandra 7000、9042 Apache Cassandra 端口,用于 Cassandra 节点之间的通信以及其他 Edge 组件的访问。
7199 JMX 端口。必须处于打开状态,以便管理服务器进行访问。
LDAP 10389 SymasLDAP
管理服务器 1099 JMX 端口
4526 用于分布式缓存和管理调用的端口。此端口可配置。
5636 用于创收提交通知的端口。
8080 用于 Edge 管理 API 调用的端口。以下组件需要访问管理服务器上的端口 8080:路由器、消息处理器、界面、Postgres、Apigee SSO(如果已启用)和 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
  • 单个数据中心:用于将分析数据从路由器和消息处理器发送到 Qpid。
  • 多个数据中心:用于不同数据中心内 Qpid 节点之间的通信。

还用于同一节点上的 Qpid 服务器和代理组件之间的通信。在具有多个 Qpid 节点的拓扑中,服务器必须能够连接到端口 5672 上的所有代理。

8083 Qpid 服务器上的默认管理端口,必须在组件上打开,以便管理服务器访问。
8090 Qpid 代理的默认端口;必须处于打开状态,才能访问代理的管理控制台或管理 API 以进行监控。
路由器 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 节点之间的通信。

还用于同一节点上的 Qpid 服务器和代理组件之间的通信。在具有多个 Qpid 节点的拓扑中,服务器必须能够连接到端口 5672 上的所有代理。

Qpid 服务器 Qpid 服务器
7000 Cassandra 节点间通信 Cassandra 其他 Cassandra 节点
7199 JMX 管理。必须打开,以便管理服务器在 Cassandra 节点上进行访问。 JMX 客户端 Cassandra
8080 管理 API 端口 Management API 客户端 管理服务器
8081 至 8084

组件 API 端口,用于直接向各个组件发出 API 请求。 每个组件都会打开不同的端口;使用的确切端口取决于配置,但必须在组件上打开,以便管理服务器访问

Management API 客户端 路由器 (8081)
消息处理器 (8082)
Qpid 服务器 (8083)
Postgres 服务器 (8084)
8090 Qpid 的代理用于管理和监控队列的默认管理端口。 浏览器或 API 客户端 Qpid Broker (apigee-qpidd)
8443 启用 TLS 时路由器和消息处理器之间的通信 路由器 消息处理器
8998 路由器和消息处理器之间的通信 路由器 消息处理器
9000 默认 Edge 管理界面端口 浏览器 管理界面服务器
9042 CQL 原生传输 路由器
消息处理器
管理服务器
Cassandra
9099 外部 IDP 身份验证 IDP、浏览器和管理服务器 Apigee SSO
10389 LDAP 端口 管理服务器 SymasLDAP
15999 健康检查端口。负载平衡器使用此端口来确定路由器是否可用。 负载均衡器 路由器
59001 apigee-validate 实用程序用于测试 Edge 安装的端口 apigee-validate 路由器
59002 发送 SmartDocs 网页请求的路由器端口 SmartDocs 路由器

消息处理器会保持一个专用的连接池对 Cassandra 开放,该连接池配置为永不超时。当消息处理器和 Cassandra 服务器之间存在防火墙时,防火墙可能会使连接超时。不过,消息处理器并非设计为重新建立与 Cassandra 的连接。

为避免这种情况,Apigee 建议 Cassandra 服务器、消息处理器和路由器位于同一子网中,这样防火墙就不会参与这些组件的部署。

如果路由器和消息处理器之间存在防火墙,并且该防火墙设置了空闲 TCP 超时,我们建议您执行以下操作:

  1. 在 Linux 操作系统的 sysctl 设置中设置 net.ipv4.tcp_keepalive_time = 1800,其中 1800 应低于防火墙空闲 TCP 超时时间。此设置应使连接保持在已建立状态,以便防火墙不会断开连接。
  2. 在所有消息处理器上,修改 /opt/apigee/customer/application/message-processor.properties 以添加以下属性。如果该文件不存在,则创建该文件。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  3. 重启消息处理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. 在所有路由器上,修改 /opt/apigee/customer/application/router.properties 以添加以下属性。如果该文件不存在,则创建该文件。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  5. 重启路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart