Instalação do Bridge para Linux para contêineres

O Bridge para Linux fornece escalabilidade e recursos de gerenciamento simplificados de cargas de trabalho em contêineres.As instruções a seguir descrevem uma maneira leve de executar o Bridge for Linux e pressupõem que você tenha conhecimento básico do Docker e dos principais termos usados no ecossistema.

Instalação e execução do Bridge em um contêiner Docker

Para usar o Bridge no Linux, você deve criar uma imagem Docker personalizada, instalar o pacote RPM e, em seguida, executar o Bridge de dentro da imagem do contêiner.

Notas de instalação:

  • Você pode implantar vários contêineres do Bridge no Linux em um único computador.
  • Soluções sem servidor com IPs dinâmicos não são aceitas.
  • As agendas herdadas do Bridge não são aceitas.Consulte Migrar do Bridge (herdado) para agendas do Online para obter mais informações.

Pré-requisitos

Etapa 1: criar uma imagem de contêiner do Bridge

As etapas a seguir são as instruções básicas para construir uma imagem base do Bridge no Linux.Para obter mais informações, consulte Visão geral do docker.

Quando o Docker é instalado, o único usuário com permissão para executar comandos é root.Você pode executar comandos do Docker com sudo ou por um usuário que seja membro do grupo docker.

Importante As imagens base variam de acordo com os diferentes drivers e plataformas.Os exemplos a seguir destinam-se a ilustrar o processo de criação de uma imagem base.Você deve adaptar o processo de criação para seu ambiente específico.

  1. Baixe o pacote do Bridge .rpm na página Downloads(O link é aberto em uma nova janela) do site do Tableau.
  2. (Opcional) Você pode editar as definições de configuração para alterar a forma como o cliente será executado.Consulte Alterar as configurações do cliente Bridge para obter mais informações.
  3. Crie um diretório de trabalho e mova o pacote .rpm no diretório.

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. Criar um arquivo Docker no diretório de trabalho.Por exemplo:

    $ touch Dockerfile

  5. Edite o arquivo Docker e adicione os comandos para executar yum update.

    Exemplo do Red Hat

    Para Red Hat 8:

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

    RUN yum -y update

  6. Edite o arquivo Docker e insira os comandos para copiar, instalar e remover o pacote RPM da ponte da imagem:

    • Opção 1: use --mount, por exemplo:
      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
    • Opção 2: baixe o rpm diretamente>, por exemplo:
      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. Crie uma nova imagem de contêiner usando o comando de build docker.

    Por exemplo, o comando a seguir cria uma imagem no diretório atual, marcando-a com a palavra ​"bridge_base":

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

  8. Verifique se a imagem base que você criou é exibida na lista de imagens:

    docker images | grep bridge

Etapa 2: instalar drivers

O cliente Bridge requer drivers para facilitar a conectividade entre os dados da rede privada e o Tableau Cloud.Para drivers, acesse Baixar driver, selecione a fonte de dados e selecione Linux para o sistema operacional.

  1. A instalação pode ser feita interativamente após o lançamento da imagem base, ou Dockerfiles separados podem ser gravados como uma camada sobre a imagem base.

    Exemplo

    Com o RPM do driver MySQL copiado para o diretório, você pode criar um diretório de trabalho separado para colocar os drivers MySQL em camadas usando o seguinte 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: os drivers MySQL e Amazon Aurora MySQL exigem que você configure a localidade e instale langpacks na imagem:
    Exemplo:
    RUN yum install -y glibc-langpack-en
    ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8

    Exemplo

    Instale um driver JDBC postgres.Isso também pode ser feito em um Dockerfile separado.

    # Using previously built bridge_base image

    FROM bridge_base

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

    Exemplo

    Instale o driver 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. Criar uma nova imagem:
  3. docker image build -t bridge_final .

    A imagem bridge_final usa a imagem em cache da etapa anterior e automatiza a instalação do driver para todas as suas instâncias do Bridge.Se você tiver um repositório de imagens, poderá publicar a imagem no repositório e distribuí-la para todas as máquinas nas quais deseja executar o Bridge.

Etapa 3: instalar pacotes de idiomas e definir a localidade no Docker

  1. Instale pacotes de idiomas nos contêineres do Docker:

    RUN yum install -y glibc-langpack-en

  2. Defina a localidade no Docker usando ENV LC_ALL en_US.UTF-8.Você também pode definir a localidade adicionando o seguinte arquivo /etc/profile:

    export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

