Installieren von Bridge für Linux für Container

Bridge für Linux bietet die Skalierbarkeit und die optimierten Verwaltungsfunktionen von containerisierten Arbeitslasten. In der folgenden Anleitung wird eine einfache Möglichkeit beschrieben, wie Bridge für Linux ausgeführt werden kann. Dabei wird davon ausgegangen, dass Sie über Grundkenntnisse zu Docker und den im Ökosystem verwendeten geläufigsten Begriffen verfügen.

Installieren und Ausführen von Bridge über einen Docker-Container

Um Bridge unter Linux verwenden zu können, müssen Sie ein benutzerdefiniertes Docker-Image erstellen, das RPM-Paket installieren und dann Bridge im Container-Image ausführen.

  • Zeitpläne in älteren Bridge-Versionen werden nicht unterstützt. Weitere Informationen finden Sie unterMigrieren von Bridge (Legacy) zu Online-Zeitplänen.
  • Wenn Sie sich über Direktverbindungen mit SAP HANA verbinden möchten, müssen Parameter und Variablen deaktiviert werden.

Voraussetzungen

  • Installierte Docker Engine. Für das Basis-Image des Docker-Containers wird Bridge für Linux auf den folgenden Versionen unterstützt:
  • Tableau Bridge RPM-Paket.
  • Erfahrung mit dem Linux-Betriebssystem.
  • Grundkenntnisse in Shell-Scripting und Docker.
  • Persönliches Zugriffstoken (PAT) eines Tableau-Site-Administrators.

Schritt 1: Erstellen Sie ein Bridge-Container-Image

Im Folgenden wird beschrieben, wie Sie ein Bridge-on-Linux-Basis-Image erstellen. Weitere Informationen finden Sie unter Docker – Übersicht.

Wenn Docker installiert ist, ist der einzige Benutzer mit der Berechtigung zum Ausführen von Befehlen der Root-Benutzer. Docker-Befehle können mit sudo oder von einem Benutzer ausgeführt werden, der Mitglied der Docker-Gruppe ist.

  1. Laden Sie das Bridge-.rpm-Paket von der Seite Downloads(Link wird in neuem Fenster geöffnet) auf der Tableau-Website herunter.
  2. (Optional) Sie können die Konfigurationseinstellungen bearbeiten, um die Ausführung des Clients zu ändern. Weitere Informationen finden Sie unter "Ändern der Bridge-Client-Einstellungen".
  3. Erstellen Sie ein Arbeitsverzeichnis und verschieben Sie das .rpm-Paket in das Verzeichnis.

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. Erstellen Sie im Arbeitsverzeichnis eine Docker-Datei Beispiel:

    $ touch Dockerfile

  5. Bearbeiten Sie die Docker-Datei und fügen Sie die Befehle hinzu für die Ausführung von yum update.

    Red Hat-Beispiel

    Für Red Hat 8:

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

    RUN yum -y update

    Für Red Hat 7:

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

    RUN yum -y update

    Centos-Beispiel

    Für Centos 7:

    FROM centos:7

    RUN yum -y update

  6. Bearbeiten Sie die Docker-Datei und fügen Sie die Befehle hinzu, um das Bridge-RPM-Paket zu kopieren, zu installieren und dann aus dem Image zu entfernen:

    COPY <your_bridge_rpm>.rpm /<path_of_container>

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

  7. Erstellen Sie mit dem Docker-Build-Befehl ein neues Container-Image. Der folgende Befehl erstellt ein Image im aktuellen Verzeichnis und kennzeichnet es mit dem Wort ​"bridge_base".

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

  8. Überprüfen Sie, ob das von Ihnen erstellte Basis-Image in der Image-Liste angezeigt wird.

    docker images | grep bridge

Schritt 2: Installieren Sie die Treiber

