為容器安裝針對 Linux 的 Bridge

針對 Linux 的 Bridge 可提供容器化工作負載的可擴充性和簡化的管理功能。以下說明描述了執行針對 Linux 的 Bridge 的輕量級方法,並假設您具有對 Docker 以及生態系統中使用的關鍵術語的基本知識。

從 Docker 容器安裝並執行 Bridge

要在 Linux 上使用 Bridge,必須建立自訂 Docker 映像,安裝 RPM 套件,然後從容器映像內部執行 Bridge。

必要條件

  • 已安裝 Docker 引擎。對於 docker 容器的基礎映像,Linux 上的 Bridge 支援:
    • Amazon Linux 2
    • Amazon Linux 2023
    • Red Hat 8.3 及更高版本

      附註:不支援 CentOS。

  • 在 Tableau 網站的下載(連結在新視窗開啟)頁面中的最新 Tableau Bridge RPM 套件。
  • 具有 Linux 作業系統經驗。
  • 基本的 shell 指令碼編寫。
  • Docker 經驗。
  • Tableau 站台管理員個人存取權權杖 (PAT)。Tableau 建議您為每個用戶端使用一個 PAT 權杖。

第 1 步:建立 Bridge 容器映像

以下步驟是在 Linux 基礎映像上建置 Bridge 的基本說明。有關詳情,請參閱Docker 概觀

安裝 Docker 後,唯一有權執行命令的使用者是 root。可以使用 sudo 或由為 Docker 群組成員的使用者執行 Docker 命令。

  1. 從 Tableau 站台的下載(連結在新視窗開啟)頁面下載 .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 檔案,然後輸入命令以從映像中複製、安裝和刪除橋接 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. 將代理程式指派到集區。

附註:針對 Linux 的 Bridge 不支援 Bridge(舊版排程)。有關詳細資訊,請參閱從 Bridge(舊版)移轉到線上排程

  1. 在開始部署容器之前,請建立個人存取權杖 (PAT)。登入代理程式需要 PAT。Tableau Cloud 支援每個使用者 104 個 PAT。Tableau 建議您為每個用戶端使用一個 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 身分移動到容器的 shell 提示字元。其餘命令在容器的此互動式工作階段的內容中執行。

      docker container run -it bridge_final /bin/bash

    2. 將 PAT 權杖新增至 JSON 格式的一般檔案。例如:

      /home/jSmith/Documents/MyTokenFile.txt

    3. 權杖語法範例:

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

    4. 變更檔案權限,以限制目前使用者的存取。例如:

      chmod 600 MyTokenFile.txt

    5. 使用 run-bridge.sh 命令啟動背景工作,並提供以下命令選項:

      命令說明
      --patTokenIdPAT 的 ID。有關詳細資訊,請參閱個人存取權杖
      --userEmail與 PAT 關聯的使用者電子郵件。
      --client要為背景工作指定的名稱。
      --siteURI 中顯示的站台名稱。不要包含 URI 路徑。
      --patTokenFilePAT 文字檔案的檔案名稱和路徑。
      -e(可選)預設情況下,Bridge 用戶端工作背景工作會作為後台服務執行。要在前台執行背景工作,請包含 -e 參數。
      --poolId(可選)指派給用戶端的集區 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 指派集區,則用戶端將會指派到預設集區。若想要將用戶端用於特定網域或 VConns,可以使用 UI 將用戶端指派到已命名集區。Tableau Cloud 首頁 > 設定 > Bridge 上針對上述功能的功能表。有關詳情,請參閱設定 Bridge 用戶端集區

使用集區識別碼

使用 run-bridge.sh 命令啟動 Bridge 工作電腦後,poolId 為可選。但是,用戶端的行為取決於用戶端是否註冊到站台以及用戶端是否指派到集區。Tableau Bridge 在任何給定時間只能連線或註冊到一個 Tableau Cloud 站台。登出並重新登入時,用戶端將註冊到站台。

如果未提供集區識別碼

  • 如果Bridge用戶端已經註冊,則用戶端狀態保持不變:
    • 如果用戶端已指派給某個集區,則它仍然指派給該集區,無論它是命名集區還是預設集區。
    • 如果用戶端未指派到集區,它將保持未指派狀態。
  • 如果 Bridge 用戶端是新的(您從未登入 Tableau Cloud),則該用戶端將會指派到預設集區。

如果提供集區識別碼

  • 如果提供了集區識別碼並且正確,則將 Bridge 用戶端指派給指定集區。
  • 如果提供的集區識別碼不正確:
    • 如果 Bridge 用戶端未註冊,則會將用戶端指派到預設集區。
    • 如果 Bridge 用戶端已註冊,則用戶端狀態保持不變,無論命名集區、預設集區或未指派。

尋找集區 ID

若要尋找集區 ID,請前往設定 > Bridge 頁面,然後按一下集區的名稱。例如:

疑難排解

安裝舊版本

如果要安裝舊版的 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 驅動程式失敗

若未使用 UTF-8 地區設定設定 LC_MESSAGES,可能會遇到讀取和顯示問題。可以編輯 /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 版本。如果這不能解決問題,請與工作簿分開發佈資料來源。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!