ติดตั้ง Bridge สำหรับ Linux สำหรับคอนเทนเนอร์

Bridge สำหรับ Linux มอบความสามารถในการปรับขนาดและความคล่องตัวในการจัดการปริมาณงานในคอนเทนเนอร์ คำแนะนำต่อไปนี้จะอธิบายวิธีที่ไม่ซับซ้อนในการเรียกใช้ Bridge สำหรับ Linux และถือว่าคุณมีความรู้พื้นฐานเกี่ยวกับ Docker และคำศัพท์สำคัญที่ใช้ในระบบนิเวศ

ติดตั้งและเรียกใช้ Bridge จากคอนเทนเนอร์ Docker

หากต้องการใช้ Bridge บน Linux คุณต้องสร้างอิมเมจ Docker แบบกำหนดเอง ติดตั้งแพ็กเกจ RPM จากนั้นเรียกใช้ Bridge จากภายในอิมเมจคอนเทนเนอร์

ข้อกำหนดเบื้องต้น

  • ติดตั้ง Docker Engine สำหรับอิมเมจพื้นฐานของคอนเทนเนอร์ Docker นั้น มีการรองรับ Bridge ใน Linux บน:
    • Amazon Linux 2
    • Amazon Linux 2023
    • Red Hat 8.3 ขึ้นไป

      หมายเหตุ: ไม่รองรับ CentOS

  • แพ็กเกจ RPM ล่าสุดของ Tableau Bridge จากหน้าดาวน์โหลด(ลิงก์จะเปิดในหน้าต่างใหม่)บนเว็บไซต์ Tableau
  • สัมผัสกับการใช้งานกับระบบปฏิบัติการ Linux
  • การเขียนสคริปต์เชลล์ขั้นพื้นฐาน
  • ประสบการณ์ Docker
  • โทเค็นการเข้าถึงส่วนบุคคล (PAT) สำหรับผู้ดูแลไซต์ Tableau เราขอแนะนำให้คุณใช้โทเค็น PAT หนึ่งรายการต่อไคลเอ็นต์ Bridge

ขั้นตอนที่ 1: สร้างอิมเมจคอนเทนเนอร์ Bridge

ขั้นตอนต่อไปนี้เป็นคำแนะนำพื้นฐานสำหรับการสร้างอิมเมจพื้นฐาน Bridge บน Linux หากต้องการข้อมูลเพิ่มเติม โปรดดูภาพรวม Docker

