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

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

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

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

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

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

ขั้นตอนที่ 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

    สำหรับ 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 และเพิ่มคำสั่งเพื่อคัดลอกแพ็กเกจ 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 ต่อผู้ใช้ Tableau ขอแนะนำให้คุณใช้โทเค็น PAT หนึ่งรายการต่อไคลเอ็นต์หนึ่งราย

    หมายเหตุ: ชื่อโทเค็นต่อไปนี้ต้องตรงกัน: patTokenId (ใช้เมื่อเรียกใช้คำสั่ง TabBridgeClientWorker) ชื่อโทเค็นในไฟล์ 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. เริ่มต้นตัวดำเนินงานด้วยคำสั่ง TabBridgeClientWorker และจัดเตรียมตัวเลือกคำสั่งต่อไปนี้:

      คำสั่งคำอธิบาย
      TabBridgeClientWorker -eคำสั่งเพื่อเริ่มตัวดำเนินการของไคลเอ็นต์ Bridge จำเป็นต้องมีอาร์กิวเมนต์ -e และรันคำสั่งในเบื้องหน้า ขณะนี้ยังไม่รองรับโหมดแบ็กกราวเดอร์
      --patTokenIdID ของ PAT ดูโทเค็นการเข้าถึงส่วนบุคคลสำหรับข้อมูลเพิ่มเติม
      --userEmailอีเมลผู้ใช้ที่เกี่ยวข้องกับ PAT
      --clientชื่อที่คุณต้องการตั้งให้กับตัวดำเนินงาน
      --siteชื่อไซต์ตามที่ปรากฏใน URI อย่ารวมเส้นทาง URI
      --patTokenFileชื่อไฟล์และเส้นทางไปยังไฟล์ข้อความ PAT
      --poolId(ไม่บังคับ) ID พูลที่กำหนดให้กับไคลเอ็นต์ ดูการใช้ ID พูล

      ตัวอย่างคำสั่ง

      /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"
  5. ข้อความต่อไปนี้ระบุว่าเอเจนต์เริ่มทำงานแล้ว “Service started: ...”

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

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

การใช้ ID พูล

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

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

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

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

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

ค้นหา ID พูล

หากต้องการค้นหา ID พูล ให้ไปที่หน้าการตั้งค่า > 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/TabBridgeClientWorker -e

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