内容:

Tableau Server 端口

  • 版本 :2022.1 及更高版本

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

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

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

注意:此操作包括您可能需要使用 TSM 命令行执行的步骤。

防火墙要求

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

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

分布式/高可用性

80TCP网关X
443TCPSSL。针对 SSL 配置 Tableau Server 时,应用程序服务器会将请求重定向到此端口。不要更改此端口。X
8850TCPTableau 服务管理器。X
8060TCPPostgreSQL 数据库。X
8061TCPPostgreSQL 备份验证端口X
8000-9000TCP默认情况下为 Tableau 进程动态映射保留的端口范围
X
27000-27009TCPTableau 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.port8060Tableau 存储库(PostgreSQL 数据库)的端口。

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

tsm configuration set -k pgsql.port

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

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

tsm configuration set -k pgsql.verify_restore.port

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

tsm configuration get -k pgsql.port

使用 initialize-tsm 控制端口重新映射

端口分配是在安装服务时进行的。这意味着要手动映射 TSM 特定进程的端口,需要在运行 initialize-tsm 脚本时分配端口。该脚本包含用于指定各个 TSM 服务的端口的选项,以及用于定义与动态映射配合使用的端口范围最小值和最大值的选项,并且您可以禁用动态映射。

下表列出了运行 initialize-tsm 脚本时端口的选项。

表:initialize-tsm 脚本端口选项

动态映射端口

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

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

此部分中的其他文章

为帮助您解决 Tableau Server 的问题,Tableau 支持人员可能会要求您启用服务器的 JMX 端口。这些端口对于通常使用像 JConsole 这样的工具进行监视和故障排除的情况会非常有用。在版本 2022.1 及更高版本中,可以安全地启用 JMX 端口,这是推荐的方法。在 2022.1 之前的版本中,您只能启用不安全的端口。

启用安全的 JMX 端口

Tableau Server 的版本 2022.1 开始,您可以安全地启用 JMX 端口。本过程介绍了如何启用安全的 JMX。若要在早期版本中启用 JMX,请参见下面的启用不安全的 JMX 端口

Tableau Server 上启用安全的 JMX 端口:

  1. 以具有 sudo 访问权限的用户身份登录到安装了 TSM 的计算机。

  2. 运行此命令:

    tsm maintenance jmx enable

    该命令有几个选项,您可以在运行时提供。如果您在运行命令时未提供任何选项,系统将根据您给出的答案提示您提供选项。

    例如:

    C:\Windows\system32>tsm maintenance jmx enable
    We do not recommend you enable JMX unsecured on a production environment. Would you like to enable security features for JMX?
    (y/n): y
    JMX access is readonly by default. Would you like to add readwrite access?
    (y/n): n
    Would you like to enable SSL?
    (y/n): y
    Would you like to require client authentication (mTLS)?
    (y/n): n
    Enabling JMX with the specified settings. This will perform a server restart. Do you want to continue?
    (y/n): y
    Starting enable JMX asynchronous job.

    有关该命令及其选项的详细信息,请参见tsm maintenance jmx enable

启用不安全的 JMX 端口

如何确定 JMX 端口

默认情况下,会从可用端口范围内动态分配 JMX 端口。有关如何完成端口分配以及如何覆盖动态映射的详细信息,请参见Tableau 服务管理器端口