Tableau 服务管理器端口

组成 Tableau 服务管理器 (TSM) 和 Windows 版 Tableau Server 的组件的进程和服务使用各种端口进行通信。默认情况下,会从预定义的端口范围动态分配(映射)大多数这些端口。端口分配是在安装每个服务或进程时为其进行的。您可以通过多种方式控制使用的端口。

一小部分进程不使用动态端口映射,并且行为方式独特。有关详细信息,请参见下面的非动态映射的端口

注意:此操作包括您可能需要使用 TSM 命令行执行的步骤。若要使用 TSM CLI,您需要在安装中的一个节点上对命令行具有管理员访问权限,并需要 TSM 管理员凭据来运行 TSM 命令。

防火墙要求

如果要在将安装 Tableau Server 的计算机上运行防火墙,则需要为 Tableau Server 通信打开以下默认端口。可以更改除 443 外的所有端口号。

端口 TCP/UDP 使用者... 安装类型
所有

分布式/高可用性

80 TCP 网关 X  
443 TCP SSL。针对 SSL 配置 Tableau Server 时,应用程序服务器会将请求重定向到此端口。不要更改此端口。 X  
8850 TCP Tableau 服务管理器。 X  
8060 TCP PostgreSQL 数据库。 X  
8061 TCP PostgreSQL 备份验证端口 X  
8000-9000 TCP 默认情况下为 Tableau 进程动态映射保留的端口范围   X
27000-27009 TCP Tableau Server 用于许可证服务的端口范围。此范围必须在运行许可证服务的节点上打开,并可从其他节点访问。默认情况下,初始节点运行许可证服务。 X  

Port assignment

您可以采用两种方法在 TSM 中分配或映射端口:

  • 动态端口分配。这是默认设置,需要管理员进行的干预最少。
  • 手动端口分配。此选项要求管理员分别分配每个端口。

如果更改端口分配并且正在运行本地防火墙,请参见本地防火墙配置

动态端口分配

您可以通过更改可用于动态分配过程的端口范围来控制所使用的端口。这样做会使用动态端口分配,但会限制可以选择的端口。使用动态端口分配时,您仍然可以选择手动为某些进程分配端口。利用这种方法,您可以将特定端口分配给特定进程,同时动态映射其他端口。无论是有还是没有一些单独分配的端口,使用动态映射都是最简单的方法,应该能够满足大多数客户的要求。如果导出 Tableau Server 配置,则会保留动态分配的端口。

默认情况下,可在 8000 到 9000 之间的可用端口中为每个服务或进程分配端口。在节点上首次安装服务时,会进行此分配。在初始化 Tableau Server 之后,可以通过运行以下命令来查看哪些服务或进程正在使用哪些端口:

tsm topology list-ports

如果您有多节点群集,则会列出所有节点上的端口。

更改端口范围

对于对所使用的端口有特定要求的组织,控制此项的最简单方法是更改端口动态选择范围。您需要在安装时执行此操作,方法是在配置文件中指定范围的最小端口和最大端口。

注意:您的端口范围的最小允许大小将取决于您的服务器安装,以及您正在运行的服务或进程的数量。作为一个通用的最佳方法,您不应该将范围限制得太紧,因为端口分配是通过选择范围内的随机端口来完成的,如果您未酌留足够大的范围,所做的选择可能无法找到可用的端口。

要将可用端口的选择范围限制在 8300 到 8600 之间,那么您的配置文件应包含类似如下的条目:

"configKeys": {
"ports.range.min": "8300", "ports.range.max": "8600"
}

阻止范围内的特定端口

从版本 2021.1.0 开始,您可以指定某些在动态分配范围内,但 Tableau 不应使用的端口。如果您的 Tableau Server 计算机上有依赖于 Tableau 正在使用范围内的端口的其他软件,这一点非常有用。

若要指定 TSM 和 Tableau Server 不应使用的范围内的端口,请使用 ports.blocklist 配置键:

tsm configuration set -k ports.blocklist -v <port>[,<port>,<port>]

例如:

tsm configuration set -k ports.blocklist -v 8000,8088, 8090

禁用动态端口分配

如果您需要的端口分配控制权超出了通过限制端口范围和单独分配端口可获得的控制权,则可以在初始服务器配置中禁用动态端口映射。如果要禁用动态端口映射,则您必须为每个进程手动分配每个端口,所以我们不建议这样做,除非您需要控制每个端口的分配。

如果禁用动态端口映射,则必须为安装的每个节点上的每个进程配置端口。

要禁用动态映射,您的配置文件将包含类似于以下的条目:

"configKeys": {
"service.port_remapping.enabled": false
}

重要信息:禁用动态端口分配时,不会包括许可证服务端口范围。在运行许可证服务并可从其他节点访问的节点上,此范围 (27000-27009) 必须开放。默认情况下,初始节点运行许可证服务。

手动端口分配

您可以完全禁用自动端口分配,并为每个进程单独分配一个端口。如果这样做,则必须为每个节点上的每个进程分配一个端口。首次安装进程时或安装后,您可以使用 TSM 命令在配置文件中分配端口。仅当导出 Tableau Server 配置时,才保留在进程安装时分配的端口。

无论是否启用动态映射,您都可以为特定进程指定单独的端口。如果您希望进程使用特定的端口,或者您已禁用动态映射,则可能会这样做。可以使用以下两种方法为进程指定端口:在安装过程中指定或在安装后指定。

在安装过程中配置端口

我们建议按本文所述方式在安装过程中配置端口分配。在安装之后更改端口是更耗费人力的过程。

若要在安装过程中配置端口,请创建一个指定端口配置的 json 文件。此过程与定义非默认端口范围相似,但是您可以为特定服务或进程指定特定端口。如果要分配特定端口,则此方法是最可靠的方法,因为如果使用 tsm settings export 命令导出服务器配置和拓扑设置,则会保留端口映射。

要在安装时定义端口,请在配置文件中添加信息以指定节点 (workerN)、进程 (servicename) 和实例 ID (instanceid)、端口类型 (porttype) 以及要使用的端口。其格式如下所示:

workerN.{servicename}_{instanceid}.{porttype}.port:X

其中:

  • workerN 是可选参数,用于标识应用重映射的节点。节点编号从零 (0) 开始。
    我们建议您不要包含此参数,除非您需要为不同节点上的相同服务映射不同端口。如果关闭该参数,则可以在初始节点上映射服务端口,或在多个节点上映射相同的服务端口。
  • servicename 是将会使用该端口的流程或服务的名称。
  • instanceid 是进程的实例。如果要在一个节点上配置多个进程实例,则需要为每个实例递增此值。让 instanceid 从零 (0) 开始,并针对每个进程实例将其递增一 (1)。对于在任何给定节点上只安装单个实例的服务,必须将其关闭。
  • porttype 如果设置主端口,请不要包括此选项。
  • port 是进程或服务应使用的端口。

例如,要将初始节点上文件存储进程的第一个实例的端口设置为 8500,则要包含类似于以下内容的配置文件条目:

"configKeys": {
"filestore_0.port: "8500"
}

上面的示例不包含可选的 workerN 参数,因此该示例设置群集中所有节点上的端口。它也会关闭 porttype 选项,因为它正在设置主文件存储端口。

重要信息:使用配置文件指定端口更改时,您必须随 tsm settings import 命令一起包括 --force-keys 参数。

在安装之后中配置端口

如果需要在已安装 Tableau Server 之后更改端口,请使用 tsm topology set-ports 命令。该方法允许您在安装完该进程后指定特定进程的端口。您受限于以下限制:

  • 您必须在每个节点上单独设置端口。
  • 设置单独的端口之后,您必须运行 tsm restart
  • 如果需要使用 tsm settings import 导入 Tableau Server 配置,请不会保留端口分配。
  • 对于 tsm 命令,端口名称使用的语法与 configKeys 所需的语法不同。本主题结尾的表提供了语法参考。

例如,若要将初始节点上文件存储的第二个实例设置为使用端口 8500,请使用以下命令:

tsm topology set-ports --node-name node1 --port-name filestore --port-value 8500 --instance 2

以下示例演示如何使用简短的命令来设置 JMX 端口:

tsm topology set-ports -n node1 --port-name vizqlserver:jmx.rmi -pv 9403 -i 1

tsm topology set-ports -n node1 --port-name vizqlserver:jmx -pv 9404 -i 2

注意:输入端口条目时,系统不会对其进行验证。因此,如果使用已经分配的端口,或者为命令键入了错误的语法,在您重新启动之前,Tableau 将不会指出错误。重新启动之后,您可能会看到一般性错误“The reconfigure async job failed.(重新配置异步作业失败)”

如果随有效端口一起添加了不正确的“端口名称:类型”,您将无法删除不正确的条目。若要更新端口,您必须为该值重新分配未使用的端口,以再次释放端口。

非动态映射的端口

Tableau Server 存储库使用两个未动态映射的端口。它们每个都有一个默认端口,您可以使用 tsm configuration set 命令和特定于进程的参数覆盖默认端口。

端口名称 端口(默认) 描述
pgsql.port 8060 Tableau 存储库(PostgreSQL 数据库)的端口。

要覆盖此端口,请使用以下命令:

tsm configuration set -k pgsql.port <port>

pgsql.verify_restore.port 8061 用于验证存储库备份完整性的端口。

要覆盖此端口,请使用以下命令:

tsm configuration set -k pgsql.verify_restore.port <port>

由于这些端口不使用动态端口映射系统,因此它们不会显示在 tsm topology list-ports 命令的输出中。要查看这些项的值,您需要使用 tsm configuration get -k <config.value> 命令。例如:

