Instalar Bridge para Linux para contenedores

Bridge para Linux proporciona escalabilidad y capacidades de administración optimizadas de cargas de trabajo en contenedores.Las siguientes instrucciones describen una forma sencilla de ejecutar Bridge para Linux y suponen que usted posee conocimientos básicos de Docker y los términos clave que se utilizan en el ecosistema.

Instalar y ejecutar Bridge desde un contenedor Docker

Para usar Bridge en Linux, debe crear una imagen de Docker personalizada, instalar el paquete RPM y luego ejecutar Bridge desde dentro de la imagen del contenedor.

Notas de instalación:

Requisitos previos

Paso 1: Crear una imagen de contenedor Bridge

Los siguientes pasos son las instrucciones básicas para crear una imagen base de Bridge en Linux.Para obtener más información, consulte Descripción general de Docker.

Cuando se instala Docker, el único usuario con permiso para ejecutar comandos es la raíz.Puede ejecutar comandos de Docker con sudo o por un usuario que sea miembro del grupo Docker.

Importante Las imágenes base variarán según los diferentes controladores y plataformas.Los siguientes ejemplos pretenden ilustrar el proceso de creación de una imagen base.Debe adaptar el proceso de compilación a su entorno particular.

  1. Descargue el paquete .rpm de Bridge de la página Descargas(El enlace se abre en una ventana nueva) del sitio web de Tableau.
  2. (Opcional) Puede editar los ajustes de configuración para cambiar cómo se ejecutará el cliente.Consulte el artículo Cambiar la configuración del cliente de Bridge para obtener más información.
  3. Cree un directorio de trabajo y mueva el paquete .rpm al directorio.

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. Cree un archivo de Docker en el directorio de trabajo.Por ejemplo:

    $ touch Dockerfile

  5. Edite el archivo Docker y agregue los comandos para ejecutar yum update.

    Ejemplo de Red Hat

    Para Red Hat 8:

    FROM registry.access.redhat.com/ubi8/ubi:latest

    RUN yum -y update

  6. Edite el archivo Docker y luego escriba los comandos para copiar, instalar y eliminar el paquete RPM de Bridge de la imagen:

    • Opción 1: utilice --mount, por ejemplo:
      FROM registry.access.redhat.com/ubi8/ubi:latest
      RUN --mount=type=bind,source=<your_bridge_rpm>.rpm,target=/tmp/bridge.rpm \
       set -eux; \
       yum -y update; \
       ACCEPT_EULA=y yum install -y /tmp/bridge.rpm; \
       yum -y clean all; \
       rm -rf /var/cache/yum
    • Opción 2: Descargar el rpm directamente, por ejemplo:
      FROM registry.access.redhat.com/ubi8/ubi:latest
      RUN set -eux; \
       yum -y update; \
       curl -fsSL https://repo.example.com/bridge.rpm -o /tmp/bridge.rpm; \
       ACCEPT_EULA=y yum install -y /tmp/bridge.rpm; \
       rm -f /tmp/bridge.rpm; \
       yum -y clean all; \
       rm -rf /var/cache/yum
  7. Cree una nueva imagen de contenedor usando el comando de compilación de docker.

    Por ejemplo, el siguiente comando crea una imagen en el directorio actual y la etiqueta con la palabra ​"bridge_base".

    docker buildx build --platform=linux/amd64 -t bridge_base .

  8. Compruebe que la imagen base que creó se muestre en la lista de imágenes:

    docker images | grep bridge

Paso 2: Instalar los controladores