เมื่อติดตั้ง Docker ผู้ใช้เพียงคนเดียวที่ได้รับอนุญาตให้เรียกใช้คำสั่งคือรูท คุณสามารถเรียกใช้คำสั่ง Docker ได้ด้วย sudo หรือโดยผู้ใช้ที่เป็นสมาชิกของกลุ่ม Docker

  1. ดาวน์โหลดแพ็กเกจ .rpm สำหรับ Bridge จากหน้าดาวน์โหลด(ลิงก์จะเปิดในหน้าต่างใหม่)บนเว็บไซต์ Tableau
  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 ของ Bridge จากอิมเมจ ตัวอย่าง:

    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. การติดตั้งสามารถทำได้แบบโต้ตอบหลังจากเปิดตัวอิมเมจพื้นฐาน หรือสามารถเขียน Dockerfiles แยกกันเป็นเลเยอร์ที่ด้านบนของอิมเมจฐานได้

    ตัวอย่าง

    เมื่อคัดลอก RPM ไดรเวอร์ MySQL ลงในไดเรกทอรี คุณสามารถสร้างไดเรกทอรีการทำงานแยกต่างหากสำหรับการแบ่งเลเยอร์ไดรเวอร์ MySQL โดยใช้ Dockerfile ต่อไปนี้:

    # 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

    ตัวอย่าง

    ติดตั้งไดรเวอร์ JDBC ของ Postgres ซึ่งสามารถทำได้ใน 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 สำหรับ Linux ไม่รองรับ Bridge (กำหนดการของรุ่นเดิม) ดูย้ายกำหนดการจาก Bridge (รุ่นเดิม) เป็นออนไลน์สำหรับข้อมูลเพิ่มเติม

  1. ก่อนที่คุณจะเริ่มปรับใช้คอนเทนเนอร์ ให้สร้างโทเค็นการเข้าถึงส่วนบุคคล (PAT) จำเป็นต้องมี PAT เพื่อเข้าสู่ระบบเอเจนต์ Tableau Cloud รองรับ 104 PAT ต่อผู้ใช้ เราขอแนะนำให้คุณใช้โทเค็น PAT หนึ่งรายการต่อไคลเอ็นต์

    หมายเหตุ: ชื่อโทเค็นต่อไปนี้ต้องตรงกัน: patTokenId (ใช้เมื่อเรียกใช้คำสั่ง run-bridge.sh) ชื่อโทเค็นในไฟล์ JSON และชื่อโทเค็นเมื่อสร้าง PAT ใน Tableau Cloud

  2. ตั้งค่าภาษาใน Docker โดยใช้ ENV LC_ALL en_US.UTF-8 คุณยังสามารถตั้งค่าภาษาได้โดยเพิ่มสิ่งต่อไปนี้ลงในไฟล์ /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/jSmith/Documents/MyTokenFile.txt

    3. ตัวอย่างไวยากรณ์โทเค็น:

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

    4. เปลี่ยนสิทธิ์ของไฟล์เพื่อจำกัดการเข้าถึงของผู้ใช้ปัจจุบัน ตัวอย่าง:

      chmod 600 MyTokenFile.txt

    5. เริ่มต้นตัวดำเนินงานด้วยคำสั่ง run-bridge.sh และจัดเตรียมตัวเลือกคำสั่งต่อไปนี้

      คำสั่งคำอธิบาย
      --patTokenIdID ของ PAT ดูโทเค็นการเข้าถึงส่วนบุคคลสำหรับข้อมูลเพิ่มเติม
      --userEmailอีเมลผู้ใช้ที่เกี่ยวข้องกับ PAT
      --clientชื่อที่คุณต้องการตั้งให้กับตัวดำเนินงาน
      --siteชื่อไซต์ตามที่ปรากฏใน URI อย่ารวมเส้นทาง URI
      --patTokenFileชื่อไฟล์และเส้นทางไปยังไฟล์ข้อความ PAT
      -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 สำหรับ Linux เวอร์ชันเก่ากว่า คุณต้องเรียกใช้คำสั่งอื่นเพื่อเริ่มเวิร์กเกอร์ สำหรับเวอร์ชัน 2024.2 และเก่ากว่า ให้เริ่มเวิร์กเกอร์ด้วยคำสั่ง TabBridgeClientWorker (ไม่ใช่คำสั่ง run-bridge.sh ตัวเลือกคำสั่งทั้งหมดเหมือนกัน

  5. ข้อความต่อไปนี้ระบุว่าเอเจนต์เริ่มทำงานแล้ว “Service started: ...”

    ใช้ Control-C เพื่อหยุดตัวดำเนินงาน แทนที่จะรีสตาร์ทตัวดำเนินงาน คุณสามารถเริ่มตัวดำเนินงานใหม่สำหรับอิมเมจคอนเทนเนอร์ได้

    หากคุณไม่ได้มอบหมายพูลโดยใช้ตัวเลือกคำสั่ง --poolIdไคลเอ็นต์ถูกมอบหมายให้กับพูลเริ่มต้น หากคุณต้องการใช้ไคลเอ็นต์กับโดเมนหรือ VConns ที่เฉพาะเจาะจง คุณสามารถมอบหมายไคลเอ็นต์ให้กับพูลที่มีชื่อได้โดยใช้ UI เมนูนี้บนหน้าแรก ของ Tableau Cloud > การตั้งค่า > Bridge หากต้องการข้อมูลเพิ่มเติม โปรดดู การกำหนดค่าพูลไคลเอ็นต์ Bridge

การใช้ ID พูล

เมื่อเริ่มเวิร์กเกอร์ Bridge ด้วยคำสั่ง run-bridge.sh poolId เป็นทางเลือก อย่างไรก็ตาม ลักษณะการทำงานของไคลเอ็นต์ขึ้นอยู่กับว่ามีการลงทะเบียนไคลเอ็นต์กับไซต์หรือไม่ และไคลเอ็นต์ถูกมอบหมายให้กับพูลหรือไม่ Tableau Bridge สามารถเชื่อมต่อหรือลงทะเบียนกับไซต์ Tableau Cloud ได้เพียงไซต์เดียวในระยะเวลาที่กำหนด ไคลเอ็นต์จะได้รับการลงทะเบียนกับไซต์เมื่อคุณออกจากระบบและเข้าสู่ระบบอีกครั้ง

หากไม่ได้ระบุ ID พูล

  • หากลงทะเบียนไคลเอ็นต์ Bridge แล้ว สถานะไคลเอ็นต์จะยังคงเหมือนเดิม:
    • หากไคลเอ็นต์ได้รับการมอบหมายให้กับพูล ไคลเอ็นต์จะยังคงถูกมอบหมายให้กับพูล ไม่ว่าจะเป็นพูลที่มีชื่อหรือพูลเริ่มต้นก็ตาม
    • หากไคลเอ็นต์ไม่ได้รับการมอบหมายให้กับพูล ไคลเอ็นต์นั้นจะยังคงไม่ได้รับการมอบหมาย
  • หากไคลเอ็นต์ Bridge เป็นไคลเอ็นต์ใหม่ (คุณไม่เคยเข้าสู่ระบบ Tableau Cloud) ไคลเอ็นต์จะได้รับการมอบหมายให้กับพูลเริ่มต้น

หากมีการระบุ ID พูล

  • หากมีการระบุ ID พูลและถูกต้อง ไคลเอ็นต์ Bridge จะได้รับการมอบหมายให้กับพูลที่มีชื่อ
  • หากมีการระบุ ID พูลและไม่ถูกต้อง:
    • หากไม่ได้ลงทะเบียนไคลเอ็นต์ Bridge ไคลเอ็นต์จะได้รับการมอบหมายให้กับพูลเริ่มต้น
    • หากลงทะเบียนไคลเอ็นต์ Bridge สถานะไคลเอ็นต์จะยังคงเหมือนเดิม โดยไม่คำนึงถึงพูลที่มีชื่อ พูลเริ่มต้น หรือไม่ได้รับการมอบหมาย

ค้นหา ID พูล

หากต้องการค้นหา ID พูล ให้ไปที่หน้าการตั้งค่า > Bridge แล้วคลิกชื่อพูล ตัวอย่าง:

การแก้ปัญหา

การติดตั้งเวอร์ชันเก่า

หากคุณกำลังติดตั้ง Bridge สำหรับ 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_MESSAGES ไม่ได้ตั้งค่าด้วยภาษา UTF-8 คุณอาจประสบปัญหาในการอ่านและการแสดงผล คุณสามารถแก้ไขไฟล์ /etc/profile หรือเปิดใช้งานเวิร์กเกอร์อีกครั้งโดยใช้คำสั่งต่อไปนี้

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

ไคลเอ็นต์ Bridge หยุดทำงานโดยไม่คาดคิดเนื่องจากโทเค็นการเข้าถึงส่วนบุคคลหมดอายุ

เมื่อโทเค็นการเข้าถึงส่วนบุคคล (PAT) หมดอายุ จะทำให้ไคลเอ็นต์ Bridge ตัดการเชื่อมต่อจาก Tableau Cloud และอาจทำให้คอนเทนเนอร์หยุดทำงานได้ จากไคลเอ็นต์ Bridge คุณสามารถตรวจสอบว่า PAT ของคุณหมดอายุหรือไม่โดยดำเนินการคำสั่ง Start ในเบื้องหน้า หาก PAT หมดอายุ คุณจะเห็นข้อผิดพลาดต่อไปนี้

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

หากคุณเป็นเจ้าของ PATเดิม คุณยังสามารถตรวจสอบว่า PAT หมดอายุหรือไม่ได้โดยไปที่จัดการการตั้งค่าบัญชีใน Tableau Cloud เพื่อแก้ไขปัญหานี้ คุณจะต้องสร้าง PAT ใหม่และทำตามขั้นตอนข้างต้น ขั้นตอนที่ 3: เรียกใช้คอนเทนเนอร์ Bridge

ข้อผิดพลาดการหมดเวลาการเชื่อมต่อแบบเรียลไทม์แบบฝังและการแยกข้อมูลแบบฝัง

การเปิดตัว Bridge เวอร์ชัน 24.3 บน Linux ช่วยปรับปรุงประสิทธิภาพกที่สำคัญสำหรับการแยกข้อมูลแบบฝังและการเชื่อมต่อแบบเรียบไทม์แบบฝัง หากคุณพบข้อผิดพลาดการหมดเวลาในรุ่นก่อนหน้า เราขอแนะนำให้อัปเกรดเป็น Bridge รุ่น 24.3 ขึ้นไปบน Linux หากวิธีนี้ไม่สามารถแก้ไขปัญหาได้ ให้เผยแพร่แหล่งข้อมูลแยกจากเวิร์กบุ๊ก

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