Puertos de Tableau Services Manager

Los procesos y servicios que conforman los componentes de Tableau Services Manager (TSM) y Tableau Server en Windows utilizan varios puertos para comunicarse. De manera predeterminada, la mayoría de estos puertos se asignan (mapean) dinámicamente a partir de un rango predefinido de puertos. Las asignaciones de puertos se realizan por cada servicio o proceso cuando estos se instalan. Los puertos que se usan se pueden controlar de varias formas.

Existe un pequeño subconjunto de procesos que no utilizan el mapeo de puertos dinámico y se comportan de forma distinta. Para obtener más información, consulte Puertos que no se asignan dinámicamente más abajo.

Nota: Esta operación está formada por pasos que tal vez deba seguir con la línea de comandos de TSM. Para usar la interfaz de línea de comandos de TSM, necesita acceso de administrador a la línea de comandos en uno de los nodos de su instalación y las credenciales de administrador de TSM para ejecutar comandos de TSM.

Uso efímero del puerto

Si su sistema operativo está configurado para usar puertos efímeros, su tráfico de Tableau puede enrutarse a través de estos, incluso cuando esté configurado como se describe a continuación. Esto sucede a nivel del sistema operativo y no es algo que pueda configurar en Tableau. Si desea controlar el uso del puerto, consulte la documentación de su sistema operativo sobre cómo limitar el uso del puerto efímero.

Requisitos de firewall

Si ejecuta un firewall en el equipo en el que va a instalar Tableau Server, deberá abrir los siguientes puertos predeterminados para el tráfico de Tableau Server. Se pueden cambiar los números de todos los puertos, excepto el 443.

PuertoTCP/UDPUtilizado por ...TIPO DE INSTALACIÓN
Todos

Distribuido/alta disponibilidad

80TCPPuerta de enlaceX 
443TCPSSL. Cuando Tableau Server está configurado para SSL, el servidor de aplicaciones redirige las solicitudes a este puerto. No cambie este puerto.X 
8850TCPTableau Services Manager.X 
8060TCPBase de datos PostgreSQL.X 
8061TCPPuerto de verificación de la copia de seguridad de PostgreSQLX 
8000-9000TCPIntervalo de puertos reservados de forma predeterminada para la asignación dinámica de procesos Tableau X
27000-27009TCPIntervalo de puertos usados por Tableau Server para el servicio de licencia. Este intervalo debe estar abierto en el nodo que ejecuta el servicio de licencias y ser accesible desde otros nodos. De forma predeterminada, el nodo inicial ejecuta el servicio de licencias.X 

Asignación de puertos

Para la asignación o el mapeo de puertos en TSM, se pueden usar dos métodos:

  • Asignación dinámica de puertos. Es el predeterminado y requiere una intervención mínima por parte del administrador.
  • Asignación manual de puertos. Esta opción exige que un administrador asigne individualmente cada puerto.

Si cambia las asignaciones de puerto y está ejecutando un firewall local, consulte Configuración del firewall local.

Asignación dinámica de puertos

Puede controlar qué puertos se usan cambiando el rango de puertos disponibles para el proceso de asignación dinámica. De esta forma, la asignación dinámica de puertos se efectúa restringiendo los puertos que se pueden elegir. En este tipo de asignación, puede elegir asignar puertos a ciertos procesos de forma manual. Este método permite asignar puertos determinados a procesos concretos y dejar que los otros se asignen de forma dinámica. Usar el mapeo dinámico, asignando o no algunos puertos de forma individual, es el método más sencillo y, por lo general, cumple los requisitos de la mayoría de los clientes. Los puertos asignados de forma dinámica se conservan al exportar la configuración de Tableau Server.

De forma predeterminada, los puertos se asignan a cada servicio o proceso de los que hay disponibles entre el 8000 y el 9000. Esta asignación se lleva a cabo la primera vez que los servicios se instalan en un nodo. Cuando Tableau Server se inicializa, puede ver qué servicios o procesos usan qué puertos ejecutando este comando:

tsm topology list-ports

Si tiene un clúster de varios nodos, se muestran los puertos de todos ellos.

Cambiar el rango de puertos

Para organizaciones que tienen requisitos específicos en cuanto al uso de puertos, la forma más fácil de controlar esto consiste en cambiar el rango desde el que los puertos se seleccionan de forma dinámica. Esto se debe hacer en el momento de la instalación especificando los puertos mínimo y máximo del rango en el archivo de configuración.

