Was this page helpful?
Yes No
Tableau Help > Tableau Server on Windows Help > 

Tableau Server on Windows now includes Tableau Services Manager (TSM), which replaces the Configuration Utility and the command line tool. If you need help for an earlier version of Tableau Server, see the Tableau Help page.

Tableau Services Manager Ports

The processes and services that make up the components of Tableau Services Manager (TSM) and Tableau Server on Windows use various ports to communicate. By default, most these ports are assigned (mapped) dynamically from a predefined range of ports. The port assignments are made for each service or process when it is installed. You can control what ports are used in a variety of ways.

A small subset of processes do not use dynamic port mapping and behave uniquely. For more information, see Ports that are not dynamically mapped, below.

Note: This operation includes steps that must be performed with the TSM command line. You cannot complete this procedure using the TSM Web UI. To use the TSM CLI you need administrator access to the command line on one of the nodes in your installation and TSM administrator credentials to run TSM commands.

Port assignment

There are two approaches you can use for port assignment or mapping in TSM:

  • Dynamic port assignment. This is the default and requires the least intervention by the administrator.
  • Manual port assignment. This option requires an administrator to individually assign each port.

If you change port assignments and you are running a local firewall, see Local firewall configuration.

Dynamic port assignment

You can control which ports are used by changing the range of ports available to the dynamic assignment process. Doing this leaves dynamic port assignment in place but restricts the ports that can be chosen. With dynamic port assignment in place, you can still choose to assign ports for certain processes manually. This approach enables you to assign specific ports to specific processes, while leaving the others to be mapped dynamically. Using dynamic mapping, with or without some individually assigned ports is the easiest approach, and should satisfy the requirements of most customers. Dynamically assigned ports are preserved if you export your Tableau Server configuration.

By default, ports are assigned for each service or process from available ports between 8000 to 9000. This assignment takes place when services are installed for the first time on a node. After Tableau Server is initialized, you can see which ports are being used by which services or processes by running this command:

tsm topology list-ports

If you have a multi-node cluster, ports on all nodes are listed.

Changing the port range

For organizations that have specific requirements for ports being used, the easiest way to control this is to change the range from which ports are dynamically selected. You need to do this at installation, by specifying a minimum and maximum port for the range in your configuration file.

Note: The minimum allowable size of your port range will depend on your server installation and how many services or processes you are running. As a general best practice you should not restrict the range too tightly because port assignment is done by selecting random ports within the range, and if you do not allow a large enough range, selection may fail to find an available port.

To limit the range from which available ports are chosen to those between 8300 and 8600, your configuration file would include an entry similar to this:

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

Disabling dynamic port assignment

If you need more control of port assignment than you can get through a combination of restricting port range and individually assigning ports, you can disable dynamic port mapping at initial server configuration. Disabling dynamic port mapping requires you to manually assign every port for every process, so we don't recommend this unless you need to control every single port assignment.

If you disable dynamic port mapping, you must configure the port for each process on each node of your installation.

To disable dynamic mapping, your configuration file would include an entry similar to this:

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

Important:  When you disable dynamic port assignments, the License service port range is not included. This range (27000-27009) must be open on the node running the License service and accessible from other nodes. By default, the initial node runs the License service.

Manual port assignment

You can disable automatic port assignment entirely and assign a port for each process individually. If you do this, you must assign a port for every process on every node. You can assign ports either in a configuration file, when the processes are first installed, or after installation, using a TSM command. Only ports assigned at process installation are preserved if you export your Tableau Server configuration.