El cliente Bridge requiere controladores para facilitar la conectividad entre los datos de la red privada y Tableau Cloud.Para ver los controladores, vaya a Descarga de controladores, seleccione la fuente de datos y luego seleccione Linux como sistema operativo.

  1. La instalación se puede realizar de forma interactiva después de iniciar la imagen base, o se pueden escribir Dockerfiles separados como una capa por encima de la imagen base.

    Ejemplo

    Con el RPM del controlador MySQL copiado en el directorio, puede crear un directorio de trabajo separado para colocar capas de controladores MySQL mediante el siguiente Dockerfile:

    # Using previously built bridge_base image

    FROM bridge_base

    COPY mysql-connector-odbc-8.0.26-1.el8.x86_64.rpm

    RUN yum install -y mysql-connector-odbc-8.0.26-1.el8.x86_64.rpm

    Nota: Un requisito para los controladores MySQL y MySQL de Amazon Aurora es establecer la configuración regional e instalar langpacks en la imagen:
    Ejemplo:
    RUN yum install -y glibc-langpack-en
    ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

    Ejemplo

    Instale un controlador JDBC Postgres.Esto también se puede hacer en un Dockerfile separado.

    # Using previously built bridge_base image

    FROM bridge_base

    COPY postgresql-42.3.3.jar /opt/tableau/tableau_driver/jdbc/

    Ejemplo

    Instale el controlador de Amazon Redshift.

    # Using previously built bridge_base image

    FROM bridge_base

    yum install -y unixODBC

    yum --nogpgcheck localinstall -y

    AmazonRedshiftODBC-64-bit-2.1.7.0.x86_64.rpm

    odbcinst -i -d -f /opt/amazon/redshiftodbcx64/odbcinst.ini

  2. Cree una nueva imagen:
  3. docker image build -t bridge_final .

    La imagen bridge_final utiliza la imagen almacenada en caché del paso anterior y automatiza la instalación del controlador para todas sus instancias de Bridge.Si tiene un repositorio de imágenes, puede publicar la imagen en el repositorio y distribuirla a todos los equipos en los que desea ejecutar Bridge.

Paso 3: Instalar los paquetes de idioma y establecer la configuración regional en Docker

  1. Instale paquetes de idiomas en los contenedores de Docker:

    RUN yum install -y glibc-langpack-en

  2. Configure la configuración regional en Docker usando ENV LC_ALL en_US.UTF-8.También puede establecer la configuración regional agregando lo siguiente al archivo /etc/profile:

    export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

Nota: Si su host de Bridge se va a conectar a un recurso compartido de la red remoto para extracciones basadas en archivos (Excel, CSV), consulte Configurar actualizaciones de extracción basadas en archivos para archivos compartidos (opcional).

Paso 4: Ejecutar el contenedor Bridge

Ahora que tiene una imagen base creada, puede implementarla utilizando diversos métodos.Los pasos básicos son:

  1. Creación de tokens
  2. Inicie la instancia del contenedor Bridge.
  3. Asigne el agente a un grupo.

Creación de tokens

Antes de comenzar a implementar el contenedor, cree un Token de acceso personal (PAT) o un Token de acceso unificado(El enlace se abre en una ventana nueva) (UAT).Se requiere el PAT o UAT para iniciar sesión en el agente.

Consideraciones y requisitos:

  • Tableau Cloud admite 104 PAT por usuario.Recomendamos utilizar un PAT o UAT por cliente.

  • Los siguientes nombres de token deben coincidir: patTokenId o jwTokenFile (utilizado al ejecutar el comando run-bridge.sh), el nombre del token del archivo JSON y el nombre del token indicado al generar el token.

  • Si usa una UAT, debe incluir los ámbitos de OAuth requeridos: "tableau:remote_agents:*", "tableau: jobs:read", "tableau:file_uploads:*", "tableau:datasources:*"

Instancia de inicio

El método interactivo de este procedimiento ilustra los pasos necesarios para iniciar el trabajador.Al salir, el contenedor deja de funcionar.

  • Ejecute este comando para pasar al símbolo del sistema del shell del contenedor como root.

    docker container run -it bridge_final /bin/bash

El resto de comandos se ejecutan en el contexto de esta sesión interactiva del contenedor.

  1. Agregue el token PAT o UAT a un archivo plano en formato JSON.Por ejemplo: /home/jSmith/Documents/MyTokenFile.txt
  2. Ejemplo de sintaxis de token:

    {"MyToken" : "uLICC7e8SUS8ZNGe8RIFn4u==:lRihmYHI0XBKle7e8S4uSORXGqAkAl4"}

  3. Cambie los permisos del archivo para restringir el acceso al usuario actual.Por ejemplo: chmod 600 MyTokenFile.txt
  4. Inicie una instancia del contenedor Bridge ejecutando el comando run-bridge.sh.El proceso difiere según el tipo de token que esté utilizando:

    Ejemplo de comando PAT

    /opt/tableau/tableau_bridge/bin/run-bridge.sh -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

    Ejemplo de comando UAT

    /opt/tableau/tableau_bridge/bin/run-bridge.sh -e --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --jwTokenFile="jwTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"
    Parámetros de run-bridge.sh
    Parámetros globales
    --client(Obligatorio) El nombre que quiere darle al trabajador.
    --site(Obligatorio) El nombre de sitio como aparece en la URI.No incluya la ruta URI.
    --userEmail(Obligatorio) Correo electrónico del usuario asociado al token.
    -e(Opcional) De forma predeterminada, el trabajador del cliente Bridge se ejecuta como un servicio en segundo plano.Para ejecutar el trabajador en primer plano, incluya el argumento -e.
    --poolId(Opcional) ID del grupo asignado al cliente.Consulte Usar un ID de grupo.

    PAT: parámetros obligatorios
    --patTokenIdEl ID del PAT.Consulte Tokens de acceso personal para más información.
    --patTokenFileNombre de archivo y ruta al archivo de texto PAT.

    UAT: parámetro obligatorio
    --jwTokenFileNombre de archivo y ruta al archivo de texto UAT.