Nota: el tamaño mínimo permitido del rango de puertos depende de su instalación de servidor y de la cantidad de servicios y procesos que ejecute. Como práctica recomendada general, no se debe restringir el rango demasiado, ya que la asignación de puertos se efectúa seleccionando puertos aleatorios dentro del rango y, si este no es lo bastante amplio, es posible que no se encuentre un puerto disponible para seleccionar.

Si desea que solo se elijan los puertos disponibles en el rango del 8300 al 8600, el archivo de configuración incluiría una entrada parecida a esta:

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

Bloqueo de puertos específicos dentro del intervalo

A partir de la versión 2021.1.0, puede especificar determinados puertos que están dentro del intervalo asignado dinámicamente, pero que Tableau no debe utilizar. Esto es útil si tiene otro software en los equipos de Tableau Server que dependen de puertos dentro del intervalo que Tableau utiliza.

Para especificar puertos dentro del intervalo que TSM y Tableau Server no deben utilizar, utilice la clave de configuración ports.blocklist:

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

Por ejemplo:

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

Deshabilitar la asignación dinámica de puertos

Si necesita más control sobre la asignación de puertos del que ofrece la combinación de restringir el rango de puertos y asignar puertos individualmente, puede deshabilitar el mapeo dinámico de puertos en el momento de la configuración inicial del servidor. Al deshabilitar el mapeo dinámico de puertos, hay que asignar manualmente los puertos a todos los procesos, por eso solo recomendamos este método cuando se necesita controlar absolutamente todas las asignaciones de puertos.

Si deshabilita el mapeo dinámico de puertos, debe configurar el puerto de cada proceso que haya en cada nodo de la instalación.

Para deshabilitar el mapeo dinámico, el archivo de configuración debería incluir una entrada parecida a esta:

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

Importante: Al deshabilitar la asignación dinámica de puertos, no se incluye el rango de puertos del servicio de licencias. Este rango (27000-27009) debe estar abierto en el nodo que ejecuta el servicio de licencias y debe ser accesible desde el resto de nodos. De forma predeterminada, el nodo inicial ejecuta el servicio de licencias.

Asignación manual de puertos

Puede deshabilitar completamente la asignación automática de puertos y asignar un puerto a cada proceso por separado. Si lo hace, tiene que asignar un puerto a cada uno de los procesos de todos los nodos. Puede asignar puertos, bien en un archivo de configuración (cuando se instalan los procesos), bien después de la instalación usando un comando de TSM. Solo los puertos asignados durante la instalación del proceso se conservan al exportar la configuración de Tableau Server.

Puede especificar puertos concretos para procesos determinados independientemente de si el mapeo dinámico está habilitado o no. Puede hacer esto si quiere que un proceso utilice un puerto determinado o si ha deshabilitado el mapeo dinámico. Hay dos formas de especificar puertos para los procesos: durante la instalación o después de la instalación.

Configurar puertos durante la instalación

Se recomienda configurar la asignación de puertos durante el proceso de instalación según los pasos descritos aquí. Cambiar puertos después de la instalación es un proceso mucho más laborioso.

Para configurar puertos durante la instalación, cree un archivo json que especifique la configuración del puerto. Este proceso es similar al de definir un rango de puertos no predeterminado, pero aquí lo que se especifica es un puerto particular para un servicio o proceso específicos. Si va a asignar puertos concretos, este método es la mejor forma de hacerlo, ya que el mapeo de puertos se conserva al exportar la configuración del servidor y los ajustes de topología usando el comando tsm settings export.

Para definir los puertos durante la instalación, añada información al archivo de configuración para especificar el nodo (workerN), el proceso (servicename) y el identificador de instancia (instanceid), el tipo de puerto (porttype) y el puerto que se usará. El formato es parecido al siguiente:

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

Donde:

  • workerN  es un parámetro opcional e identifica el nodo para el que se aplica la reasignación. Los números de nodo empiezan por cero (0).
    Le recomendamos que no incluya este parámetro a menos que necesite asignar puertos diferentes al mismo servicio en distintos nodos. Si lo deja desactivado, puede asignar un puerto de servicio en el nodo inicial o el mismo puerto de servicio en varios nodos.
  • servicename es el nombre del proceso o servicio que usarán el puerto.
  • instanceid es la instancia del proceso. Si va a configurar varias instancias de un proceso en un nodo, tiene que aumentar este valor en cada instancia. El primer ID de instancia debe empezar en cero (0) y los siguientes se deben aumentar en una unidad (1) en cada instancia del proceso. En el caso de los servicios que solo instalan una instancia en un nodo determinado, este se debe dejar desactivado.
  • porttype Si define el puerto primario, no incluya esta opción.
  • port es el puerto que el proceso o servicio deben emplear.

