Bridge for Linux をコンテナ用にインストールする

Bridge for Linux は、コンテナ化されたワークロードのスケーラビリティと合理化された管理機能を提供します。次の手順では、Bridge for Linux を実行する簡便な方法について説明します。Docker とエコシステムで使用される主な用語の基本的な知識があることを前提としています。

Docker コンテナから Bridge をインストールして実行する

Linux で Bridge を使用するには、カスタマイズされた Docker イメージを作成し、RPM パッケージをインストールして、コンテナ イメージ内から Bridge を実行する必要があります。

前提条件

  • インストール済みの Docker エンジン。Docker コンテナの基本イメージについては、以下で Bridge on Linux がサポートされています。
    • Amazon Linux 2
    • Amazon Linux 2023
    • Red Hat 8.3 以降

      : CentOS はサポートしていません。

  • Tableau Web サイトのダウンロード(新しいウィンドウでリンクが開く) ページからの最新の Bridge RPM パッケージ。
  • Linux オペレーティング システムの使用経験。
  • 基本的なシェル スクリプト。
  • Docker エクスペリエンス。
  • Tableau サイト管理者のパーソナル アクセス トークン (PAT)。Bridge クライアントごとに 1 つの PAT トークンを使用することをお勧めします。

ステップ 1: Bridge コンテナ イメージを作成する

次の手順は、Bridge on Linux の基本イメージを構築するための基本的な手順です。詳細については、「Docker の概要」を参照してください。

Docker がインストールされている場合、コマンドを実行する権限を持つ唯一のユーザーは root です。Docker コマンドは、sudo または docker グループのメンバーであるユーザーによって実行されます。

  1. Tableau Web サイトのダウンロード(新しいウィンドウでリンクが開く) ページから Bridge .rpm パッケージをダウンロードします。
  2. (オプション) 構成設定を編集して、クライアントの実行方法を変更できます。詳細については、「Bridge クライアントの設定の変更」を参照してください。
  3. 作業ディレクトリを作成し、.rpm パッケージをそのディレクトリに移動します。

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. 作業ディレクトリに Docker ファイルを作成します。例:

    $ touch Dockerfile

  5. Docker ファイルを編集し、yum update. を実行するコマンドを追加します。

    Red Hat の例

    Red Hat 8 の場合:

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

    RUN yum -y update

  6. Docker ファイルを編集し、イメージから Bridge RPM パッケージをコピー、インストール、削除するコマンドを入力します。例:

    COPY <your_bridge_rpm>.rpm /<path_of_container>

    RUN ACCEPT_EULA=y yum install -y $(find . -name *.rpm) && rm -rf *.rpm

  7. docker ビルド コマンドを使用して、新しいコンテナ イメージをビルドします。

    たとえば、次のコマンドは、現在のディレクトリにイメージをビルドし、​"bridge_base" という語でタグ付けします。

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

  8. 作成したベース イメージがイメージの一覧に表示されていることを確認します。

    docker images | grep bridge

ステップ 2: ドライバーをインストールする

Bridge クライアントには、プライベート ネットワーク データと Tableau Cloud 間の接続を可能にするドライバーが必要です。ドライバーの場合は、「ドライバーのダウンロード」に移動してデータ ソースを選択し、オペレーティング システムとして [Linux] を選択します。

  1. インストールは、ベース イメージの起動後に対話的に行うことも、ベース イメージの上にレイヤーとして個別の Dockerfile を書き込むこともできます。

    MySQL ドライバー RPM をディレクトリにコピーすると、次の Dockerfile を使用して MySQL ドライバーを階層化するための別の作業ディレクトリを作成できます。

    # Using previously built bridge_base image

    FROM bridge_base COPY mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm .

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

    postgres JDBC ドライバーをインストールします。これも別の Dockerfile で実行できます。

    # Using previously built bridge_base image

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

    Amazon Redshift ドライバーをインストールします。

    # Using previously built bridge_base image

    FROM bridge_base

    yum install -y unixODBC

    yum --nogpgcheck localinstall -y

    AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm

    odbcinst -i -d -f /opt/amazon/redshiftodbc/Setup/odbcinst.ini

  2. 新しいイメージを作成します。
  3. docker image build -t bridge_final .

    bridge_final イメージは、前の手順でキャッシュされたイメージを使用し、すべての Bridge インスタンスのドライバーのインストールを自動化します。イメージ リポジトリがある場合は、イメージをリポジトリにパブリッシュし、Bridge を実行するすべてのマシンにイメージを配布できます。

