0

Series PM2 Log Mastery #2: Tuyệt kỹ Log Rotation - Chống "nghẹt thở" ổ cứng

1. Tại sao phải Rotate Log?

Log rotation là quá trình:

  1. Cắt: Khi file log đạt đến một kích thước nhất định (ví dụ: 10MB), PM2 sẽ đóng file cũ lại.
  2. Nén/Đổi tên: File cũ được đổi tên (thêm dấu thời gian) hoặc nén lại để tiết kiệm dung lượng.
  3. Xóa: Sau một số lượng bản sao nhất định (ví dụ: giữ 10 file gần nhất), file cũ nhất sẽ bị xóa vĩnh viễn.

Nếu không làm việc này, bạn sẽ sở hữu những file log nặng hàng chục GB – thứ mà ngay cả khi muốn mở ra xem lỗi cũng không phần mềm nào đọc nổi!

2. Cài đặt "Vệ sĩ" pm2-logrotate

PM2 có một module chính chủ cực kỳ mạnh mẽ tên là pm2-logrotate. Để cài đặt, bạn không dùng npm mà dùng chính lệnh của PM2:

pm2 install pm2-logrotate

Ngay sau lệnh này, PM2 sẽ tự động quản lý toàn bộ file log của tất cả các tiến trình đang chạy. Bạn không cần làm gì thêm, nó đã "tự giác" bảo vệ ổ cứng cho bạn.

3. Tinh chỉnh cấu hình (Senior Level)

Mặc định của pm2-logrotate có thể chưa tối ưu với dự án của bạn. Hãy kiểm tra các thông số và tùy chỉnh theo nhu cầu:

Xem cấu hình hiện tại:

pm2 conf pm2-logrotate

Các thông số quan trọng cần ghi nhớ:

  • max_size: Kích thước tối đa của 1 file log trước khi bị xoay (Mặc định là 10MB).
  • retain: Số lượng file log cũ được giữ lại (Mặc định là 30 file).
  • compress: Có nén file log cũ hay không (thường set là true để tiết kiệm không gian).

Ví dụ lệnh tùy chỉnh: Nếu bạn muốn file log chỉ nặng tối đa 5MB và chỉ giữ lại 5 file gần nhất (để tiết kiệm ổ cứng SSD trên Cloud):compress: Có nén file log cũ hay không (thường set là true để tiết kiệm không gian).

Ví dụ lệnh tùy chỉnh: Nếu bạn muốn file log chỉ nặng tối đa 5MB và chỉ giữ lại 5 file gần nhất (để tiết kiệm ổ cứng SSD trên Cloud):

pm2 set pm2-logrotate:max_size 5M
pm2 set pm2-logrotate:retain 5
pm2 set pm2-logrotate:compress true

Lưu ý: Sau khi chạy các lệnh set, hệ thống sẽ tự động cập nhật mà không cần khởi động lại các tiến trình ứng dụng.

4. Kiểm tra thành quả

Sau một thời gian, hãy vào thư mục log của PM2 (thường nằm ở ~/.pm2/logs/) và dùng lệnh ls -lh. Bạn sẽ thấy các file log không còn là một khối khổng lồ nữa, mà được chia nhỏ ra thành app-out-2026-07-15-10-00.log, giúp bạn dễ dàng tìm kiếm và không bao giờ phải lo lắng về việc đầy ổ cứng.

Tổng kết Bài 2

Bạn đã hoàn thành việc biến PM2 thành một hệ thống tự duy trì:

  • Hồi sinh ứng dụng (Bài 1).
  • Tự động dọn dẹp ổ cứng (Bài 2).

Hệ thống của bạn hiện tại đã đủ bền bỉ để chạy hàng tháng trời mà không cần đụng tay vào.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí