ฟังก์ชันการซิงค์อัตโนมัติของ GAL ใน Zimbra ทำงานอย่างไรกันแน่
หากผู้ใช้สามารถค้นหาในรายชื่อผู้ติดต่อทั่วโลก (Global Address List หรือ GAL) ได้ แต่ผู้ติดต่อที่สร้างใหม่หรือเปลี่ยนแปลงไม่ปรากฏจนกว่าจะผ่านไปนาน สาเหตุส่วนใหญ่มักไม่ใช่ “GAL ถูกปิดใช้งาน” แต่เป็นเพราะบัญชีซิงค์ GAL มีอยู่จริง แต่ช่วงเวลาการตรวจสอบข้อมูลจากแหล่งข้อมูลนานเกินไป แหล่งข้อมูลถูกปิดใช้งาน หรือการซิงค์ตามกำหนดการครั้งล่าสุดล้มเหลว
คู่มือผู้ดูแลระบบ Daffodil (v10) ฉบับปัจจุบันของ Zimbra อธิบายว่า GAL เป็นคุณสมบัติเฉพาะโดเมน โดยมีสามโหมด ได้แก่ ภายใน ภายนอก และทั้งสองอย่าง บัญชีซิงค์ GAL จะจัดเก็บรายชื่อติดต่อ GAL ที่ซิงค์แล้วไว้ในสมุดที่อยู่ เพื่อให้ไคลเอนต์สามารถใช้งานฟังก์ชันเติมข้อความอัตโนมัติและการเรียกดูข้อมูลได้เร็วขึ้น Zimbra ยังระบุด้วยว่า หากไม่มีบัญชีซิงค์ GAL ระบบสามารถเปลี่ยนไปใช้การค้นหาแบบดั้งเดิมโดยใช้ LDAP ได้ ความแตกต่างนี้มีความสำคัญ เพราะการค้นหาที่สำเร็จไม่ได้หมายความว่าการซิงค์ GAL ตามกำหนดเวลาจะทำงานได้อย่างปกติ
อ้างอิง: คู่มือผู้ดูแลระบบ Zimbra Daffodil v10
ก่อนที่จะเปลี่ยนแปลงอะไร ให้ตรวจสอบโหมด GAL ปัจจุบันและทำการซิงค์บัญชีก่อน
เรียกใช้คำสั่งผู้ดูแลระบบในฐานะzimbraผู้ใช้ระบบปฏิบัติการ:
su - zimbra
zmprov gd example.com | egrep 'zimbraGalMode|zimbraGalMaxResults|zimbraGalAccountId'
แทนที่example.comด้วยโดเมน Zimbra จริง ผลลัพธ์แรกที่มีประโยชน์คือโหมด GAL:
- ภายใน : ข้อมูล GAL มาจากไดเร็กทอรี LDAP ของ Zimbra
- ภายนอก : การค้นหาและการซิงโครไนซ์ GAL ใช้ไดเร็กทอรี LDAP ภายนอก เช่น Active Directory
- ทั้งสองแบบ : Zimbra ผสานรวมแหล่งข้อมูล GAL ภายในและภายนอกเข้าด้วยกัน
ความเข้าใจผิดที่พบบ่อย:โหมด GAL และการซิงโครไนซ์ GAL ไม่ใช่การตั้งค่าเดียวกัน โหมด GAL จะบอก Zimbra ว่าข้อมูลไดเร็กทอรีมาจากที่ใด การซิงโครไนซ์อัตโนมัติถูกควบคุมโดยแหล่งข้อมูล GAL และช่วงเวลาการสำรวจข้อมูลการดำเนินการ:ตรวจสอบโหมดโดเมนก่อน จากนั้นตรวจสอบแหล่งข้อมูลแทนที่จะเปลี่ยนการตั้งค่าการเติมข้อความอัตโนมัติที่ไม่เกี่ยวข้อง
ตรวจสอบแหล่งข้อมูลการซิงค์ GAL ก่อนแก้ไขกำหนดการ
หากโดเมนมีบัญชีการซิงค์ GAL อยู่แล้ว ให้ระบุแหล่งข้อมูลของบัญชีนั้น:
zmprov gds galsync@example.com
มองหาค่าต่างๆ เช่น:
zimbraDataSourceName: InternalGAL
zimbraDataSourceEnabled: TRUE
zimbraDataSourcePollingInterval: 1d
zimbraGalLastSuccessfulSyncTimestamp: ...
zimbraGalLastFailedSyncTimestamp: ...
zimbraGalStatus: enabled
ชื่อแหล่งข้อมูลที่แน่นอนอาจแตกต่างกันไปInternalGALเป็นชื่อที่ใช้กันทั่วไปสำหรับแหล่งข้อมูลภายใน ส่วนแหล่งข้อมูลภายนอกอาจมีชื่อว่าExternalGAL, ADGAL, หรือชื่ออื่น ๆ ที่ผู้ดูแลระบบเลือก
เอกสารจากศูนย์เทคโนโลยีของ Zimbra ระบุว่า ช่วงเวลาการตรวจสอบแหล่งข้อมูลจะเป็นตัวกำหนดความถี่ในการนำเข้าข้อมูลอัตโนมัติ คู่มือผู้ดูแลระบบเวอร์ชัน 10 ปัจจุบันยังระบุด้วยว่า ช่วงเวลานี้สามารถระบุเป็นวัน ชั่วโมง นาที หรือวินาทีได้ และตั้งค่าได้ต่อแหล่งข้อมูล
อ้างอิง: ศูนย์เทคโนโลยี Zimbra: บัญชี GAL Sync
กำหนดช่วงเวลาการตรวจสอบ GAL ที่เหมาะสม
หากต้องการเปลี่ยนแหล่งข้อมูลที่มีอยู่ให้ซิงโครไนซ์ทุกชั่วโมง:
zmprov mds galsync@example.com InternalGAL zimbraDataSourcePollingInterval 1h
ตัวอย่างอื่นๆ ได้แก่30m, 12h, หรือ1dเอกสารโครงสร้างข้อมูลที่เผยแพร่โดย Zimbra ใช้หน่วยระยะเวลา เช่นh, m, s, dและ
ช่วงเวลาที่สั้นลงไม่ได้หมายความว่าจะดีกว่าเสมอไป สำหรับไดเร็กทอรีภายในขนาดเล็ก หนึ่งชั่วโมงอาจเหมาะสม แต่สำหรับไดเร็กทอรี LDAP ภายนอกขนาดใหญ่หรือ Active Directory ที่เชื่อมต่อผ่าน WAN การตรวจสอบบ่อยเกินไปอาจสร้างภาระที่ไม่จำเป็นให้กับไดเร็กทอรีและเซิร์ฟเวอร์กล่องจดหมายคำแนะนำ:เลือกช่วงเวลาตามความเร็วที่การเปลี่ยนแปลงในไดเร็กทอรีต้องแสดงผล และค่าใช้จ่ายในการซิงค์แบบเต็มหรือแบบเพิ่มทีละส่วนในสภาพแวดล้อมของคุณ
ความเข้าใจผิดที่พบบ่อย: forceSyncไม่ได้ตั้งค่าการซิงค์อัตโนมัติ แต่จะเริ่มการซิงค์ทันที กำหนดการแบบวนซ้ำมาจากzimbraDataSourcePollingInterval... วิธีแก้ไข:ตั้งค่าช่วงเวลาก่อน จากนั้นใช้การซิงค์แบบบังคับเพื่อตรวจสอบความถูกต้องของการตั้งค่าทันทีเท่านั้น
บังคับให้ซิงค์หนึ่งครั้งเพื่อตรวจสอบการตั้งค่า
หลังจากตั้งค่าช่วงเวลาแล้ว ให้เริ่มการซิงโครไนซ์ทันที:
zmgsautil forceSync -a galsync@example.com -n InternalGAL
ใช้ชื่อแหล่งข้อมูลที่ได้จากคำสั่งนั้นอย่างถูกต้องzmprov gdsเอกสารอย่างเป็นทางการของ Zimbra Tech Center ใช้คำสั่งนี้สำหรับทั้งแหล่งข้อมูล GAL ภายในและภายนอก
จากนั้นตรวจสอบแหล่งข้อมูลอีกครั้ง:
zmprov gds galsync@example.com | egrep 'zimbraDataSourceName|zimbraDataSourceEnabled|zimbraDataSourcePollingInterval|zimbraGalLastSuccessfulSyncTimestamp|zimbraGalLastFailedSyncTimestamp|zimbraGalStatus'
ผลการตรวจสอบที่มีประโยชน์ไม่ได้หมายความเพียงแค่ “คำสั่งทำงานเสร็จโดยไม่มีข้อผิดพลาดที่เห็นได้ชัด” คุณควรจะเห็นเวลาประทับการซิงค์ที่สำเร็จล่าสุด แหล่งข้อมูลที่เปิดใช้งาน ช่วงเวลาการตรวจสอบที่คาดไว้ และไม่มีเวลาประทับการซิงค์ที่ล้มเหลวที่ใหม่กว่าซึ่งบ่งชี้ว่าการดำเนินการล้มเหลวซ้ำแล้วซ้ำเล่า
วิธีการตั้งค่าการซิงค์อัตโนมัติ GAL จากคอนโซลผู้ดูแลระบบ
สำหรับโดเมนใหม่หรือโดเมนที่ได้รับการกำหนดค่าใหม่ เส้นทางกราฟิกที่รองรับใน Zimbra v10 คือผ่านการกำหนดค่า GAL ของโดเมน:
- เปิดคอนโซลการจัดการ Zimbra
- ไปที่กำหนดค่า →โดเมน
- เลือกโดเมนที่ต้องการ
- เปิดการตั้งค่า GALจากเมนูการดำเนินการของโดเมน
- เลือกภายในภายนอกหรือทั้งสอง อย่างตาม ความเหมาะสม
- ยืนยันชื่อบัญชีการซิงค์ GAL และชื่อแหล่งข้อมูล
- ตั้งค่าช่วงเวลาการตรวจสอบ GAL
- ทำตามขั้นตอนในตัวช่วยสร้างให้เสร็จก่อน จากนั้นจึงใช้งาน
zmgsautil forceSyncหากต้องการทดสอบทันที
คู่มือผู้ดูแลระบบเวอร์ชัน 10 ระบุไว้อย่างชัดเจนว่า เมื่อโหมด GAL เป็น " ทั้งสอง"ระบบจะสร้างสมุดที่อยู่สำหรับแหล่งข้อมูล LDAP แต่ละแหล่ง นอกจากนี้ยังเตือนผู้ดูแลระบบไม่ให้แก้ไขสมุดที่อยู่ที่มีการซิงค์เหล่านั้นโดยตรง เนื่องจากกระบวนการซิงค์อาจเขียนทับการเปลี่ยนแปลงที่แก้ไขด้วยตนเองการดำเนินการ:ให้ทำการเปลี่ยนแปลงไดเร็กทอรีที่แหล่งข้อมูล LDAP หลัก ไม่ใช่ในสมุดที่อยู่ที่สร้างขึ้นโดยบัญชีซิงค์ GAL
จะทำอย่างไรหากบัญชีซิงค์ GAL ไม่มีอยู่?
สำหรับการติดตั้งระบบใหม่ ควรใช้ Admin Console เมื่อเป็นไปได้ เนื่องจากจะช่วยรักษาความสอดคล้องของโดเมน บัญชี GAL และความสัมพันธ์ของแหล่งข้อมูล
ศูนย์เทคโนโลยีของ Zimbra ยังได้จัดทำเอกสารเกี่ยวกับการสร้าง CLI ด้วยzmgsautil createAccountตัวอย่าง Internal-GAL ที่มีการบันทึกไว้มีดังนี้:
zmgsautil createAccount -a galsync@example.com -n InternalGAL --domain example.com -s mailstore.example.com -t zimbra -f _InternalGAL
ตัว-sเลือก mailbox-server มีเอกสารอธิบายไว้สำหรับ ZCS 8 และเวอร์ชันที่ใหม่กว่าในบทความ Tech Center เนื่องจากพฤติกรรมของคำสั่งบรรทัดอาจแตกต่างกันไปตามเวอร์ชันและการจัดแพ็กzmgsautilเกจ โปรดตรวจสอบความช่วยเหลือบนเซิร์ฟเวอร์ที่ติดตั้งไว้ก่อนสร้างบัญชีใหม่ แทนที่จะคัดลอกคำสั่งเก่าโดยไม่ตรวจสอบให้ดี
ความเข้าใจผิดที่พบบ่อย:การลบบัญชี GAL ที่เสียหายด้วยคำสั่งลบบัญชีทั่วไปนั้นไม่เท่ากับการลบโดยใช้ยูทิลิตี้ GAL ศูนย์เทคนิคของ Zimbra เตือนว่าการลบบัญชี GAL อย่างไม่ถูกต้องอาจทำให้โดเมนzimbraGalAccountIdชี้ไปยังบัญชีที่ไม่ถูกต้องได้การดำเนินการ:หากคุณจำเป็นต้องลบและสร้างบัญชี GAL ใหม่จริงๆ ให้ปฏิบัติตามzmgsautil deleteAccountขั้นตอนที่ระบุไว้แทนที่จะปฏิบัติต่อมันเหมือนกับบัญชีกล่องจดหมายทั่วไป
อ้างอิง: ศูนย์เทคนิค Zimbra: การลบ การสร้าง และการซิงค์ข้อมูลบัญชี GAL แบบบังคับ
LDAP ภายนอก หรือ Active Directory: มีอะไรเปลี่ยนแปลงบ้าง?
เมื่อใช้ GAL ภายนอก กลไกการกำหนดเวลาจะยังคงเป็นช่วงเวลาการตรวจสอบแหล่งข้อมูล GAL แต่การซิงโครไนซ์ที่สำเร็จจะขึ้นอยู่กับการกำหนดค่า LDAP ภายนอกด้วย ได้แก่ URL ของเซิร์ฟเวอร์, bind DN, รหัสผ่าน bind, ฐานการค้นหา และตัวกรอง
เอกสารของ Zimbra ระบุว่า แหล่งข้อมูลภายนอกแหล่งแรกสามารถรับการกำหนดค่า GAL จากโดเมนได้ แหล่งข้อมูลเพิ่มเติมสามารถกำหนดค่าด้วยการตั้งค่าการเชื่อมต่อ LDAP ของตนเองได้ หากการซิงโครไนซ์ภายนอกล้มเหลว การลดช่วงเวลาการสำรวจจะไม่สามารถแก้ไขปัญหาที่เกิดจากรหัสผ่านการเชื่อมต่อไม่ถูกต้อง โฮสต์ LDAP ที่เข้าถึงไม่ได้ ฐานการค้นหาไม่ถูกต้อง ปัญหา TLS หรือตัวกรองที่ยกเว้นผู้ใช้ที่คาดหวังได้
การดำเนินการ:หากforceSyncล้มเหลว ให้ตรวจสอบการเชื่อมต่อไดเร็กทอรีภายนอกและตัวกรองก่อนที่จะลดช่วงเวลาลงอีก
วิธีตรวจสอบว่าการซิงค์อัตโนมัติทำงานได้จริงหรือไม่
โปรดใช้รายการตรวจสอบความถูกต้องแบบสั้นนี้หลังจากทำการตั้งค่าเสร็จสิ้น:
| ตรวจสอบ | สัญญาณที่ดี | ถ้าไม่แข็งแรง |
| เปิดใช้งานแหล่งข้อมูล | zimbraDataSourceEnabled: TRUE | เปิดใช้งานหรือซ่อมแซมแหล่งข้อมูลก่อนทำการเปลี่ยนแปลงเวลา |
| ช่วงเวลาการสำรวจ | ตรงกับค่าที่ต้องการ เช่น1h | แก้ไขด้วยzmprov mds. |
| การซิงค์แบบบังคับด้วยตนเอง | เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด | ตรวจสอบการตั้งค่าแหล่งข้อมูลหรือ LDAP |
| ประทับเวลาการซิงค์สำเร็จ | การอัปเดตหลังจากซิงค์ข้อมูลแบบบังคับ | ตรวจสอบบันทึกเซิร์ฟเวอร์และการตั้งค่าแหล่งข้อมูล |
| รายการใหม่ในไดเร็กทอรี | ปรากฏขึ้นหลังจากรอบการทำงานที่กำหนดไว้ครั้งถัดไป | เปรียบเทียบข้อมูล LDAP ต้นทาง เวลาประทับ และการกรองข้อมูล |
อย่าใช้ฟังก์ชันเติมข้อความอัตโนมัติเพียงอย่างเดียวในการตรวจสอบสถานะการทำงาน เนื่องจาก Zimbra อาจเปลี่ยนไปใช้การค้นหา GAL แบบ LDAP เมื่อบัญชีซิงค์ไม่พร้อมใช้งาน ผู้ใช้จึงอาจยังคงพบชื่อแม้ว่าการซิงค์สมุดที่อยู่ GAL ตามกำหนดเวลาจะล้าสมัยแล้วก็ตาม
การแก้ไขปัญหาเมื่อตารางเวลาดูถูกต้อง แต่ข้อมูลยังคงล้าสมัย
ตรวจสอบเวลาประทับของการซิงโครไนซ์ที่ล้มเหลว
หากzimbraGalLastFailedSyncTimestampเวลาที่ใช้ใหม่กว่าเวลาที่บันทึกไว้ครั้งล่าสุดที่สำเร็จ แสดงว่าตัวกำหนดเวลาอาจทำงานถูกต้อง แต่แหล่งข้อมูลอาจล้มเหลว ซึ่งแตกต่างจาก "การซิงค์อัตโนมัติถูกปิดใช้งาน" วิธีแก้ไข:แก้ไขปัญหาแหล่งข้อมูลแทนการเปลี่ยนช่วงเวลาการตรวจสอบซ้ำๆ
ตรวจสอบบันทึกกล่องจดหมายในช่วงเวลาที่มีการพยายามซิงค์ข้อมูล
Zimbra /opt/zimbra/log/mailbox.logบันทึกกิจกรรมหลักของ mailboxd ไว้ในเอกสารนี้ ใช้เอกสารนี้เพื่อเชื่อมโยงข้อผิดพลาดที่เกิดขึ้นในช่วงเวลาที่มีการดำเนินการ GAL แบบบังคับหรือตามกำหนดเวลา:
tail -f /opt/zimbra/log/mailbox.log
สำหรับระบบที่ใช้งานจริง ควรหลีกเลี่ยงการเปิดใช้งานการบันทึกข้อมูลการดีบักแบบกว้างๆ เว้นแต่ว่าคุณจำเป็นต้องใช้และเข้าใจถึงปริมาณข้อมูลบันทึกที่เพิ่มขึ้น
หากพบรายชื่อผู้ติดต่อซ้ำกัน โปรดตรวจสอบแหล่งข้อมูลที่ซ้ำกัน
Zimbra ระบุว่า แหล่งข้อมูล GAL หลายแหล่งที่มีขอบเขตการค้นหาทับซ้อนกันอาจนำเข้าข้อมูลซ้ำซ้อนได้ และระบบจะไม่ทำการแก้ไขข้อมูลซ้ำซ้อนเหล่านั้นโดยอัตโนมัติวิธีแก้ไข:จำกัดขอบเขตการค้นหา LDAP หรือกรองข้อมูลเพื่อให้แต่ละแหล่งข้อมูลมีขอบเขตที่ชัดเจน จากนั้นทำการซิงค์ข้อมูลใหม่
ห้ามเปลี่ยนชื่อบัญชีซิงค์ GAL ที่มีอยู่แล้ว
คู่มือผู้ดูแลระบบ Zimbra v10 ฉบับปัจจุบันระบุว่า การเปลี่ยนชื่อหลังจากสร้างแล้วอาจทำให้การซิงโครไนซ์หยุดชะงักได้ หากต้องการเปลี่ยนชื่อ ให้ลบและสร้างการกำหนดค่า GAL ใหม่โดยใช้กระบวนการที่รองรับคำแนะนำ:อย่าเปลี่ยนชื่อบัญชีการซิงโครไนซ์ GAL ที่ใช้งานได้ เว้นแต่จะมีเหตุผลการใช้งานจริงที่ต้องสร้างใหม่
รูปแบบการกำหนดค่าที่แนะนำ
สำหรับการใช้งานแบบโดเมนเดียวทั่วไป วิธีการที่เชื่อถือได้คือ:
- รักษารูปแบบ GAL ให้ถูกต้องตามโครงสร้างไดเร็กทอรี
- ใช้บัญชีซิงค์ GAL เฉพาะที่สร้างขึ้นผ่านขั้นตอนการกำหนดค่า GAL ของ Zimbra
- เปิดใช้งานแหล่งข้อมูลแต่ละแหล่งไว้เสมอ
- ตั้งค่าช่วงเวลาการตรวจสอบให้ตรงกับระยะเวลาหน่วงที่ยอมรับได้สำหรับการเปลี่ยนไดเร็กทอรี
- ใช้
zmgsautil forceSyncสำหรับการตรวจสอบความถูกต้องหรือแก้ไขปัญหาเบื้องต้นเท่านั้น
- ตรวจสอบความสำเร็จด้วยการประทับเวลาจากแหล่งข้อมูล ไม่ใช่แค่การเติมข้อความอัตโนมัติของผู้ใช้เท่านั้น
- สำหรับ LDAP ภายนอก ให้จัดการการเชื่อมต่อ ข้อมูลรับรองการผูกข้อมูล ฐานการค้นหา และตัวกรองเป็นส่วนประกอบที่แยกจากกัน
หากการตรวจสอบเหล่านั้นผ่าน Zimbra ควรจะอัปเดตสมุดที่อยู่สำหรับการซิงค์ GAL ตามกำหนดเวลาที่ตั้งค่าไว้ หากการประทับเวลาหยุดเดินหน้าหรือการซิงค์แบบบังคับล้มเหลว ขั้นตอนต่อไปไม่ใช่การลดช่วงเวลาลง แต่เป็นการระบุแหล่งข้อมูลหรือข้อผิดพลาด LDAP ที่ขัดขวางไม่ให้งานตามกำหนดเวลาเสร็จสมบูรณ์