Der Bridge-Client benötigt Treiber, um die Konnektivität zwischen privaten Netzwerkdaten und Tableau Cloud zu ermöglichen. Für Informationen zu Treibern wechseln Sie zu Treiber-Download, wählen Sie die Datenquelle aus und wählen Sie dann Linux als Betriebssystem aus.

  1. Die Installation kann interaktiv erfolgen, nachdem das Basis-Image gestartet wurde. Andernfalls können separate Dockerfiles als Ebene über das Basis-Image geschrieben werden.

    Beispiel

    Nachdem Sie den MySQL-Treiber-RPM in das Verzeichnis kopiert haben, können Sie mithilfe der folgenden Dockerfile ein separates Arbeitsverzeichnis für das Layering von MySQL-Treibern erstellen:

    # 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

    Beispiel

    Installieren Sie einen Postgres-JDBC-Treiber. Dies kann auch in einem separaten Dockerfile erfolgen.

    # Using previously built bridge_base image

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

    Beispiel

    Installieren Sie den Amazon Redshift-Treiber.

    # 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. Erstellen Sie ein neues Image:
  3. docker image build -t bridge_final .

    Das Image bridge_final verwendet das zwischengespeicherte Image aus dem vorherigen Schritt und installiert automatisch die Treiber für alle Ihre Bridge-Instanzen. Wenn Sie über ein Image-Repository verfügen, können Sie das Image im Repository veröffentlichen und an alle Computer verteilen, auf denen Sie Bridge ausführen möchten.

Schritt 3: Führen Sie den Bridge-Container aus

Nachdem Sie nun ein Basis-Image erstellt haben, können Sie es mithilfe verschiedener Methoden bereitstellen. Die grundlegenden Schritte sind:

  1. Starten Sie die Instanz des Bridge-Containers.
  2. Melden Sie sich an und starten Sie den Worker.
  3. Weisen Sie den Agenten einem Pool zu.

Anmerkung: Bridge für Linux unterstützt keine Zeitpläne in älteren Bridge-Versionen. Weitere Informationen finden Sie unterMigrieren von Bridge (Legacy) zu Online-Zeitplänen.

  1. Bevor Sie mit der Bereitstellung des Containers beginnen, erstellen Sie einen persönlichen Zugriffstoken (PAT). PAT ist für die Anmeldung beim Agenten erforderlich.

    Die folgenden Token-Namen müssen übereinstimmen: Die patTokenId (wird beim Ausführen des Befehls TabBridgeClientWorker verwendet), der Token-Name in der JSON-Datei und der Token-Name beim Generieren des PAT in Tableau Cloud.

  2. Legen Sie das Gebietsschema in Docker fest als ENV LC_ALL en_US.UTF-8. Sie können das Gebietsschema auch festlegen, indem Sie Folgendes zur Datei /etc/profile hinzufügen.
  3. export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

  4. Starten Sie eine Instanz des Bridge-Containers. Es gibt viele Möglichkeiten, das Container-Image einzurichten und zu starten. Die folgende interaktive Methode veranschaulicht die zum Starten des Workers erforderlichen Schritte. Wenn Sie den Vorgang beenden, wird die Container-Ausführung gestoppt.
    1. Verwenden Sie die folgende Methode, um als root zur Shell-Eingabeaufforderung für den Container zu gelangen. Die restlichen Befehle werden im Kontext dieser interaktiven Sitzung des Containers ausgeführt.

      docker container run -it bridge_final /bin/bash

    2. Fügen Sie das PAT-Token zu einer Flatfile im JSON-Format hinzu. Beispiel:

      /home/jSchmidt/Dokumente/MyTokenFile.txt

    3. Beispiel für eine Token-Syntax:

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

    4. Ändern Sie die Dateiberechtigungen, um den Zugriff auf den aktuellen Benutzer zu beschränken. Beispiel:

      chmod 600 MyTokenFile.txt

    5. Starten Sie den Worker mit dem Befehl TabBridgeClientWorker, und stellen Sie die folgenden Befehlsoptionen bereit:

      BefehlBeschreibung
      TabBridgeClientWorker -eBefehl zum Starten des Bridge-Client-Workers. Das Argument -e ist erforderlich und führt den Befehl im Vordergrund aus. Der Hintergrundmodus wird derzeit nicht unterstützt.
      --patTokenIdDie ID des PAT. Weitere Informationen finden Sie unter Persönliche Zugriffstoken.
      --userEmailMit dem PAT verknüpfte Benutzer-E-Mail-Adresse.
      --clientDer Name, den Sie dem Worker geben möchten.
      --siteSite-Name, der im URI angezeigt wird. Schließen Sie den URI-Pfad nicht ein.
      --patTokenFileDateiname und Pfad zur PAT-Textdatei.
      --poolId(Optional) Pool-ID, die dem Client zugewiesen ist. Siehe Verwenden einer Pool-ID.

      Beispiel für einen Befehl

      /opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSchmidt/Dokumente/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"
  5. Die folgende Meldung zeigt an, dass der Agent gestartet wurde. “Service started: ...”

    Verwenden Sie Control-C, um den Worker anzuhalten. Anstatt den Worker neu zu starten, können Sie einen neuen Worker für das Container-Image starten.

    Wenn Sie mit der Befehlsoption --poolId keinen Pool zugewiesen haben, wird der Client dem Standardpool zugewiesen. Wenn Sie den Client mit bestimmten Domänen oder virtuellen Verbindungen verwenden möchten, können Sie ihn über die Benutzeroberfläche einem benannten Pool zuweisen. Folgen Sie dazu in Tableau Cloud dem Menü Startseite > Einstellungen > Bridge. Weitere Informationen finden Sie im Thema über das Konfigurieren des Bridge-Clientpools.