Observação: se o host do Bridge se conectar a um compartilhamento de rede remoto para extrações baseadas em arquivo (Excel, CSV), consulte Configurar atualizações de extração baseadas em arquivo para arquivos compartilhados (opcional).

Etapa 4: execute a contêiner do Bridge

Agora que você construiu uma imagem base, pode implantá-la usando vários métodos.As etapas básicas são:

  1. Criar tokens
  2. Inicie a instância do contêiner Bridge.
  3. Atribua o agente a um pool.

Criar tokens

Antes de começar a implantar o contêiner, crie um token de acesso pessoal (PAT) ou um token de acesso unificado(O link é aberto em uma nova janela) (UAT).Um PAT ou UAT é necessário para fazer logon no agente.

Considerações e requisitos:

  • O Tableau Cloud oferece suporte a 104 PATs por usuário.Recomendamos usar um PAT ou UAT por cliente.

  • Os seguintes nomes de token devem corresponder: o patTokenId ou jwTokenFile (usado ao executar o comando run-bridge.sh), o nome do token no arquivo JSON e o nome do token que você especifica quando gera o token.

  • Se estiver usando um UAT, você deverá incluir os escopos Oauth necessários: "tableau:remote_agents:*", "tableau: jobs:read", "tableau:file_uploads:*", , "tableau:datasources:*"

Iniciar instância

O método interativo neste procedimento ilustra as etapas necessárias para iniciar o trabalho.Quando você sai, o contêiner para de funcionar.

  • Execute este comando para ir para o prompt do shell do contêiner como root:

    docker container run -it bridge_final /bin/bash

O restante dos comandos são executados no contexto desta sessão interativa do contêiner.

  1. Adicione o token PAT ou UAT a um arquivo simples no formato JSON.Por exemplo: /home/jSmith/Documents/MyTokenFile.txt
  2. Sintaxe de token de exemplo:

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

  3. Altere as permissões do arquivo para restringir o acesso ao usuário atual.Por exemplo: chmod 600 MyTokenFile.txt
  4. Para iniciar uma instância do contêiner Bridge, execute o comando run-bridge.sh.O processo difere de acordo com o tipo de token usado:

    Exemplo 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"

    Exemplo 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 run-bridge.sh
    Parâmetros globais
    --client(Obrigatório) O nome que você deseja dar ao trabalho.
    --site(Obrigatório) O nome do site conforme ele aparece no URI.Não inclua o caminho do URI.
    --userEmail(Obrigatório) E-mail do usuário associado ao token.
    -e(Opcional) Por padrão, o trabalhador do cliente Bridge é executado como um serviço em segundo plano.Para executar o trabalhador em primeiro plano, inclua o argumento -e.
    --poolId(Opcional) ID do pool atribuída ao cliente.Consulte Uso de ID do pool.

    PAT: parâmetros obrigatórios
    --patTokenIdA ID do PAT.Consulte Tokens de acesso pessoal para obter maiores informações.
    --patTokenFileNome do arquivo e caminho para o arquivo de texto PAT.

    UAT: parâmetro obrigatório
    --jwTokenFileNome do arquivo e caminho para o arquivo de texto UAT.

