Tableau Server ในคอนเทนเนอร์ - การแก้ปัญหา

บทนำ

Tableau Server ในคอนเทนเนอร์เป็นการเสนอบริการเซิร์ฟเวอร์ที่ใช้คอนเทนเนอร์เป็นหลักครั้งแรกของ Tableau Tableau Server ในคอนเทนเนอร์เป็นอินสแตนซ์ Tableau Server แบบครบวงจรที่ทำงานอยู่ในคอนเทนเนอร์ Linux Docker กล่าวอีกแง่หนึ่งคืออิมเมจ Tableau Server ในคอนเทนเนอร์เป็นอิมเมจ Docker ที่ใช้แอปพลิเคชัน Tableau Server ทั้งหมดด้วยตนเอง Tableau Server ในคอนเทนเนอร์เป็นขั้นตอนแรกในขั้นตอนมากมายของเราในการสนับสนุน Tableau Server ที่ทำงานในสภาพแวดล้อมที่ใช้คอนเทนเนอร์เป็นหลัก วิธีที่ง่ายที่สุดที่จะทำความเข้าใจแนวคิดของ Tableau Server ในคอนเทนเนอร์คือเสมือนว่าเป็น VM ที่มี Tableau Server ติดตั้งมาแล้วล่วงหน้า อิมเมจจะอิงตามอิมเมจ UBI 8 (CentOS 7.x สำหรับเวอร์ชัน 2022.1 และก่อนหน้า) และจะเรียกใช้ supervisord (แทนที่ systemd) ภายในคอนเทนเนอร์ เมื่อคอนเทนเนอร์เริ่มใช้งาน supervisord ระบบจะพยายามเริ่มต้นใช้งานและเปิดใช้ Tableau Server ทันที เอกสารส่วนใหญ่ ณ ที่นี้มุ่งหวังที่จะอธิบายวิธีการกำหนดค่าและใช้ประโยชน์จากกระบวนการอัตโนมัติเพื่อที่คุณจะสามารถเรียกใช้ Tableau Server ในสภาพแวดล้อม Docker ได้

เครื่องมือการตั้งค่าอิมเมจของ Tableau Server ในคอนเทนเนอร์จะช่วยให้คุณสร้างและปรับแต่งอิมเมจคอนเทนเนอร์ให้รวมแพ็กเกจและอาร์ติแฟกต์ที่กำหนดเอง หนึ่งในฟังก์ชันหลักของเครื่องมือคือการสร้างอิมเมจคอนเทนเนอร์และติดตั้งเครื่องมือเชื่อมต่อข้อมูลที่กำหนดเอง

หากต้องการทดสอบอิมเมจ Tableau Server ในคอนเทนเนอร์อย่างรวดเร็วในลักษณะของการพิสูจน์แนวคิด โปรดดู เริ่มต้น Tableau Server ในคอนเทนเนอร์

ข้อจำกัด

  • Tableau Server ในคอนเทนเนอร์รองรับเฉพาะการเปิดใช้งานใบอนุญาตด้วยการใช้ ATR เซิร์ฟเวอร์ ซึ่งกำหนดให้คอนเทนเนอร์จะต้องสามารถเข้าถึงอินเทอร์เน็ตได้ ดังนั้นจึงไม่สามารถเปิดใช้งานแบบออฟไลน์ในสภาพแวดล้อมที่ไม่มีอินเทอร์เน็ต
  • ปัจจุบัน Tableau Server ในคอนเทนเนอร์ไม่รองรับเอเจนต์ของ Resource Monitoring Tool (RMT)
  • ไม่รองรับ Kerberos ใน Tableau Server ในคอนเทนเนอร์

การแก้ปัญหา

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

หากคุณกำลังทำงานกับ Tableau Support เพื่อแก้ปัญหา จะเป็นประโยชน์หากคุณให้ข้อมูลต่อไปนี้:

  • บันทึก Tableau Server (การรวบรวมบันทึกเหล่านี้อธิบายไว้ด้านล่าง)
  • บันทึก stdout คอนเทนเนอร์ Docker
  • Dockerfile ของ Tableau Server (หากมีการปรับแต่งใดๆ)
  • การกำหนดค่าการปรับใช้รวมถึง:

    • Kubeconfig (หรือการกำหนดค่าการปรับใช้ที่เทียบเท่า)
    • ไฟล์การกำหนดค่าแบบคงที่ที่กำหนดค่าคอนเทนเนอร์ของ Tableau Server

ความล้มเหลวในการติดตั้งและการเริ่มต้น

หากคุณกำลังเริ่มต้น Tableau Server เป็นครั้งแรก หรือคุณได้ทำการติดตั้งใหม่ภายในคอนเทนเนอร์ เซิร์ฟเวอร์จะไม่กู้คืนโดยเพียงแค่รีสตาร์ทคอนเทนเนอร์ ความพยายามในการติดตั้งทุกครั้งควรใช้ไดเรกทอรีข้อมูลที่สะอาด ซึ่งอาจหมายถึงการลบข้อมูลวอลุ่มถาวร (persistent volume) ออกจากการเรียกใช้คอนเทนเนอร์ก่อนหน้า หากคุณทำเช่นนี้ ตรวจสอบให้แน่ใจว่าได้เก็บรักษาบันทึกและข้อมูลที่อาจเป็นประโยชน์สำหรับการแก้ไขข้อบกพร่อง

การแก้ไขข้อบกพร่องการติดตั้งล้มเหลว

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

  1. เตรียม Tableau Server ที่เป็นปัจจุบันในการปรับใช้คอนเทนเนอร์
  2. กำหนดค่าคอนเทนเนอร์ให้ทำงานด้วยตัวแปรสภาพแวดล้อม TSM_ONLY=1 TSM_ONLY=1 ตัวแปรสภาพแวดล้อม TSM_ONLY=1 บอกให้ Tableau Server เริ่มต้น TSM เท่านั้น ซึ่งเทียบเท่ากับการใช้งานสคริปต์ initialize-tsm ในการติดตั้งแบบมาตรฐานที่ไม่ใช่คอนเทนเนอร์
  3. เรียกใช้คอนเทนเนอร์ของ Tableau Server
  4. เปิดเชลล์ภายในคอนเทนเนอร์
  5. คุณสามารถเรียกใช้คำสั่ง TSM ได้แล้ว แม้ว่า Tableau Server จะยังไม่ได้เริ่มต้นก็ตาม หากต้องการกลับสู่การทำงานอัตโนมัติที่เกิดขึ้นตามปกติในระหว่างการเริ่มต้น ให้เรียกใช้สคริปต์ tsm-commands: "${DOCKER_CONFIG}"/config/tsm-commands

ฝ่ายสนับสนุนของ Tableau และ Kubernetes

Tableau Server ในคอนเทนเนอร์สามารถเรียกใช้ได้โดยใช้ Kubernetes แต่ไม่จำเป็นต้องทำเช่นนั้น ความคาดหวังของเราคือลูกค้าส่วนใหญ่จะใช้ Kubernetes หรือหนึ่งในสภาพแวดล้อมระบบคลาวด์ที่มีการจัดการที่เกี่ยวข้อง (EKS, AKS หรือ GKS) ในการเรียกใช้และจัดการ Tableau Server ในคอนเทนเนอร์

Kubernetes อาจเป็นสภาพแวดล้อมที่ซับซ้อนในการเรียกใช้และแก้ไขข้อบกพร่อง และมักมีการขึ้นต่อกันอยู่กับโครงสร้างพื้นฐานและการตั้งค่าของบริษัทแต่ละแห่ง ด้วยเหตุนี้ ฝ่ายสนับสนุนของ Tableau จึงไม่สามารถช่วยลูกค้าแก้ไขปัญหา Kubernetes (หรือการปรับใช้โครงสร้างพื้นฐาน) ที่เกี่ยวข้องกับการเรียกใช้ Tableau Server ในคอนเทนเนอร์ได้ อย่างไรก็ตาม Tableau รองรับการเรียกใช้ Tableau Server ในคอนเทนเนอร์ Docker ดังนั้น หากคุณประสบปัญหาในการเรียกใช้ Tableau Server ในคอนเทนเนอร์โดยใช้ Kubernetes ฝ่ายสนับสนุนของ Tableau สามารถทำได้เพียงตรวจสอบว่าคอนเทนเนอร์ Docker ทำงานอย่างถูกต้องด้วยตัวเองเท่านั้น

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกใช้ Tableau Server ในคอนเทนเนอร์โดยใช้ Kubernetes โปรดดูที่เว็บไซต์ Github นี้: https://github.com/tableau/tableau-server-in-kubernetes(ลิงก์จะเปิดในหน้าต่างใหม่)