Nota: Si está instalando versiones anteriores de Bridge para Linux, debe ejecutar un comando diferente para iniciar el nodo de trabajo.Para las versiones 2024.2 y anteriores, inicie el nodo de trabajo con el comando TabBridgeClientWorker (no el comando run-bridge.sh).Todas las opciones de comando son las mismas.

Agente iniciado

El siguiente mensaje indica que el agente se ha iniciado. “Service started: ...”

Detener al trabajador

Use Control-C para detener al trabajador.En lugar de reiniciar el trabajador, puede iniciar un nuevo trabajador para la imagen del contenedor.

Asignación de grupo predeterminada

Si no ha asignado un grupo con la opción de comando --poolId, el cliente se asigna al grupo predeterminado.Si desea utilizar el cliente con dominios específicos o VConns, puede asignar el cliente a un grupo con nombre mediante la interfaz de usuario.El menú para hacerlo en Tableau Cloud es Inicio > Configuración > Bridge.Para obtener más información, consulte Configurar la agrupación de clientes de Bridge.

Usar un ID de grupo

Al iniciar el trabajador Bridge con el comando run-bridge.sh, poolId es opcional.Sin embargo, el comportamiento del cliente depende de si está registrado en un sitio y de si está asignado a un grupo.Tableau Bridge solo puede conectarse o registrarse en un sitio de Tableau Cloud en un momento dado.El cliente queda registrado en un sitio cuando cierra la sesión y vuelve a iniciarla.

Si no se proporciona un ID de grupo

  • Si el cliente Bridge ha sido registrado, el estado del cliente sigue siendo el mismo:
    • Si el cliente está asignado a un grupo, permanece asignado al grupo, independientemente de si es un grupo con nombre o un grupo predeterminado.
    • Si el cliente no está asignado a un grupo, permanecerá sin asignar.
  • Si el cliente Bridge es nuevo (nunca inició sesión en Tableau Cloud), el cliente se asigna al grupo predeterminado.

Si se proporciona un ID de grupo

  • Si el ID del grupo se proporciona y es correcto, el cliente Bridge se asigna al grupo nombrado.
  • Si el ID del grupo se proporciona y es incorrecto:
    • Si el cliente Bridge no está registrado, entonces el cliente se asigna al grupo predeterminado.
    • Si el cliente Bridge está registrado, el estado del cliente sigue siendo el mismo, independientemente del grupo con nombre, el grupo predeterminado o no asignado.

Encontrar el ID del grupo

Para encontrar el ID del grupo, vaya a la página Configuración > Bridge y haga clic en el nombre del grupo.Por ejemplo:

Actualización de Bridge para el cliente Linux

Contar con la versión más reciente de Bridge le permite aprovechar las últimas funciones y correcciones incluidas en cada nueva versión del cliente de Bridge.

No puede ejecutar una actualización in situ para el contenedor.En su lugar, debe crear una nueva imagen de contenedor con los archivos binarios de Bridge más recientes y, a continuación, agregar el cliente de Bridge al grupo en paralelo con la versión anterior.Después de validar la funcionalidad, elimine el cliente Bridge anterior. Siga estos pasos:

  1. Instale y configure el nuevo cliente de Tableau Bridge como se documenta en las secciones anteriores.

  2. Agregue el nuevo cliente Bridge al grupo correspondiente.Consulte Configurar agrupaciones.

  3. Supervise el estado de los trabajos de Bridge para validar la estabilidad antes de continuar con el siguiente paso.

  4. Elimine los clientes de Bridge anteriores de la agrupación.Abra el grupo, identifique el equipo cliente que se eliminará y haga clic en Eliminar.

  5. Espere a que finalice el proceso de tiempo de espera de actualización de extracción en el cliente Bridge.El valor predeterminado es de 24 horas.Para obtener más información, consulte dataSourceRefreshSettings.

  6. Una vez transcurrido el período de tiempo de actualización, puede eliminar la instancia anterior del cliente Bridge.