Observação: se você estiver instalando versões mais antigas do Bridge para Linux, será necessário executar um comando diferente para iniciar o trabalhador.Para versões 2024.2 e anteriores, inicie o trabalhador com o comando TabBridgeClientWorker (não o comando run-bridge.sh.Todas as opções de comando são as mesmas.

Agente iniciado

A mensagem a seguir indica que o agente foi iniciado. “Service started: ...”

Parar o trabalho

Use Control-C para parar o trabalhador.Em vez de reiniciar o trabalhador, você pode iniciar um novo trabalho para a imagem do contêiner.

Atribuição de pool padrão

Se você não atribuiu um pool usando a opção de comando --poolId, o cliente será designado ao pool padrão.Se quiser usar o cliente com domínios ou VConns específicos, você poderá atribuir o cliente a um pool nomeado usando a UI.O menu para isso é Página inicial > Configurações > Bridge do Tableau Cloud.Para obter mais informações, consulte Configurar o pool de clientes do Bridge

Uso de ID do pool

Ao iniciar o trabalhador do Bridge com o comando run-bridge.sh, o poolId é opcional.No entanto, o comportamento do cliente depende se o cliente está registrado em um site e se está atribuído a um pool.O Tableau Bridge só pode se conectar ou registrar-se em um site do Tableau Cloud por vez.O cliente é registrado em um site quando você faz logoff e login novamente.

Se uma ID de pool não for fornecida

  • Se o cliente Bridge tiver sido registrado, o status do cliente permanecerá o mesmo:
    • Se o cliente for atribuído a um pool, ele permanecerá atribuído ao pool, independentemente de ser um pool nomeado ou um pool padrão.
    • Se o cliente não estiver atribuído a um pool, ele permanecerá sem atribuição.
  • Se o cliente Bridge for novo (você nunca fez logon no Tableau Cloud), o cliente será atribuído ao pool padrão.

Se uma ID de pool for fornecida

  • Se a ID do pool for fornecida e estiver correta, o cliente Bridge será atribuído ao pool nomeado.
  • Se a ID do pool for fornecida e estiver incorreta:
    • Se o cliente Bridge não estiver registrado, o cliente será atribuído ao pool padrão.
    • Se o cliente Bridge estiver registrado, o status do cliente permanecerá o mesmo, independentemente do pool nomeado, pool padrão ou não atribuído.

Localização da ID do pool

Para encontrar a ID do pool, vá para a página Configurações > Bridge e clique no nome do pool.Por exemplo:

Atualizar o Bridge para cliente Linux

Manter-se sincronizado com a versão mais recente do Bridge garante que você aproveite os recursos e as correções mais recentes incluídos em cada nova versão do cliente do Bridge.

Você não pode executar uma atualização “in-loco” para o contêiner.Em vez disso, você deve criar uma nova imagem de contêiner com os binários mais recentes do Bridge e, em seguida, adicionar o cliente Bridge ao pool lado a lado com a versão anterior.Depois de validar a funcionalidade, remova o cliente do Bridge anterior. Siga estas etapas:

  1. Instale e configure o novo cliente do Tableau Bridge conforme documentado nas seções acima.

  2. Adicione o novo cliente do Bridge ao pool relevante.Consulte Configurar os pools.

  3. Monitore a integridade dos trabalhos do Bridge para validar a estabilidade antes de prosseguir para a próxima etapa.

  4. Remova o cliente do Bridge anterior do pool.Abra o pool, identifique a máquina cliente a ser removida e clique em Excluir.

  5. Aguarde o término do processo de tempo limite de atualização da extração no cliente do Bridge.O tempo limite padrão é 24 horas.Para obter mais informações, consulte dataSourceRefreshSettings.

  6. Após o período de tempo limite de atualização ter decorrido, você pode remover a instância anterior do cliente do Bridge.

Configurar atualizações de extração baseadas em arquivo para arquivos compartilhados (opcional)

Observação: conclua essas etapas somente se o contêiner do Tableau Bridge no Linux precisar atualizar extrações de fontes de dados compartilhadas baseadas em arquivo (como arquivos Excel ou CSV localizados em compartilhamentos de rede).

Essa configuração lida com fontes de dados publicadas (PDS) e fontes de dados incorporadas (EDS).Embora o Tableau Cloud use arquivos de mapeamento UNC para traduzir caminhos de rede (\\fileserver\share\data.xlsx) para PDS, os contêineres Linux exigem links simbólicos de diretório adicionais dentro do contêiner para lidar com atualizações do EDS, que chegam ao sistema de arquivos do contêiner como caminhos literais (/fileserver/share/data.xlsx).

Etapa 1: montar o compartilhamento na máquina host

Monte o compartilhamento remoto de arquivos em /mnt/remotes (diretório pai recomendado pelo 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>

Persista esta montagem em /etc/fstab para que seja remontada automaticamente após reinicializações do sistema.Confirme o acesso executando ls/mnt/remotes/<share-leaf>.

Etapa 2: criar o arquivo de mapa UNC

Crie um arquivo de mapeamento em /mnt/remotes/uncmap usando barras inclinadas delimitadas por dois-pontos.Inclua entradas para nomes de host totalmente qualificados e simples:

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

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

Etapa 3: iniciar o contêiner do Bridge

Execute o contêiner usando a montagem de vinculação e a variável de ambiente:

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>

Etapa 4: adicionar links simbólicos dentro do contêiner

Adicione links simbólicos para que o caminho UNC literal seja resolvido corretamente.Isso é necessário para atualizar o EDS no Linux.Estenda o Dockerfile do Bridge da seguinte maneira:

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>

Observação: se recriar a imagem do contêiner não for uma opção, execute os comandos mkdir e ln -sf dentro do contêiner em execução via docker exec após cada inicialização do contêiner.4.

Etapa 5: seguir os fluxos de trabalho de publicação obrigatórios no Tableau Desktop

Certifique-se de que as pastas de trabalho e fontes de dados atendam a estes pré-requisitos de publicação:

  • Usar caminhos UNC: sempre conecte e publique usando um caminho UNC (por exemplo, \\<fileserver>\<share>\<file>.xlsx).Não use letras de unidade mapeada (Z:\) ou caminhos locais (C:\).

  • Desmarcar arquivos externos: desmarque a caixa de seleção Incluir arquivos externos em Tableau Desktop antes de publicar.

  • Atribuir a um pool configurado: atribua seu cliente Bridge a um pool de clientes configurado.O pool Padrão não oferece suporte a atualizações de fontes de dados incorporadas.Mapeie o pool para o domínio do seu compartilhamento de arquivos.

Solução de problemas de atualizações baseadas em arquivo

Consulte a tabela a seguir para resolver problemas com atualizações baseadas em arquivo:

SintomaCausa provávelVerificação recomendada
O PDS é bem-sucedido, mas o EDS falha em 0 ms com NOT_FOUNDO caminho UNC literal não pode ser resolvido dentro do sistema de arquivos do contêiner.Verifique a criação do link simbólico dentro do contêiner (consulte Etapa 4: adicionar links simbólicos dentro do contêiner).
Falha no EDS e o cliente Bridge está no pool padrãoO pool padrão não oferece suporte a EDSMova o cliente para um pool configurado.

Tanto o PDS quanto o EDS falham

Montagem do host quebrada ou arquivos não legíveis pelo usuário de montagem

Execute ls /mnt/remotes/<share-leaf> a partir do host.

Solução de problemas

Instalação de versões mais antigas

Se você estiver instalando versões mais antigas do Bridge para Linux, será necessário executar um comando diferente para iniciar o trabalhador.Para versões 2024.2 e anteriores, inicie o trabalhador com o comando TabBridgeClientWorker (não o comando run-bridge.sh).

Todas as opções de comando são as mesmas documentadas acima em Etapa 4: execute a contêiner do Bridge.

Por exemplo: 

/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"

Erro de inicialização do trabalhador

Em alguns casos, o seguinte erro será exibido após a execução do comando run-bridge.sh:

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

Na maioria dos casos, executar novamente o comando com as opções originais e a opção -e corrige o problema.A opção -e executa o serviço do trabalhador Bridge Worker em primeiro plano.

Se você estiver executando o cliente Bridge no modo em segundo plano e visualizar um erro de inicialização, verifique se todos os parâmetros de entrada incluem caminhos para os arquivos necessários.Por exemplo, no modo em segundo plano, o contexto do usuário não é fornecido para resolver um caminho para o arquivo de token.

Trabalhar com arquivos de log

Os arquivos de registro são armazenados na pasta do usuário My_Tableau_Bridge_Repository/Logs.Para salvar os registros na pasta tmp , execute o comando a seguir:

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

Neste exemplo, o local é especificado por /tmp/bridge_logs.Usar o comando docker simplifica o salvamento dos arquivos de registro e evita a necessidade de copiar manualmente os arquivos de registro do Bridge do contêiner para o sistema de arquivos local.

Falha do driver MySQL

Se LC_MESSAGES não está definido com as localidades UTF-8, você poderá enfrentar problemas de leitura e exibição.Você pode editar o arquivo /etc/profile ou reiniciar o trabalhador usando o seguinte comando:

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

O Bridge Client para inesperadamente devido à expiração do Token de Acesso Pessoal

Quando um Token de Acesso Pessoal (PAT) expira, o Bridge Client é desconectado do Tableau Cloud e pode causar o desligamento do contêiner.No Bridge Client, você pode validar se seu PAT expirou executando o comando Start em primeiro plano.Se o PAT expirou, você verá o seguinte erro:

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

Se você for o proprietário original do PAT, também poderá verificar se o PAT expirou acessando Gerenciar configurações da conta no Tableau Cloud.Para resolver o problema, você precisará gerar um novo PAT e seguir os passos acima, Etapa 4: execute a contêiner do Bridge.

Erros de tempo limite de extração inserida e conexão ativa inserida

A versão 24.3 do Bridge no Linux forneceu melhorias significativas de desempenho para extrações inseridas e conexões ativas inseridas.Se você tiver erros de tempo limite em versões anteriores, recomendamos atualizar para uma versão 24.3 do Bridge no Linux.Se isso não resolver o problema, publique a fonte de dados separadamente da pasta de trabalho.

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!