บันทึก

บันทึกเป็นทรัพยากรที่จำเป็นสำหรับการค้นหา ทำความเข้าใจ และแก้ไขปัญหาใน Tableau Server ซึ่งมีประโยชน์ในการช่วยให้ทีมสนับสนุนของเราค้นหาต้นตอของปัญหาที่คุณพบ บันทึกอาจมีประโยชน์สำหรับการแก้ไขข้อบกพร่องและการแก้ปัญหาของคุณเอง

การแยกข้อมูลบันทึกทั้งหมด

หากคุณต้องการแยกข้อมูลบันทึกทั้งหมดสำหรับการแก้ไขข้อบกพร่องเพิ่มเติม หรือเพื่อส่งไปยังทีมสนับสนุนของเรา มีวิธีการสองสามวิธีในการดึงข้อมูลนี้

Ziplogs

TSM สามารถสร้างไฟล์บีบอัดที่มีบันทึกเซิร์ฟเวอร์ที่เกี่ยวข้องทั้งหมด คุณสามารถทริกเกอร์ได้โดยการเรียกใช้คำสั่ง tsm maintenance ziplogs เมื่อคำสั่งเสร็จสิ้น ระบบจะรายงานเส้นทางไฟล์ของบันทึกที่เก็บถาวร คุณจะต้องคัดลอกไฟล์เก็บถาวรโดยใช้วิธีการถ่ายโอนไฟล์ที่เหมาะกับสถานการณ์ของคุณมากที่สุด สำหรับรายละเอียดเกี่ยวกับ ziplogs โปรดดู tsm maintenance ziplogs

ตัวอย่างคำสั่งที่ดำเนินการภายในคอนเทนเนอร์:

tsm maintenance ziplogs
คำสั่ง Tar ด้วยตนเอง

หากคุณไม่สามารถเรียกใช้คำสั่ง ziplogs ได้ ตัวอย่างเช่น หากเซิร์ฟเวอร์ไม่สามารถเข้าถึงสถานะที่สอดคล้องกัน คุณยังคงสามารถเรียกข้อมูลบันทึกได้โดยใช้คำสั่ง tar ภายในคอนเทนเนอร์ คุณจะต้องคัดลอกไฟล์เก็บถาวรโดยใช้วิธีการถ่ายโอนไฟล์ใดๆ ก็ตามที่เหมาะกับสถานการณ์ของคุณมากที่สุด

ตัวอย่างคำสั่งที่ดำเนินการภายในคอนเทนเนอร์ (เขียน tar ไปยังไดเรกทอรี temp ในไดเรกทอรีข้อมูลของคอนเทนเนอร์):

tar -zcvf /var/opt/tableau/tableau_server/temp/<archive_name>.tar.gz \
/var/opt/tableau/tableau_server/data/tabsvc/logs/. \
/var/opt/tableau/tableau_server/supervisord/ \
/var/opt/tableau/tableau_server/data/tabsvc/config/ \
/docker/.metadata.conf \
--exclude='*keystores' --exclude='*.jks' --exclude='*.tks' \
--exclude='*asset_keys.yml' --exclude='*.ks' --exclude='*.ts' \
--exclude='*.crt' --exclude='*cacerts' --exclude='*.key'
การนำทางบันทึกและคำแนะนำการแก้ไขข้อบกพร่อง

