วันนี้มีคำถามเกี่ยวกับการจัดการกับ 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 ดังนี้
[gist id="7342c0f29840c21bc14ecd2646bdbbb9" file="1.txt"]ขั้นตอนที่ 2
เมื่อทำการสร้าง Fluentd เรียบร้อยแล้ว ก็ลองมาใช้งานกันดู
นั่นคือ ทำการสร้าง container + logging driver ดังนี้
เพียงเท่านี้ก็สามารถเริ่มใช้งาน Fluentd logging driver ได้แล้ว
Reference Websites