ステップ 3: Bridge コンテナを実行する

基本イメージが構築されたので、さまざまな方法を使用してそれをデプロイできます。基本的な手順は次のとおりです。

  1. Bridge コンテナのインスタンスを起動します。
  2. ログインしてワーカーを開始します。
  3. エージェントをプールに割り当てます。

: Bridge for Linux は Bridge (レガシー スケジュール) をサポートしていません。詳細については、「Bridge (レガシー) スケジュールから Online スケジュールへの移行」を参照してください。

  1. コンテナのデプロイを開始する前に、パーソナル アクセス トークン (PAT) を作成します。エージェントにログインするには PAT が必要です。Tableau Cloud は、ユーザーごとに 104 個の PAT をサポートします。クライアントごとに 1 つの PAT トークンを使用することをお勧めします。

    : 次のトークン名が一致している必要があります。patTokenId (run-bridge.sh コマンドを実行するときに使用)、JSON ファイル内のトークン名、および Tableau Cloud で PAT を生成するときのトークン名。

  2. ENV LC_ALL en_US.UTF-8 を使用して Docker でロケールを設定します。/etc/profile ファイルに以下を追加することでロケールを設定することもできます。
  3. export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

  4. Bridge コンテナのインスタンスを開始します。コンテナ イメージをセットアップして開始するには、さまざまな方法があります。次の対話型メソッドは、ワーカーを開始するために必要な手順を示しています。終了すると、コンテナは実行を停止します。
    1. 次のメソッドを使用して、コンテナのシェル プロンプトに root として移動します。残りのコマンドは、コンテナのこの対話型セッションのコンテキストで実行されます。

      docker container run -it bridge_final /bin/bash

    2. PAT トークンを JSON 形式のフラット ファイルに追加します。例:

      /home/TaroYamada/Documents/MyTokenFile.txt

    3. トークン構文の例:

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

    4. ファイルのアクセス許可を変更して、現在のユーザーにアクセスを制限します。例:

      chmod 600 MyTokenFile.txt

    5. run-bridge.sh コマンドでワーカーを起動します。次のコマンド オプションを指定します。

      コマンド説明
      --patTokenIdPAT の ID。詳細については、「パーソナル アクセス トークン」を参照してください。
      --userEmailPAT に関連付けられたユーザーのメール。
      --clientワーカーに付ける名前。
      --siteURI に表示されるサイト名。URI パスは含めないでください。
      --patTokenFilePAT テキスト ファイルのファイル名とパス。
      -e(オプション) 既定では、Bridge クライアント ワーカーはバックグラウンド サービスとして実行されます。ワーカーをフォアグラウンドで実行するには、-e 引数を含めます。
      --poolId(オプション) クライアントに割り当てられるプール ID。プール ID の使用を参照してください。

      コマンド例

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

      : Bridge for Linux の古いバージョンをインストールしている場合は、ワーカーを起動するために別のコマンドを実行する必要があります。バージョン 2024.2 以前の場合は、TabBridgeClientWorker コマンドでワーカーを起動します (run-bridge.sh コマンドではありません)。コマンドのオプションはすべて同じです。

  5. 次のメッセージは、エージェントが開始されたことを示します。“Service started: ...”

    Control-C を使用して、ワーカーを停止します。ワーカーを再起動するのではなく、コンテナ イメージで新しいワーカーを開始できます。

    コマンド オプション --poolId を使用してプールを割り当てなかった場合、クライアントはデフォルトのプールに割り当てられます。特定のドメインまたは VConn でクライアントを使用する場合は、UI を使用してクライアントを名前付きプールに割り当てることができます。このメニューは Tableau Cloud では [ホーム] > [設定] > [Bridge] にあります。詳細については、「Bridge クライアント プールの構成」を参照してください。

プール ID の使用

