วันนี้มีคำถามเกี่ยวกับการจัดการกับ log ต่าง ๆ ของ Docker container
แน่นอนว่า มีการจัดการหลายแบบ ยกตัวอย่างเช่น

  • การ map path ของไฟล์ log ออกมา
  • ใช้ agent หรือตัว shipper ในการขนออกมา เช่น LogStash, Beats และ Fluentd เป็นต้น

มาดูตัวอย่างของการนำ Fluentd มาใช้กันหน่อย

Docker นั้นมี logging driver ให้อยู่แล้ว

โดยจะมี logging driver ยกตัวอย่างเช่น

  • Syslog
  • Fluentd 
  • Gelf สำหรับ Graylog format
  • None คือค่า default  จะออกไปที่ docker logs

การใช้ Fluentd ก็ไม่ยากเลย มีขั้นตอนดังนี้

ขั้นตอนที่ 1

ทำการ start Fluentd
ต้องสร้างไฟล์ config  เพื่อกำหนด input, filter และ output ของ Fluentd ก่อน
ในตัวอย่างจะเป็นการ start Fluentd server/agent ด้วย port 24224
ส่วน output จะให้แสดงไปที่ Standard output ดังนี้

จากนั้นทำการ start Fluentd ด้วย Docker ดังนี้

ขั้นตอนที่ 2

เมื่อทำการสร้าง Fluentd เรียบร้อยแล้ว ก็ลองมาใช้งานกันดู
นั่นคือ ทำการสร้าง container + logging driver ดังนี้

เพียงเท่านี้ก็สามารถเริ่มใช้งาน Fluentd logging driver ได้แล้ว

Reference Websites