Configurar actualizaciones de extracción basadas en archivos para archivos compartidos (opcional)

Nota: Complete estos pasos solo si su contenedor de Tableau Bridge en Linux necesita actualizar extracciones de fuentes de datos compartidas basadas en archivos (como archivos Excel o .csv ubicados en recursos compartidos de la red).

Esta configuración gestiona tanto las fuentes de datos publicadas (PDS) como las fuentes de datos insertadas (EDS).Aunque Tableau Cloud utiliza archivos de mapeo UNC para traducir rutas de red (\\fileserver\share\data.xlsx) para PDS, los contenedores Linux requieren enlaces simbólicos de directorio adicionales dentro del contenedor para gestionar las actualizaciones de EDS, que llegan al sistema de archivos del contenedor como rutas literales (/fileserver/share/data.xlsx).

Paso 1: Montar el recurso compartido en el equipo host

Monte el recurso compartido de archivos remoto en /mnt/remotes (directorio principal recomendado por Tableau):

sudo mkdir -p /mnt/remotes/<share-leaf>
sudo mount -t cifs //<fileserver>/<share> /mnt/remotes/<share-leaf> \
-o <auth-options-appropriate-to-your-file-server>

Haga permanente este montaje en /etc/fstab para que se vuelva a montar automáticamente al reiniciar el sistema.Confirme el acceso ejecutando ls/mnt/remotes/<share-leaf>.

Paso 2: Crear el archivo de mapa UNC

Cree un archivo de mapeo en /mnt/remotes/uncmap usando barras diagonales delimitadas por dos puntos.Incluya entradas tanto para nombres de host completos como simples:

//<fileserver.example.com>/<share>:/mnt/remotes/<share-leaf>

//<fileserver>/<share>:/mnt/remotes/<share-leaf>

Paso 3: Iniciar el contenedor Bridge

Ejecute el contenedor utilizando el montaje de enlace y la variable de entorno:

docker run -d \
--mount type=bind,source=/mnt/remotes,target=/mnt/remotes \
-e TABLEAU_BRIDGE_UNC_MAP_OVERRIDE=/mnt/remotes/uncmap \
... <your other Bridge flags> ... \
<bridge-image>

Paso 4: Añadir enlaces simbólicos dentro del contenedor

Añada enlaces simbólicos para que la ruta UNC literal se resuelva correctamente.Esto es necesario para actualizar EDS en Linux.Extienda el Dockerfile de Bridge de la siguiente manera:

FROM <tableau-bridge-image>:<version>

# Make the literal UNC path resolvable at the filesystem level.
# Add one symlink per case variant your workbooks embed
# (Linux is case-sensitive; Windows-authored workbooks may embed either).
RUN mkdir -p /<fileserver>/<share-parent> \
&& ln -sf /mnt/remotes/<share-leaf> /<fileserver>/<share-parent>/<share-leaf>
&& ln -sf /mnt/remotes/<share-leaf> /<fileserver>/<share-parent>/<Share-Leaf-CapCase>

Nota: Si reconstruir la imagen del contenedor no es una opción, ejecute los comandos mkdir y ln -sf dentro del contenedor en ejecución mediante docker exec después de cada inicio del contenedor.4.

Paso 5: Seguir los flujos de trabajo de publicación necesarios en Tableau Desktop

Asegúrese de que los libros de trabajo y las fuentes de datos cumplan estos requisitos previos de publicación:

  • Usar rutas UNC: conéctese y publique siempre mediante una ruta UNC (por ejemplo, \\<fileserver>\<share>\<file>.xlsx).No utilice letras de unidad asignadas (Z:\) ni rutas locales (C:\).

  • Desmarcar archivos externos: Desmarque la casilla de verificación Incluir archivos externos en Tableau Desktop antes de publicar.

  • Asignar a un grupo configurado: asigne su cliente de Bridge a un grupo de clientes configurado.El grupo predeterminado no admite actualizaciones de fuentes de datos insertadas.Asigne el grupo al dominio de su recurso compartido de archivos.