Verwenden einer Pool-ID

Wenn der Bridge-Worker mit dem Befehl TabBridgeClientWorker gestartet wird, ist poolId optional. Das Verhalten des Clients hängt jedoch davon ab, ob der Client bei einer Site registriert ist und ob er einem Pool zugewiesen ist. Tableau Bridge kann eine Verbindung immer nur zu einer einzigen Tableau Cloud-Site auf einmal herstellen. Der Client wird bei einer Site registriert, wenn Sie sich abmelden und wieder anmelden.

Wenn keine Pool-ID angegeben ist

  • Wenn der Bridge-Client registriert wurde, bleibt der Client-Status derselbe:
    • Wenn der Client einem Pool zugewiesen ist, bleibt er dem Pool zugewiesen – unabhängig davon, ob es sich um einen benannten Pool oder den standardmäßigen Pool handelt.
    • Wenn der Client keinem Pool zugewiesen ist, bleibt er auch weiterhin nicht zugewiesen.
  • Wenn der Bridge-Client neu ist (d.h., Sie haben sich noch nie bei Tableau Cloud angemeldet), wird der Client dem Standardpool zugewiesen.

Wenn eine Pool-ID angegeben wird

  • Wenn die Pool-ID angegeben wird und korrekt ist, wird der Bridge-Client dem benannten Pool zugewiesen.
  • Wenn die Pool-ID angegeben, aber nicht korrekt ist:
    • Wenn der Bridge-Client nicht registriert ist, wird er dem Standardpool zugewiesen.
    • Wenn der Bridge-Client registriert ist, bleibt der Clientstatus derselbe (also unabhängig vom benannten Pool, Standardpool oder nicht zugewiesen).

Suchen der Pool-ID

Um die Pool-ID zu finden, gehen Sie zu Einstellungen > Seite Bridge, und klicken Sie auf den Namen des Pools. Beispiel:

Problembehebung

Arbeiten mit Protokolldateien

Protokolldateien werden im Konto My_Tableau_Bridge_Repository/Logs des Benutzers gespeichert. Führen Sie folgenden Befehl aus, um Protokolldateien in einem tmp -Ordner zu speichern:

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

In diesem Beispiel wird der Speicherort durch /tmp/bridge_logs angegeben. Durch Verwendung des Docker-Befehls wird das Speichern der Protokolldateien vereinfacht und Sie brauchen die Bridge-Protokolldateien nicht mehr manuell vom Container in Ihr lokales Dateisystem kopieren.

Fehler beim MySQL-Treiber

Wenn für LC_MESSAGES keine UTF-8-Gebietsschemata festgelegt sind, können Lese- und Anzeigeproblemen auftreten. Sie können die Datei /etc/profile bearbeiten oder den Worker wie folgt neu starten

LC_ALL=en_US.UTF-8 /opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e

Vielen Dank für Ihr Feedback!Ihr Feedback wurde erfolgreich übermittelt. Vielen Dank.