Bridge ワーカーを run-bridge.sh コマンドで起動する場合、poolId は省略可能です。ただし、クライアントの動作は、クライアントがサイトに登録されているかどうか、およびクライアントがプールに割り当てられているかどうかによって異なります。Tableau Bridge が接続または登録できる Tableau Cloud サイトは、一度に 1 つのみです。ログオフしてログインし直すと、クライアントはサイトに登録されます。

プール ID が指定されていない場合

  • Bridge クライアントが登録されている場合、クライアントのステータスは変わりません。
    • クライアントがプールに割り当てられていると、クライアントはプールに割り当てられたままになります。名前付きプールであるか、既定のプールであるかには関係ありません。
    • クライアントがプールに割り当てられていなければ、クライアントは未割り当てのままになります。
  • 新規の Bridge クライアントである (Tableau Cloud にサインインしたことがない) 場合、クライアントは既定のプールに割り当てられます。

プール ID が指定されている場合

  • 正しいプール ID が指定されている場合、Bridge クライアントは指定されたプールに割り当てられます。
  • 間違ったプール ID が指定されている場合、
    • Bridge クライアントが登録されていれば、クライアントは既定のプールに割り当てられます。
    • Bridge クライアントが登録されていなければ、クライアントのステータスは同じままです。名前付きプールであるか、既定のプールであるか、未割り当てであるかには関係ありません。

プール ID の検索

プール ID を検索するには、[設定][ブリッジ] ページに移動し、プールの名前をクリックします。例:

トラブルシューティング

古いバージョンのインストール

Bridge for Linux の古いバージョンをインストールしている場合は、ワーカーを起動するために別のコマンドを実行する必要があります。バージョン 2024.2 以前の場合は、TabBridgeClientWorker コマンドでワーカーを起動します (run-bridge.sh コマンドではありません)。

コマンドのオプションは、すべて上記のステップ 3: Bridge コンテナを実行すると同じです。

例: 

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

ワーカー起動エラー

場合によっては、run-bridge.sh コマンドを実行後に次のエラーが表示されることがあります。

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

ほとんどの場合、元のオプションと -e オプションを使用してコマンドをもう一度実行すると問題が解決されます。-e オプションは、Bridge ワーカー サービスをフォアグラウンドで実行します。

ログ ファイルの操作

ログ ファイルはユーザーの My_Tableau_Bridge_Repository/Logs フォルダーに格納されます。ログを tmp フォルダーに保存するには、次のコマンドを実行します。

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

この例では、場所は /tmp/bridge_logs で指定されています。docker コマンドを使用するとログ ファイルの保存が簡単化され、Bridge ログ ファイルをコンテナからローカル ファイル システムに手動でコピーする必要がなくなります。

MySQL ドライバーが失敗する

LC_MESSAGESUTF-8 ロケールで設定されていない場合、読み取りおよび表示の問題が発生する可能性があります。/etc/profile ファイルを編集するか、次のコマンドを使用してワーカーを再起動します。

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

個人用アクセス トークンの有効期限切れにより Bridge クライアントが予期せず停止する

個人用アクセス トークン (PAT) の有効期限が切れると、Bridge クライアントが Tableau Cloud から切断され、コンテナがシャットダウンする可能性があります。Bridge クライアントから、フォアグラウンドで Start コマンドを実行すると、PAT の有効期限が切れているかどうかを確認できます。PAT の有効期限が切れている場合、次のエラーが表示されます。

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

PAT の元の所有者である場合は、Tableau Cloud で「アカウント設定の管理」にアクセスし、PAT の有効期限が切れているかどうかを確認することもできます。この問題を解決するには、新しい PAT を生成し、上記のステップ 3: Bridge コンテナを実行するの手順に従う必要があります。

埋め込み抽出および埋め込みライブ接続のタイムアウト エラー

Linux 上の Bridge の 24.3 リリースでは、埋め込み抽出と埋め込みライブ接続のパフォーマンスが大幅に向上しました。以前のリリースでタイムアウト エラーが発生した場合は、Linux 上の Bridge の 24.3 リリースにアップグレードすることをお勧めします。それでも問題が解決しない場合は、ワークブックとは別にデータ ソースをパブリッシュします。

フィードバックをお送りいただき、ありがとうございます。フィードバックは正常に送信されました。ありがとうございます!