มีขั้นตอนทั่วไปในการวินิจฉัยปัญหาส่วนใหญ่ใน Tableau Server หากคุณกำลังคิดที่จะดูบันทึกของเซิร์ฟเวอร์ของคุณ เป็นการดีที่จะแยกย่อยข้อมูลที่ต้องค้นหาโดยขึ้นอยู่กับว่าข้อผิดพลาดเกิดขึ้นที่ใดในวงจรชีวิตเซิร์ฟเวอร์

การเริ่มต้นคอนเทนเนอร์ (เริ่มต้น / ติดตั้ง)

หากคอนเทนเนอร์ล้มเหลวในทันทีหรือไม่สามารถติดตั้งหรือเริ่มต้นได้ ให้ตรวจสอบทรัพยากรต่อไปนี้

Stdout ของคอนเทนเนอร์

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

ตัวอย่าง:

docker logs <container-name>

บันทึกสตาร์ทอัพของคอนเทนเนอร์ Tableau Server

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

/var/opt/tableau/tableau_server/supervisord/run-tableau-server.log

ตรวจสอบด้านล่างของบันทึกและดูว่ามีความล้มเหลวที่ได้รับรายงานหรือไม่ บางครั้งข้อผิดพลาดจะถูกรายงานและมีความชัดเจนทันทีจากบันทึก หากข้อผิดพลาดไม่ชัดเจนจากบันทึก อาจเป็นไปได้ที่สาเหตุที่แท้จริงจะมองเห็นได้เฉพาะในไฟล์บันทึกเฉพาะระยะหรือเฉพาะบริการ บันทึกที่แสดงด้านล่างครอบคลุมถึงความเป็นไปได้เหล่านี้

บันทึกการติดตั้ง Tableau Server

หากบันทึกสตาร์ทอัพระบุว่ามีปัญหากับระบบอัตโนมัติที่จัดการขั้นเริ่มต้น TSM ให้ตรวจสอบบันทึกนี้:

/var/opt/tableau/tableau_server/logs/app-install.log

บันทึกตัวควบคุม Tableau Server

หากบันทึกสตาร์ทอัพระบุว่ามีปัญหากับการเริ่มต้นและการเริ่มขั้นตอนเซิร์ฟเวอร์ (CLI เท่านั้น) ให้ตรวจสอบบันทึกการบริการ tabadmincontroller:

/var/opt/tableau/tableau_server/data/tabsvc/logs/tabadmincontroller/tabadmincontroller_node1-0.log

ไฟล์บันทึกนี้มีไว้สำหรับบริการเฉพาะที่เรียกว่า tabadmincontroller tabadmincontroller มีหน้าที่รับผิดชอบในการจัดระเบียบและผสมผสานการเริ่มต้นและฟังก์ชันการทำงานสตาร์ทอัพในเซิร์ฟเวอร์ บันทึกนี้อาจซับซ้อนและเป็นแบบ verbose ข้อผิดพลาดในไฟล์บันทึกนี้อาจยังไม่ชี้ไปที่สาเหตุที่แท้จริง บางครั้งข้อผิดพลาดเกิดจากบริการที่ tabadmincontroller ใช้ในการทำงานบางอย่างให้เสร็จสิ้น ตรวจสอบส่วนรันไทม์ของเซิร์ฟเวอร์ด้านล่างสำหรับรายละเอียดเพิ่มเติม

บันทึกบริการ - รันไทม์ของเซิร์ฟเวอร์

หาก Tableau Server พบปัญหาระหว่างรันไทม์ปกติหรือปัญหากับบริการที่ไม่สามารถทำงานให้เสร็จสิ้นหรือหยุดทำงาน คุณสามารถตรวจสอบบันทึกการบริการสำหรับข้อมูลเพิ่มเติม ทุกบริการที่ทำงานเป็นส่วนหนึ่งของ Tableau Server มีไฟล์บันทึกการบริการ หากคุณทราบว่าต้องการตรวจสอบบริการใด คุณสามารถค้นหาบันทึกของบริการนั้นได้ภายใต้ไดเรกทอรีทั่วไปนี้:

/var/opt/tableau/tableau_server/data/tabsvc/logs/<service_name>

ระบุชื่อของบริการใน arg <service_name> ของเส้นทางไฟล์ บริการใดๆ สามารถเขียนไฟล์บันทึกได้หลายประเภท นอกจากนี้ หากคุณมีบริการเดียวกันมากกว่าหนึ่งรายการที่ทำงานอยู่ (มากกว่าหนึ่งอินสแตนซ์) บันทึกบริการทั้งหมดเขียนลงในไดเรกทอรีบริการเดียวกัน

การจัดประเภทไฟล์บันทึกเฉพาะบริการทั่วไป

ตารางนี้ครอบคลุมชื่อไฟล์บันทึกการบริการ ประเภท และคำอธิบายที่พบบ่อยที่สุดสำหรับบริการ Tableau Server คอลัมน์ "ประเภทความล้มเหลว" ระบุว่าไฟล์บันทึกใดน่าจะมีประโยชน์ในสถานการณ์ความล้มเหลวที่กำหนด

ชื่อรูปแบบชื่อไฟล์คำอธิบายประเภทการล้มเหลวตัวอย่าง
แอปควบคุมcontrol_<service_name>_<node_id>-<instance_id>.logมีข้อมูลของกระบวนการแอปควบคุมที่รับผิดชอบในการติดตั้งและกำหนดค่าบริการ ซึ่งมักจะเป็นบันทึกแรกที่เขียนเกี่ยวกับบริการ สำหรับความล้มเหลวในการติดตั้งและกำหนดค่าบริการ ให้ดูที่นี่ก่อนติดตั้ง กำหนดค่า สถานะcontrol_backgrounder_node1-0.log
บันทึกบริการ<service_name>_<node_id>-<instance_id>.logบันทึกหลักสำหรับบริการที่ทำงานอยู่ ส่วนใหญ่บันทึกนี้มีเอาต์พุตจากเลเยอร์แอปพลิเคชันสปริง/จาวาเริ่ม รันไทม์ สถานะbackgrounder_node1-1.log
บันทึก Stdoutstdout_<service_name>_<instance_id>.logประกอบด้วยเอาต์พุต stdout สำหรับบริการ บริการส่วนใหญ่ไม่ได้ส่งเอาต์พุตเนื้อหาจำนวนมากไปยัง stdout และเขียนลงในบันทึกหลักแทน บางครั้งบันทึกนี้อาจประกอบด้วยข้อมูลที่เป็นประโยชน์เมื่อบริการออกจากการทำงานเริ่ม หยุดstdout_backgrounder_0.log
บันทึก NativeAPInativeapi_<service_name>_<instance_id>.txtบริการบางอย่างใช้งานเลเยอร์ของเนทีฟโค้ด บันทึกนี้รวบรวมส่วนดังกล่าวของรันไทม์ของแอปพลิเคชันใบอนุญาต เริ่ม รันไทม์ สถานะnativeapi_backgrounder_1-1_2021_05_10_00_00_00.txt
บันทึก Tomcattomcat_<service_name>_<node_id>-<instance_id>.logใช้สำหรับบริการที่ทำงานภายในคอนเทนเนอร์ Tomcat และมีบันทึกของ Tomcat เท่านั้น ไม่ค่อยให้ข้อมูลเกี่ยวกับความล้มเหลวของบริการ อาจเป็นประโยชน์ในการแก้ไขข้อบกพร่องปัญหาเครือข่ายบางอย่างเครือข่าย เริ่มtomcat_backgrounder_node1-0.2021-05-10.log
คอนเทนเนอร์หยุด

หากคอนเทนเนอร์หยุดทำงานหรือเรียกใช้คำสั่งได้ยาก คุณยังสามารถดูบันทึกได้ หากไดเรกทอรีข้อมูลของเซิร์ฟเวอร์ได้รับการทำให้เป็นภายนอกไปยังวอลุ่มที่เชื่อมต่ออยู่ มิฉะนั้น เฉพาะ stdout ของคอนเทนเนอร์เท่านั้นที่จะตรวจสอบได้ในระบบการจัดระเบียบและผสมผสานของคอนเทนเนอร์ ซึ่งบ่อยครั้งจะไม่ได้ประกอบด้วยสาเหตุที่แท้จริง

