Cách cấu hình giới hạn log cho Docker Container

Log container vài MB thôi, sao disk đầy 100GB? 
- Chắc… tại log JSON tích lũy từ Tết!

Audit server mà thấy log JSON của container chiếm hàng chục GB, tôi chỉ hỏi: “Sao không ai giới hạn log vậy trời?”. Container chạy vài tháng, log phình to như “sổ nhật ký crush”, làm VPS “nghẹt thở”.


Log không giới hạn

Thực trạng:  
  • Logging driver mặc định json-file lưu log mãi mãi, không giới hạn size.  
  • Không cấu hình max-size, max-file, log tích lũy đến khi disk đầy.  
  • Dev không kiểm tra log usage, cứ nghĩ “log thì nhỏ mà”.
Hệ quả:  
  • Disk đầy: Server crash, không chạy được lệnh mới.  
  • Khó debug: Log khổng lồ, tìm lỗi như mò kim đáy bể.  
  • Tốn chi phí: Cloud storage bill tăng vì log “rác”.

Giải pháp: Giới hạn log

Để log “ngoan” hơn:  
  • Cấu hình logging driver: Dùng json-file với max-size (giới hạn dung lượng) và max-file (giới hạn số file).  
  • Centralized logging: Chuyển sang ELK, Loki, hoặc Fluentd nếu cần log tập trung.  
  • Audit nhanh: Dùng docker inspect để kiểm tra logging config.

Ví dụ: Giới hạn log trong Docker Compose

services:
  app:
    image: my-app
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

max-size: Giới hạn mỗi file log (10MB).  
max-file: Lưu tối đa 3 file log, cũ nhất bị xóa.

🎯 Tóm lại: Log không giới hạn là “kẻ thù” của disk. Set max-size, max-file, và cân nhắc centralized logging để VPS “thở” dễ hơn.

Post a Comment

Mới hơn Cũ hơn