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

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

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

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

前提条件

  • インストール済みの Docker エンジン。Docker コンテナの基本イメージについては、以下で Bridge on Linux がサポートされています。
  • Tableau Bridge RPM パッケージ。
  • Linux オペレーティング システムの使用経験。
  • シェル スクリプトと Docker の基本的な経験。
  • Tableau サイト管理者のパーソナル アクセス トークン (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

    Red Hat 7 の場合:

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

    RUN yum -y update

    Centos の例

    CentOS 7 の場合:

    FROM centos:7

    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 build コマンドを使用して、新しいコンテナ イメージを構築します。次のコマンドは、現在のディレクトリにイメージを構築し、​"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 が必要です。

    次のトークン名が一致する必要があります。patTokenId (TabBridgeClientWorkerコマンド実行時に使用)、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. TabBridgeClientWorker コマンドでワーカーを起動します。次のコマンド オプションを指定します。

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

      コマンド例

      /opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/TaroYamada/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"
  5. 次のメッセージは、エージェントが開始されたことを示します。“Service started: ...”

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

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

プール ID の使用

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

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

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

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

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

プール ID の検索

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

トラブルシューティング

ログ ファイルの操作

ログ ファイルはユーザーの 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/TabBridgeClientWorker -e

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