เลือก Docker Logging Driver ให้เหมาะกับระบบ
Docker Logging Driver กำหนดวิธีเก็บและส่ง stdout กับ stderr ของคอนเทนเนอร์ อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ
Docker Logging Driver กำหนดวิธีเก็บและส่ง stdout กับ stderr ของคอนเทนเนอร์ เหมาะกับระบบที่ต้องควบคุมพื้นที่ log และส่งข้อมูลเข้าแพลตฟอร์มตรวจสอบกลาง บทความนี้สรุปแนวคิดจากเอกสารทางการของ Docker และจุดที่ควรตรวจเมื่อนำไปใช้จริง
ภาพรวม
Docker แยกแอปและ dependency ไว้ในคอนเทนเนอร์ การใช้งานจริงต้องดูทั้งอิมเมจ สิทธิ์ เครือข่าย และข้อมูลที่ต้องอยู่ต่อหลังคอนเทนเนอร์ถูกแทนที่
หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Docker Logging Driver กำหนดวิธีเก็บและส่ง stdout กับ stderr ของคอนเทนเนอร์ จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ
หลักการทำงาน
daemon เลือก driver เริ่มต้นหรือกำหนดเป็นรายคอนเทนเนอร์ และใช้ตัวเลือกต่างกันตามปลายทาง log
ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม
เหมาะกับงานแบบไหน
เหมาะกับระบบที่ต้องควบคุมพื้นที่ log และส่งข้อมูลเข้าแพลตฟอร์มตรวจสอบกลาง
ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง
ขั้นตอนนำไปใช้
- ตรวจอิมเมจและ Compose configuration ที่จะใช้จริง
- ทดสอบการสร้างคอนเทนเนอร์ใหม่ รวมถึง mount, network และ healthcheck
- บันทึกวิธีย้อนเวอร์ชันอิมเมจและกู้ข้อมูลจาก Volume
เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน
ข้อควรระวัง
ต้องกำหนดการหมุนไฟล์หรือ retention ไม่เช่นนั้น log อาจกินพื้นที่โฮสต์จนเต็ม
แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ
สรุป
Docker Logging Driver กำหนดวิธีเก็บและส่ง stdout กับ stderr ของคอนเทนเนอร์ เหมาะกับระบบที่ต้องควบคุมพื้นที่ log และส่งข้อมูลเข้าแพลตฟอร์มตรวจสอบกลาง ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่
อ่านเพิ่มเติม: เอกสารทางการของ Docker