Solucionar problemas de actualizaciones basadas en archivos

Consulte la siguiente tabla para resolver problemas con las actualizaciones basadas en archivos:

SíntomaCausa probableComprobación recomendada
PDS se realiza correctamente, pero EDS falla a los 0 ms con NOT_FOUNDLa ruta UNC literal no se puede resolver dentro del sistema de archivos del contenedor.Verifique la creación de enlaces simbólicos dentro del contenedor (consulte Paso 4: Añadir enlaces simbólicos dentro del contenedor).
EDS falla y el cliente de Bridge está en el grupo predeterminadoEl grupo predeterminado no admite EDSMueva el cliente a un grupo configurado.

Tanto PDS como EDS fallan

El montaje del host está dañado o el usuario de montaje no puede leer los archivos

Ejecute ls /mnt/remotes/<share-leaf> desde el host.

Solución de problemas

Instalación de versiones anteriores

Si está instalando versiones anteriores de Bridge para Linux, debe ejecutar un comando diferente para iniciar el nodo de trabajo.Para las versiones 2024.2 y anteriores, inicie el nodo de trabajo con el comando TabBridgeClientWorker (no el comando run-bridge.sh).

Todas las opciones de comando son las mismas que las documentadas anteriormente en Paso 4: Ejecutar el contenedor Bridge.

Por ejemplo: 

/opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

Error de inicio del trabajador

En algunos casos, se mostrará el siguiente error después de ejecutar el comando run-bridge.sh:

Missing log in parameters. Aborting the attempt to start service worker.

En la mayoría de los casos, volver a ejecutar el comando con las opciones originales y la opción -e soluciona el problema.La opción -e ejecuta el servicio de trabajador de Bridge en primer plano.

Si está ejecutando el cliente de Bridge en segundo plano y ve un error de inicio, verifique que todos los parámetros de entrada incluyan rutas a los archivos requeridos.Por ejemplo, en el modo de fondo, no se proporciona el contexto de usuario para resolver una ruta al archivo de token.

Trabajar con archivos de registro

Los archivos de registro se almacenan en la carpeta del usuario My_Tableau_Bridge_Repository/Logs.Para guardar los registros en una carpeta tmp , ejecute el siguiente comando:

docker container run --volume /tmp/bridge_logs:/root/Documents/My_Tableau_Bridge_Repository/Logs -it bridge_final /bin/bash

En este ejemplo, la ubicación se especifica por /tmp/bridge_logs.El uso del comando Docker simplifica el almacenamiento de los archivos de registro y evita tener que copiar manualmente los archivos de registros de Bridge desde el contenedor al sistema de archivos local.

El controlador MySQL falla

Si LC_MESSAGES no están configurados con la configuración regional UTF-8, es posible que experimente problemas de lectura y visualización.Puede editar el archivo /etc/profile o reiniciar el trabajador usando el siguiente comando:

LC_ALL=en_US.UTF-8 /opt/tableau/tableau_bridge/bin/run-bridge.sh -e

El cliente Bridge se detiene inesperadamente debido a la expiración del token de acceso personal

Cuando caduca un token de acceso personal (PAT), el cliente Bridge se desconectará de Tableau Cloud y puede provocar que el contenedor se cierre.Desde el cliente Bridge puede validar si su PAT ha expirado ejecutando el comando Start en primer plano.Si el PAT ha expirado, verá el siguiente error:

The client credentials are invalid. To complete the request, reset the credentials, and sign in to the Tableau Bridge client.

Si usted es el propietario original del PAT, también puede verificar si el PAT está vencido visitando Administrar la configuración de la cuenta en Tableau Cloud.Para resolver el problema, deberá generar un nuevo PAT y seguir los pasos anteriores. Paso 4: Ejecutar el contenedor Bridge.

Errores de tiempo de espera de conexión en tiempo real y extracción insertadas

La versión 24.3 de Bridge en Linux proporcionó mejoras de rendimiento significativas para extracciones y conexiones en tiempo real insertadas.Si experimenta errores de tiempo de espera en versiones anteriores, le recomendamos actualizar a una versión 24.3 de Bridge en Linux.Si esto no resuelve el problema, publique la fuente de datos por separado del libro de trabajo.

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