端口要求

适用于私有云的 Edge v4.18.05

需要管理防火墙的不仅仅是虚拟主机;虚拟机防火墙和物理主机防火墙都必须允许组件之间通信所需的端口的流量。

端口示意图

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

单个数据中心

下图显示了单个数据中心配置中每个 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。
  • 出于安全原因,除了上面显示的端口以及您自己的网络要求所需的任何其他端口外,请勿在数据中心之间打开任何其他端口。

充电桩详情

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

组件 端口 说明
标准 HTTP 端口 80、443 HTTP 以及您用于虚拟主机的任何其他端口
Cassandra 7000、9042、9160 Apache Cassandra 端口,用于 Cassandra 节点之间的通信以及供其他 Edge 组件访问。
7199 JMX 端口。必须处于打开状态,以便管理服务器访问。
LDAP 10389 OpenLDAP
管理服务器 1099 JMX 端口
4526 用于分布式缓存和管理调用的端口。此端口可配置。
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
  • 单个数据中心:用于将分析数据从路由器和消息处理器发送到 Qpid。
  • 多个数据中心:在不同数据中心内的 Qpid 节点之间进行通信。
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 边缘路由器上的端口,用于发送 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
5672
  • 单个数据中心:用于将分析数据从路由器和消息处理器发送到 Qpid。
  • 多个数据中心:用于不同数据中心的 Qpid 节点之间的通信。
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 旧款客户 路由器
消息处理器
管理服务器
Cassandra
10389 LDAP 端口 管理服务器 OpenLDAP
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