Por ejemplo, si quiere definir el puerto para la primera instancia del proceso del almacén de archivos que hay en el nodo inicial en 8500, tiene que incluir una entrada de archivo de configuración como esta:

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

El ejemplo anterior no incluye el parámetro opcional workerN, por lo que el puerto se establece en todos los nodos del clúster. También deja desactivada la opción porttype porque define el puerto primario del almacén de archivos.

Importante: Al especificar cambios de puertos con un archivo de configuración, debe incluir el parámetro --force-keys con el comando tsm settings import.

Configurar puertos después de la instalación

Si necesita cambiar puertos después de instalar Tableau Server, use el comando tsm topology set-ports. Este método permite especificar un puerto para un proceso determinado después de haberlo instalado. Debe atenerse a las restricciones siguientes:

  • Los puertos se han de definir por separado en cada nodo.
  • Después de establecer un puerto individual, debe ejecutar tsm restart.
  • Las asignaciones de puerto no se conservan al importar una configuración de Tableau Server mediante tsm settings import.
  • Los nombres de puerto usan una sintaxis diferente para comandos tsm que la requerida para configKeys. La tabla que aparece al final de este apartado proporciona una referencia de la sintaxis.

Por ejemplo, para configurar la segunda instancia del almacén de archivos en el nodo inicial de modo que use el puerto 8500:

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

En el ejemplo siguiente se muestra cómo usar comandos abreviados para establecer los puertos 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

Nota: Las entradas de puertos no se validan cuando se introducen. Por tanto, si usa un puerto ya asignado, o si escribe incorrectamente la sintaxis de un comando, Tableau no mostrará un error hasta que reinicie. Después del reinicio, podría aparecer el error genérico The reconfigure async job failed (Error al reconfigurar el trabajo asíncrono).

Si añade un valor incorrecto de portname:type con un puerto válido, no podrá eliminar la entrada incorrecta. Para actualizar el puerto, deberá reasignar un puerto no utilizado a ese valor para liberar el puerto.

Puertos que no se asignan dinámicamente

El repositorio de Tableau Server usa dos puertos que no se asignan dinámicamente. Cada uno de ellos tiene un puerto predeterminado que se puede anular por medio del comando tsm configuration set y un parámetro de proceso.

Nombres de los puertosPuerto (predeterminado)Descripción
pgsql.port8060Puerto para el repositorio de Tableau (base de datos PostgreSQL).

Para anular este puerto:

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

pgsql.verify_restore.port8061Puerto para verificar la integridad de un respaldo del repositorio.

Para anular este puerto:

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

Dado que estos puertos no utilizan el sistema de mapeo dinámico de puertos, no se muestran en el resultado del comando tsm topology list-ports. Para ver el valor de estos, tiene que usar el comando tsm configuration get -k <config.value>. Por ejemplo:

tsm configuration get -k pgsql.port

Puertos asignados dinámicamente

En la tabla siguiente se indican los procesos o servicios que usan puertos asignados dinámicamente.