You can specify individual ports for specific processes, whether or not dynamic mapping is enabled. You might do this if you want a process to use a particular port, or if you've disabled dynamic mapping. There are two ways to specify ports for processes:

  • At install, using a configuration file. This is similar to defining a non-default port range, but instead you specify a particular port for a specific service or process. If you are going to assign specific ports, this approach is the most robust way to do so because the port mapping is preserved if you export the server configuration and topology settings using the tsm settings export command.

    To define ports at installation, add information to your configuration file to specify the node (workerN), process (servicename) and instance ID (instanceid), port type (porttype), and the port to be used. The format looks like this:

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

    Where:

    • workerN is an optional parameter and identifies the node for which the remapping applies. Node numbers start with zero (0).
      We recommend you do not include this parameter unless you need to map different ports for the same service on different nodes. If you leave this parameter off, you can map a service port on the initial node, or map the same service port on multiple nodes.
    • servicename is the name of the process or service that will use the port.
    • instanceid is the instance of the process. If you are going to be configuring multiple instances of a process on one node, you would need to increment this value for each instance. Start the instanceid at zero (0) and increment it by one (1) for each instance of the process. For services that only install a single instance on any given node, this must be left off.
    • porttype If setting the primay port, do not include this option.
    • port is the port the process or service should use.

    For example, to set the port for the first instance of the file store process on the initial node to 8500, you would include a configuration file entry similar to this:

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

    The example above does not include the optional workerN parameter, so sets the port on all nodes in the cluster. It also leaves off the porttype option because it is setting the primary filestore port.

    Important: When specifying port changes with a configuration file, you must include the --force-keys parameter with the tsm settings import command.

  • After install, using the tsm topology set-ports command. This approach allows you to specify a port for a specific process after that process has been installed. You are restricted by these limits:

    • You must set ports individually, on each node.
    • The port assignments are not preserved if you need to import a Tableau Server configuration using tsm settings import.

    To set second instance of the file store on the initial node to use port 8500:

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

    Ports that are not dynamically mapped

    The Tableau Server repository uses two ports that are not dynamically mapped. These each have a default port that you can override using the tsm configuration set command and a process-specific parameter.

    Port names Port (default) Description
    pgsql.port 8060 Port for the Tableau Repository (PostgreSQL database).

    To override this port:

    tsm configuration set -k pgsql.port <port>

    pgsql.verify_restore.port 8061 Port for verifying the integrity of a repository backup.

    to override this port:

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

    Because these ports do not use the dynamic port mapping system, they do not show up in the output of the tsm topology list-ports command. To see the value of these you need to use the tsm configuration get -k <config.value> command. For example:

    tsm configuration get -k pgsql.port

    Dynamically mapped ports

    This table lists the processes or services that use dynamically mapped ports.

    Port names Description
    You must define each of these for every node if you disable dynamic port mapping.
    appzookeeper_0.client.port Coordination Service client port.
    appzookeeper_0.peer.port Coordination Service client port.
    appzookeeper_0.leader.port Coordination Service client port.
    backgrounder_0.port Backgrounder primary port.
    backgrounder_0.debug.port Backgrounder debug port.
    backgrounder_0.jmx.port Backgrounder jmx port. 
    backgrounder_0.jmx.rmi.port Backgrounder jmx rmi port.
    backgrounder_0.recommendations.trainer.port Backgrounder recommendations port.
    backuprestore.port Backup/Restore service port.
    cacheserver_0.port Cache server port.
    clustercontroller.status.port Cluster Controller status port.
    clustercontroller.storage.port Cluster Controller storate port.
    databasemaintenance.port Database Maintenance port.
    dataserver_0.port Data server primary port.
    dataserver_0.debug.port Data server debug port.
    dataserver_0.jmx.port Data server jmx port.
    dataserver_0.jmx.rmi.port Data server jmx rmi port.
    filestore.port File store primary port.
    filestore.status.port File Store status port.
    gateway.port Gateway port. This defaults to 80, and if that is not available, to 8080. If that is not available, it tries 8000. That sequence is followed whether or not dynamic port assignment is enabled or not. If none of those ports are available and dynamic mapping is enabled, it takes an available port within the defined range. The gateway port must be the same on all nodes in a multi-node cluster, so if port 80 is selected on the initial node this is the port that will be used on all nodes and if it is unavailable on one of the other nodes, gateway port selection will fail.
    hyper.port Data engine primary port.
    hyper.connection.port Data engine connection port.
    licenseservice.vendor_daemon.port License service vendor daemon port.
    samlservice.port SAML service port.
    searchserver.port Search server primary port.
    searchserver.debug.port Search server debug port.
    searchserver.jmx.port Search server jmx port.
    searchserver.jmx.rmi.port Search server jmx rmi port.
    searchserver.startup.port Search server startup port.
    siteimportexport.port Site Import/Export port.
    tabadmincontroller.port TSM Controller port.
    tabadminagent.colombo.port Administration Agent service discovery port
    tabadminagent.filetransfer.port TSM Agent file transfer port.
    vizportal_0.authentication.port Application server authentication port.
    vizportal_0.authorization.port Application server authorization port.
    vizportal_0.maintenance.port Application server maintenance port.
    vizportal_0.microservice.extensions.port Application server extensions port.
    vizportal_0.monolith_grpc.port Application server GRPC port.
    vizportal_0.publishing.port Application server publishing port.
    vizportal_0.recommendations.port Application server recommendations port.
    vizportal_0.port Application server primary port.
    vizportal_0.debug.port Application server debug port.
    vizportal_0.jmx.port Application server jmx port.
    vizportal_0.jmx.rmi.port Application server jmx rmi port.
    vizqlserver_0.port VizQL server primary port.
    vizqlserver_0.debug.port VizQL server debug port.
    vizqlserver_0.jmx.port VizQL server jmx port.
    vizqlserver_0.jmx.rmi.port VizQL server jmx rmi port.