ความล้มเหลวในการตั้งค่าพร็อพเพอร์ตี้ของการตรวจสอบสิทธิ์

ดูเหมือนจะมีปัญหากับการตั้งค่าพร็อพเพอร์ตี้ของการตรวจสอบสิทธิ์ใน Tableau Server โดยไม่ได้ตั้งค่าที่เก็บข้อมูลประจำตัวก่อน เมื่อต้องการแก้ไขปัญหานี้ เพียงแค่ตั้งค่าที่เก็บข้อมูลประจำตัวในจุดแทรกโค้ดก่อนการกำหนดค่าเริ่มต้น

  1. สร้างไฟล์ชื่อ ./customer-files/pre_init_command ในไดเรกทอรี customer-files “เครื่องมือสร้างอิมเมจ” Tableau Server และแก้ไขให้มี:

    #!/bin/bash
    tsm configuration set -k wgserver.authenticate -v local --force-keys
  2. ตั้งค่าสคริปต์ให้เรียกใช้งานได้

    chmod +x ./customer-files/pre_init_command
  3. สร้างและเรียกใช้อิมเมจ

เกิดความล้มเหลวระหว่างการสตาร์ทอัพใหม่ (เช่น เหตุใด Tableau Server จึงไม่เริ่มทำงาน)

  • หากคุณประสบปัญหาในการเริ่มต้นหรือสตาร์ทอัพ Tableau Server มีตัวเลือกการแก้ปัญหาหลายอย่างที่อาจช่วยระบุปัญหาได้
  • หากคอนเทนเนอร์ไม่สามารถเริ่มได้เลย คุณจะต้องตรวจสอบ stdout จากกระบวนการ PID 1 โดยใช้คำสั่ง docker logs <container-name>
  • หากคอนเทนเนอร์กำลังทำงานอยู่ แต่ Tableau Server ดูเหมือนจะไม่เริ่มต้นหรือทำงานอย่างถูกต้อง ที่ถัดไปในการตรวจสอบข้อผิดพลาดคือไฟล์นี้:
${DATA_DIR}/supervisord/run-tableau-server.log

ตัวอย่าง:

docker exec -it <container-name> bash -c 'cat $DATA_DIR/supervisord/run-tableau-server.log'

ไฟล์บันทึกนี้มีเหตุการณ์ทั้งหมดที่จัดระเบียบและผสมผสานโดยบริการเริ่มต้นคอนเทนเนอร์ Tableau ที่จัดการการสตาร์ทอัพ Tableau Server รวมทั้งการเรียกใช้สคริปต์การตั้งค่าหรือการกำหนดค่าแบบกำหนดเองที่คุณอาจได้ทำไว้ในคอนเทนเนอร์ ข้อผิดพลาดในการสตาร์ทอัพส่วนใหญ่จะรายงานปัญหาที่นี่ บางครั้ง หากข้อผิดพลาดเกี่ยวข้องกับกระบวนการ TSM หรือ Tableau Server ระบบจะแนะนำไฟล์บันทึกอื่นเพื่อดูข้อมูลโดยละเอียดเพิ่มเติม

ความล้มเหลวในระหว่างการรีสตาร์ทหรือเริ่มคอนเทนเนอร์ด้วยข้อมูลที่มีอยู่

เซิร์ฟเวอร์จะไม่เริ่ม PostGRES (หรือกระบวนการอื่นๆ)

เมื่อข้อมูลยังคงอยู่นอกคอนเทนเนอร์ และคุณกำลังเริ่มต้น Tableau Server อื่นในอินสแตนซ์อิมเมจคอนเทนเนอร์โดยใช้ข้อมูลเก่านั้น สิ่งสำคัญคือต้องสังเกตว่าชื่อโฮสต์ภายในของคอนเทนเนอร์ใหม่ต้องตรงกับชื่อโฮสต์ของคอนเทนเนอร์ที่เริ่มต้นข้อมูลที่ยังคงอยู่ Tableau Server ไม่สามารถจัดการการเปลี่ยนแปลงชื่อโฮสต์แบบไดนามิกได้ดี และการเริ่มคอนเทนเนอร์ใหม่ด้วยชื่อโฮสต์ภายในที่แตกต่างกันทำให้เกิดสถานการณ์ดังกล่าวได้อย่างมีผล