tsm configuration get -k pgsql.port

动态映射端口

此表列出了使用动态映射端口的进程或服务。

端口名称:json 文件 (configKeys) 的语法 端口名称:tsm CLI 的语法  描述
appzookeeper_0.client.port appzookeeper:client 协调服务客户端端口。
appzookeeper_0.peer.port appzookeeper:peer 协调服务对等端口。
appzookeeper_0.leader.port appzookeeper:leader 协调服务负责人端口。
backgrounder_0.port backgrounder 后台程序主端口。
backgrounder_0.debug.port backgrounder:debug 后台程序调试端口。
backgrounder_0.jmx.port backgrounder:jmx 后台程序 jmx 端口。 
backgrounder_0.jmx.rmi.port backgrounder:jmx.rmi 后台程序 jmx rmi 端口。
backgrounder_0.recommendations.trainer.port backgrounder:recommendations.trainer 后台程序建议端口。
backuprestore.port backuprestore 备份/还原服务端口。
cacheserver_0.port cacheserver 缓存服务器端口。
clustercontroller.status.port clustercontroller:status 群集控制器状态端口。
clustercontroller.storage.port clustercontroller:storage 群集控制器存储端口。
databasemaintenance.port databasemaintenance 数据库维护端口。
dataserver_0.port dataserver 数据服务器主端口。
dataserver_0.debug.port dataserver:debug 数据服务器调试端口。
dataserver_0.jmx.port dataserver:jmx 数据服务器 jmx 端口。
dataserver_0.jmx.rmi.port dataserver:jmx.rmi 数据服务器 jmx rmi 端口。
filestore.port filestore 文件存储主端口。
filestore.status.port filestore:status 文件存储状态端口。
gateway.port gateway 网关端口。此端口默认为 80,如果此值不可用,则为 8080。如果此值不可用,则绑定 8000。无论是否启用动态端口分配,都遵循该顺序。如果这些端口都不可用,并且启用了动态映射,则它将在定义的范围内使用一个可用的端口。网关端口在多节点群集中的所有节点上必须相同,因此如果在初始节点上选择了端口 80,则这是将在所有节点上使用的端口,并且如果在其中一个其他节点上不可用, 则网关端口选择将失败。
hyper.port hyper 数据引擎主端口。
hyper.connection.port hyper:connection 数据引擎连接端口。
licenseservice.vendor_daemon.port licenseservice:vendor_daemon 许可证服务提供商守护程序端口。用于多节点安装中节点之间的许可相关通信。
samlservice.port samlservice SAML 服务端口。
searchserver.port searchserver 搜索服务器主端口。
searchserver.debug.port searchserver:debug 搜索服务器调试端口。
searchserver.jmx.port searchserver:jmx 搜索服务器 jmx 端口。
searchserver.jmx.rmi.port searchserver:jmx:rmi 搜索服务器 jmx rmi 端口。
searchserver.startup.port searchserver:startup 搜索服务器启动端口。
siteimportexport.port siteimportexport 站点导入/导出端口。
tabadmincontroller.port tabadmincontroller TSM 控制器端口。
tabadminagent.columbo.port tabadminagent:columbo 管理代理服务发现端口
tabadminagent.filetransfer.port tabadminagent:filetransfer TSM 代理文件传输端口。
vizportal_0.authentication.port vizportal:authentication 应用程序服务器身份验证端口。
vizportal_0.authorization.port vizportal:authorization 应用程序服务器授权端口。
vizportal_0.maintenance.port vizportal:.maintenance 应用程序服务器维护端口。
vizportal_0.microservice.extensions.port vizportal:.microservice:extensions 应用程序服务器扩展程序端口。
vizportal_0.monolith_grpc.port vizporta:monolith_grpc 应用程序服务器 GRPC 端口。
vizportal_0.publishing.port vizportal:publishing 应用程序服务器发布端口。
vizportal_0.recommendations.port vizportal:recommendations 应用程序服务器建议端口。
vizportal_0.port vizportal 应用程序服务器主端口。
vizportal_0.debug.port vizportal:debug 应用程序服务器调试端口。
vizportal_0.jmx.port vizportal:jmx 应用程序服务器 jmx 端口。
vizportal_0.jmx.rmi.port vizportal:jmx.rmi 应用程序服务器 jmx rmi 端口。
vizqlserver_0.port vizqlserver VizQL 服务器主端口。
vizqlserver_0.debug.port vizqlserver:debug VizQL 服务器调试端口。
vizqlserver_0.jmx.port vizqlserver:jmx VizQL 服务器 jmx 端口。
vizqlserver_0.jmx.rmi.port vizqlserver:jmx.rmi VizQL 服务器 jmx rmi 端口。

 

此部分中的其他文章

感谢您的反馈!