วิธีใช้การตรวจสุขภาพอย่างมีประสิทธิผลใน HAProxy

Withi Chi Kar Trwc Sukhphaph Xyang Mi Prasiththiphl Ni Haproxy



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

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

การตรวจสุขภาพใน HAProxy คืออะไร

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







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



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



$ sudo นาโน /etc/haproxy/haproxy.cfg

นี่คือตัวอย่างพื้นฐานของส่วนหน้าที่ผูกพอร์ต 80 ตั้งค่าหน้าสถิติ และระบุแบ็กเอนด์เริ่มต้น





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



ตัวอย่างที่ 1: การนำการตรวจสุขภาพที่ใช้งานอยู่ไปใช้อย่างมีประสิทธิผล

วิธีง่ายๆ ในการใช้การตรวจสอบสภาพใน HAProxy คือการตั้งค่าการตรวจสอบสภาพที่ใช้งานอยู่ ด้วยตัวเลือกนี้ HAProxy จะพยายามเชื่อมต่อกับเซิร์ฟเวอร์ หากไม่มีการส่งการตอบสนอง จะถือว่าเซิร์ฟเวอร์ไม่มีประสิทธิภาพและลบออกจากการหมุนเวียน วิธีเริ่มต้นในการดำเนินการตรวจสอบสภาพที่ใช้งานอยู่คือการเพิ่มคีย์เวิร์ด “ตรวจสอบ” ในทุกบรรทัดเซิร์ฟเวอร์เพื่อให้ HAProxy ตรวจสอบทั้งหมด

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

ตัวอย่างที่ 2: การใช้การตรวจสุขภาพ HTTP

ด้วยการตรวจสอบสภาพ HTTP นั้น HAProxy จะส่งคำขอ HTTP ไปยังเซิร์ฟเวอร์ทั้งหมดด้วยคำสำคัญ “ตรวจสอบ” จากการตอบกลับ จะสรุปสถานะของเซิร์ฟเวอร์ ตัวอย่างการตอบกลับของเซิร์ฟเวอร์ที่ประสบความสำเร็จจะอยู่ในช่วง 2xx หรือ 3xx การตอบสนองเช่น 200 OK หมายความว่าเซิร์ฟเวอร์อยู่ในสถานะที่ดี

สำหรับตัวอย่างนี้ ให้เพิ่มบรรทัด “option httpchk” ในแบ็กเอนด์ของคุณ

ตัวอย่างที่ 3: การทำงานกับคำขอ GET

HAProxy ส่งคำขอ GET ไปยังเส้นทาง “/” เมื่อทำการร้องขอ HTTP อย่างไรก็ตาม หากคุณกำหนดค่าตำแหน่งข้อมูลไว้ในเส้นทางอื่น คุณสามารถระบุเส้นทาง URL เช่น “/health” ได้ และ HAProxy จะส่งคำขอ GET ไปยังปลายทางนั้น

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

ตัวอย่างที่ 4: การระบุเส้นทางคำขอ GET และสถานะการตอบกลับ

ด้วยตำแหน่งข้อมูล คุณสามารถระบุการตอบสนองที่สำเร็จที่คาดหวังจากคำขอ GET ตำแหน่งข้อมูลเพื่อกำหนดสถานะของเซิร์ฟเวอร์ สำหรับตัวอย่างนี้ เส้นทางคำขอ GET ของเราคือ “/health” และเราคาดหวังสถานะการตอบกลับ 200 เพื่อยืนยันว่าเซิร์ฟเวอร์อยู่ในสภาพที่ดีที่จะจัดการสมดุลโหลดและงานอื่นๆ

เมื่อคุณแก้ไขไฟล์การกำหนดค่า HAProxy แล้ว ให้รีสตาร์ท HAProxy เพื่อให้การเปลี่ยนแปลงมีผล

แค่นั้นแหละ! คุณดำเนินการตรวจสุขภาพที่มีประสิทธิผลบน HAProxy ของคุณ คุณสามารถเข้าถึงหน้าสถิติหรือตรวจสอบไฟล์บันทึกด้วยคำสั่งต่อไปนี้เพื่อยืนยันว่าการตรวจสอบสภาพทำงานตามที่คาดไว้:

$ หาง -f /var/log/haproxy.log

บทสรุป

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