วิธีแก้ไขคือเพียงตรวจสอบให้แน่ใจว่าชื่อโฮสต์ของคอนเทนเนอร์ถูกตั้งค่าเป็นค่าเดียวกับคอนเทนเนอร์ที่เรียกใช้ด้วยข้อมูลนั้นก่อนหน้านี้ เพื่อไม่ให้สับสนกับ “หลายโหนด” ผู้ปฏิบัติงานสามารถ (และอาจควรมี) ชื่อโฮสต์ที่แตกต่างกัน สิ่งสำคัญคือเมื่อคอนเทนเนอร์ที่กำหนดได้รับการรีสตาร์ทหรือหยุดทำงาน คอนเทนเนอร์ที่ตามมาจะต้องมีชื่อโฮสต์เดียวกันกับอันก่อน

ตัวอย่างการกำหนดค่าการปรับใช้

ด็อกเกอร์

การใช้งานพื้นฐานของ Tableau Server ในคอนเทนเนอร์
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
การใช้งานพื้นฐานของ Tableau Server ในคอนเทนเนอร์พร้อมผู้ใช้ที่เป็นผู้ดูแลระบบเริ่มต้นที่ทำงานอัตโนมัติ
docker run \
-e LICENSE_KEY=<key> \
-e TABLEAU_USERNAME=<myadmin> \
-e TABLEAU_PASSWORD_FILE=/etc/tableau-admin-secret \
-v <full-path-to-pw-file>:/etc/tableau-admin-secret \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
โหมด TSM เท่านั้น
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
การใช้งานพื้นฐานของโหนดหลายโหนด
โหนดตั้งต้น

ตัวเลือกที่ 1: ใช้ตัวเลือกนี้หากการกำหนดค่าเซิร์ฟเวอร์ (CONFIG_FILE) ระบุโทโพโลยีแบบหลายโหนด:

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-v <full-path-to-config-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<name-of-host-machine> \
-d <Tableau Server in a Container image ID or tag>

ตัวเลือกที่ 2: ใช้ตัวเลือกนี้หากคุณต้อวการปรับใช้หลายโหนดแม้การกำหนดค่าเซิร์ฟเวอร์จะไม่ได้ระบุโทโพโลยีแบบหลายโหนดก็ตาม:

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e LICENSE_KEY=<key> -e ALWAYS_WRITE_BOOTSTRAP_FILE=1 \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<name-of-host-machine> \
-d <Tableau Server in a Container image ID or tag>
โหนดเพิ่มเติม
docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e BOOTSTRAP_INSTALL=1 \
-p 8080:8080 -p 8800-9000:8800-9000 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
ทำให้การใช้งานข้อมูลเป็นภายนอก
docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
---hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
การใช้งานพื้นฐานของคอนเทนเนอร์ตั้งต้น

คอนเทนเนอร์ตั้งต้น

docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
-e INIT_CONTAINER=1 \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

เรียกใช้คอนเทนเนอร์

docker run \
-v <empty-data-dir>:/var/opt/tableau \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
การกู้คืนพื้นฐานจากโหนดเดี่ยวที่สำรองไว้
docker run \
-v <full-path-to-backup-file>:/docker/config/backup/backup-file.tsbak \
-v <full-path-to-config-only-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Docker-Compose

version: '3.2'
services:
    tableau-server:
         hostname: localhost
         volumes:
              - <your-tsm-command-file>:/docker/config/tsm-commands:ro
              - <your-config-file >:/docker/config/config.json:ro
         ports:
              - "8080:8080"
         image: ${IMAGE_NAME}
         environment:
              - LICENSE_KEY=<license-key>