วิธีใช้งานล็อกของ Docker อย่างถูกต้อง
(insight.infograb.net)- ระหว่างให้บริการหลังดีพลอยแอปพลิเคชันด้วย Docker บนเซิร์ฟเวอร์ Linux อาจพบข้อความแจ้งว่าพื้นที่ดิสก์ไม่เพียงพอ
- แม้ว่าปริมาณข้อมูลและล็อกที่แอปพลิเคชันสร้างและจัดเก็บจริงจะมีไม่มาก แต่พื้นที่สตอเรจของทั้งระบบก็อาจเต็มได้
- หนึ่งในสาเหตุของปัญหาพื้นที่สตอเรจไม่พอเมื่อใช้ Docker คือ 'ล็อกของคอนเทนเนอร์ Docker'
- Docker logging driver และตำแหน่งของล็อก
- logging driver: ใน Docker มีกลไกการบันทึกล็อกที่ช่วยให้ดึงข้อมูลจากคอนเทนเนอร์และบริการที่กำลังทำงานอยู่ได้ ซึ่งก็คือ logging driver
- คำสั่ง
docker logs: แสดงข้อมูลที่คอนเทนเนอร์ที่กำลังทำงานบันทึกไว้ - คำสั่ง
docker service logs: แสดงข้อมูลที่คอนเทนเนอร์ทั้งหมดที่เข้าร่วมใน service บันทึกไว้ - Docker ใช้ logging driver แบบ
json-fileที่จับ standard output(stdout) หรือ standard error(stderr) ของล็อกคอนเทนเนอร์ทั้งหมด แล้วบันทึกลงไฟล์ในรูปแบบ JSON - เมื่อรันคอนเทนเนอร์ Docker ด้วยคำสั่ง
docker runหรือdocker-compose upจะมีการสร้างไฟล์/var/lib/docker/containers/[Container-ID]/[Container-ID]-json.logและบันทึกล็อกลงไป - logging driver แบบ
json-fileไม่ทำ log rotation- ถ้าคอนเทนเนอร์สร้างเอาต์พุตจำนวนมาก ไฟล์ล็อกที่เก็บด้วย logging driver นี้จะใช้พื้นที่ดิสก์จำนวนมาก และอาจทำให้พื้นที่ดิสก์หมดได้
- การลดขนาดล็อกของคอนเทนเนอร์ Docker
- เมื่อรันคำสั่ง
docker rmหรือdocker-compose downคอนเทนเนอร์ Docker จะถูกลบ และไดเรกทอรีที่ตรงกับ[Container-ID]ใต้/var/lib/docker/containersก็จะถูกลบด้วย- ส่งผลให้ไฟล์
[Container-ID]-json.logที่กินพื้นที่ดิสก์จำนวนมากถูกลบไปพร้อมกัน ช่วยคืนพื้นที่ดิสก์ของระบบโดยรวม
- ส่งผลให้ไฟล์
- เมื่อรันคำสั่ง
truncate -s 0 <json-log-file>จะทำให้ขนาดไฟล์ล็อกเป็น 0 ได้
- เมื่อรันคำสั่ง
- การตั้งค่า log rotation
- สามารถเปิดใช้ log rotation ได้โดยกำหนดขนาดไฟล์สูงสุด (
max-size) และจำนวนไฟล์สูงสุด (max-file) - เมื่อขนาดไฟล์ถึงค่าที่กำหนดไว้สูงสุด จะสลับไปใช้ไฟล์ใหม่ และไฟล์เดิมจะถูกสร้างเป็น
...-json.log.1,...-json.log.2ไปจนถึงจำนวนสูงสุดที่กำหนด - เมื่อเกินจากนั้น ไฟล์ที่เก่าที่สุดจะถูกลบออก เพื่อป้องกันไม่ให้ไฟล์ล็อกของคอนเทนเนอร์ Docker ขยายใหญ่ขึ้นได้ไม่จำกัด
- สามารถเปิดใช้ log rotation ได้โดยกำหนดขนาดไฟล์สูงสุด (
ยังไม่มีความคิดเห็น