Nombres de puerto: sintaxis del archivo json (configKeys)Nombres de puerto: sintaxis de la interfaz de línea de comandos tsm Descripción
activemqserver.portactivemqserver:primaryPuerto de servicio del servicio ActiveMQ.
activemqserver.openwire.portactivemqserver:openwirePuerto OpenWire del servicio ActiveMQ.
appzookeeper_0.client.portappzookeeper:clientPuerto del cliente del Servicio de coordinación.
appzookeeper_0.peer.portappzookeeper:peerPuerto del par del Servicio de coordinación.
appzookeeper_0.leader.portappzookeeper:leaderPuerto del líder del Servicio de coordinación.
backgrounder_0.portbackgrounderPuerto primario del procesador en segundo plano.
backgrounder_0.debug.portbackgrounder:debugPuerto de depuración del procesador en segundo plano.
backgrounder_0.jmx.portbackgrounder:jmxPuerto JMX del procesador en segundo plano. 
backgrounder_0.jmx.rmi.portbackgrounder:jmx.rmiPuerto JMX RMI del procesador en segundo plano.
backgrounder_0.recommendations.trainer.portbackgrounder:recommendations.trainerPuerto de recomendaciones del procesador en segundo plano.
backuprestore.portbackuprestorePuerto del servicio de respaldo/restauración.
cacheserver_0.portcacheserverPuerto de servidor de caché.
clustercontroller.status.portclustercontroller:statusPuerto de estado del controlador de clúster.
clustercontroller.storage.portclustercontroller:storagePuerto de almacenamiento del controlador de clúster.
databasemaintenance.portdatabasemaintenancePuerto de mantenimiento de la base de datos.
dataserver_0.portdataserverPuerto primario del servidor de datos.
dataserver_0.debug.portdataserver:debugPuerto de depuración del servidor de datos.
dataserver_0.jmx.portdataserver:jmxPuerto JMX del servidor de datos.
dataserver_0.jmx.rmi.portdataserver:jmx.rmiPuerto JMX RMI del servidor de datos.
filestore.portfilestorePuerto primario del almacén de archivos.
filestore.status.portfilestore:statusPuerto de estado del almacén de archivos.
gateway.portgatewayPuerto de la puerta de enlace. El predeterminado es el 80; si este no se encuentra disponible, es el 8080. Si este tampoco lo está, se prueba el 8000. Esta secuencia se sigue independientemente de que la asignación dinámica de puertos esté habilitada o no. Si ninguno de esos puertos se encuentra disponible y el mapeo dinámico está habilitado, se usa un puerto del rango definido. El puerto de la puerta de enlace debe ser el mismo en todos los nodos de un clúster que tenga varios. Así, si se selecciona el puerto 80 en el nodo inicial, este es el que se usará en todos los nodos; si no está disponible en alguno de los otros nodos, se producirá un error en la selección del puerto de la puerta de enlace.
hyper.porthyperPuerto primario del motor de datos.
hyper.connection.porthyper:connectionPuerto de conexión del motor de datos.
indexandsearchserver.portindexandsearchserverPuerto primario de Elastic Server.
indexandsearchserver.transport.portindexandsearchserver:transportPuerto de transporte de Elastic Server.
licenseservice.vendor_daemon.portlicenseservice:vendor_daemonPuerto del demonio del proveedor del servicio de licencias. Se utiliza para las comunicaciones relacionadas con licencias entre los nodos de una instalación de varios nodos.
samlservice.portsamlservicePuerto del servicio SAML.
siteimportexport.portsiteimportexportPuerto de importación/exportación de sitios.
tabadmincontroller.porttabadmincontrollerPuerto del controlador de TSM.
tabadminagent.columbo.porttabadminagent:columboPuerto de detección del servicio del agente de administración
tabadminagent.filetransfer.porttabadminagent:filetransferPuerto de transferencia de archivos del agente de TSM.
vizportal_0.authentication.portvizportal:authenticationPuerto de autenticación del servidor de aplicaciones.
vizportal_0.authorization.portvizportal:authorizationPuerto de autorización del servidor de aplicaciones.
vizportal_0.maintenance.portvizportal:.maintenancePuerto de mantenimiento del servidor de aplicaciones.
vizportal_0.microservice.extensions.portvizportal:.microservice:extensionsPuerto de extensiones del servidor de aplicaciones.
vizportal_0.monolith_grpc.portvizporta:monolith_grpcPuerto GRPC del servidor de aplicaciones.
vizportal_0.publishing.portvizportal:publishingPuerto de publicación del servidor de aplicaciones.
vizportal_0.recommendations.portvizportal:recommendationsPuerto de recomendaciones del servidor de aplicaciones.
vizportal_0.portvizportalPuerto primario del servidor de aplicaciones.
vizportal_0.debug.portvizportal:debugPuerto de depuración del servidor de aplicaciones.
vizportal_0.jmx.portvizportal:jmxPuerto JMX del servidor de aplicaciones.
vizportal_0.jmx.rmi.portvizportal:jmx.rmiPuerto JMX RMI del servidor de aplicaciones.
vizqlserver_0.portvizqlserverPuerto primario de VizQL Server.
vizqlserver_0.debug.portvizqlserver:debugPuerto de depuración de VizQL Server.
vizqlserver_0.jmx.portvizqlserver:jmxPuerto JMX de VizQL Server.
vizqlserver_0.jmx.rmi.portvizqlserver:jmx.rmiPuerto JMX RMI de VizQL Server.

 

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!