Tuyển dụng
Viettel IDC

LogRotate là gì? Cách cấu hình xoay vòng log trên Linux

10/07/2026

Sự cố máy chủ Linux đột ngột ngừng hoạt động do lỗi cạn kiệt dung lượng ổ đĩa vì các tệp tin nhật ký phình to mất kiểm soát là cơn ác mộng của mọi quản trị viên hệ thống. Để giải quyết triệt để bài toán này, công cụ LogRotate đã ra đời. Cùng Viettel IDC giải mã chi tiết bản chất LogRotate là gì, cơ chế hoạt động, cấu trúc tệp cấu hình và những sai lầm thường gặp nhất khi thiết lập hệ thống. 

LogRotate là gì? Cách cấu hình xoay vòng log trên Linux

LogRotate là gì?

Bản chất LogRotate

LogRotate là một tiện ích hệ thống được cài đặt sẵn trên hầu hết các bản phân phối Linux. Công cụ này được thiết kế để tự động hóa quá trình xoay vòng, nén dữ liệu, xóa tệp cũ và gửi tệp nhật ký log file theo lịch trình hoặc điều kiện dung lượng định sẵn.

Thay vì để một tệp nhật ký liên tục ghi nạp dữ liệu và tăng kích thước đến vô hạn, LogRotate sẽ định kỳ đổi tên tệp hiện tại, tạo ra một tệp trống mới để ứng dụng tiếp tục ghi nhận thông tin, đồng thời nén các tệp cũ lại và chỉ lưu giữ chúng trong một khoảng thời gian nhất định trước khi xóa vĩnh viễn.

Vì sao hệ thống Linux bắt buộc phải có LogRotate?

- Ngăn chặn nguy cơ sập hệ thống do tràn ổ cứng: Nhiều dịch vụ trên máy chủ liên tục sinh ra dữ liệu nhật ký mà không có cơ chế tự động giới hạn kích thước. Nếu thiếu vắng LogRotate, một tệp nhật ký duy nhất hoàn toàn có thể phình to lên đến hàng chục hay hàng trăm Gigabyte. Hệ quả là ổ đĩa bị vắt kiệt không gian trống, dẫn đến lỗi hệ thống và làm sập toàn bộ các dịch vụ đang chạy.

- Đáp ứng chính sách lưu trữ và truy vết sự cố: Tiện ích này không chỉ dọn dẹp đơn thuần mà còn giúp quản trị viên thiết lập chính sách lưu trữ linh hoạt. Ví dụ, bạn có thể cấu hình chỉ giữ lại nhật ký của 14 ngày gần nhất dưới dạng tệp nén. Điều này giúp hệ thống cân bằng hoàn hảo giữa việc tiết kiệm không gian lưu trữ và đảm bảo luôn có sẵn dữ liệu để điều tra nguyên nhân khi máy chủ gặp sự cố.

Cơ chế hoạt động của tiện ích LogRotate

Để làm chủ công cụ này, quản trị viên cần hiểu rõ tiến trình kích hoạt và luồng xử lý dữ liệu bên dưới hệ điều hành.

Tiến trình kích hoạt tự động

Trái với suy nghĩ của nhiều người, LogRotate không chạy ngầm liên tục như một dịch vụ daemon thông thường. Thay vào đó, nó được hệ điều hành kích hoạt tự động thông qua công cụ lên lịch Cron hoặc bộ định thời gian Systemd, thường là vào một thời điểm cố định mỗi ngày. Nếu hệ thống có lưu lượng truy cập khổng lồ và cần xoay vòng nhật ký theo giờ, quản trị viên bắt buộc phải tự thiết lập thêm một lịch chạy Cron riêng biệt.

Luồng xử lý tệp nhật ký

Mỗi khi được đánh thức, hệ thống sẽ đọc toàn bộ cấu hình khai báo. Với từng tệp nhật ký, nó sẽ kiểm tra xem điều kiện xoay vòng đã thỏa mãn hay chưa dựa trên thời gian hoặc kích thước tệp. Nếu đủ điều kiện, chương trình sẽ lập tức đổi tên tệp hiện tại, khởi tạo tệp mới, nén tệp cũ và xóa bỏ những bản lưu trữ đã vượt quá số lượng cho phép.

Theo dõi trạng thái thực thi

Để tránh việc xử lý trùng lặp, tiện ích này duy trì một tệp trạng thái chuyên biệt nằm tại đường dẫn /var/lib/logrotate/status. Tệp này ghi nhận lại thời điểm xoay vòng gần nhất của từng tệp nhật ký, giúp hệ thống biết chính xác tiến độ công việc và bỏ qua những tệp chưa đến hạn xử lý.

Phân tích cấu trúc thư mục cấu hình

Toàn bộ quy tắc hoạt động của công cụ này được định nghĩa qua hai thành phần cấu trúc chính:

Tệp cấu hình tổng /etc/logrotate.conf

Đây là bộ não trung tâm của hệ thống, chứa các tham số thiết lập mặc định chung cho mọi dịch vụ. Bên trong tệp này luôn có một lệnh khai báo bao gồm thư mục con để hệ thống tự động đọc thêm các quy tắc riêng biệt.

Thư mục cấu hình dịch vụ /etc/logrotate.d

Hầu hết các phần mềm máy chủ như Nginx, Apache hay MySQL khi cài đặt đều tự động sinh ra một tệp cấu hình riêng và đặt vào thư mục này. Đối với các ứng dụng nội bộ do doanh nghiệp tự phát triển, kỹ sư vận hành cũng được khuyến cáo nên tạo tệp cấu hình riêng biệt tại đây thay vì can thiệp trực tiếp vào tệp cấu hình tổng.

Cơ chế hoạt động của tiện ích LogRotate

Các chỉ thị tham số cốt lõi trong LogRotate

Một khối cấu hình chuẩn luôn bao gồm các tham số chỉ định tần suất, dung lượng và cách thức xử lý tệp. Dưới đây là bảng tổng hợp các tham số quan trọng nhất:

Chỉ thị tham số

Ý nghĩa và Chức năng thực thi

daily / weekly / monthly

Tần suất thực hiện việc xoay vòng nhật ký tính theo ngày, tuần hoặc tháng.

rotate N

Số lượng tệp nén cũ tối đa được phép giữ lại trên ổ cứng, vượt quá N tệp hệ thống sẽ tự động xóa bản cũ nhất.

compress

Lệnh yêu cầu nén các tệp nhật ký cũ để tiết kiệm dung lượng, định dạng mặc định thường là Gzip.

size

Yêu cầu hệ thống phải cắt tệp ngay lập tức khi đạt đến dung lượng chỉ định, bất chấp cấu hình chu kỳ thời gian.

missingok

Bỏ qua việc báo lỗi và tiếp tục tiến trình nếu tệp nhật ký không tồn tại.

notifempty

Hủy bỏ lệnh xoay vòng nếu tệp nhật ký hiện tại đang hoàn toàn trống rỗng không có dữ liệu.

create

Lệnh tạo ngay một tệp nhật ký mới tinh với phân quyền và chủ sở hữu được ấn định rõ ràng.

copytruncate

Sao chép nội dung tệp hiện tại ra một tệp mới, sau đó xóa trắng nội dung tệp gốc mà không làm đổi tên hay thay đổi trạng thái tệp gốc.

postrotate / endscript

Cặp thẻ dùng để chạy các tập lệnh tự động sau khi quá trình xoay vòng hoàn tất, thường dùng để tải lại cấu hình ứng dụng.

Ví dụ triển khai cấu hình LogRotate thực tế

Để dễ hình dung, hãy xem xét cấu hình khối dành cho một ứng dụng tự phát triển. Quản trị viên sẽ tạo một tệp văn bản đặt tại đường dẫn /etc/logrotate.d/myapp với nội dung như sau:

/var/log/myapp/*.log {

    daily

    rotate 14

    compress

    delaycompress

    missingok

    notifempty

    create 0640 myapp myapp

    postrotate

        systemctl reload myapp > /dev/null 2>&1 || true

    endscript

}

Phân tích đoạn mã trên: Hệ thống sẽ kiểm tra và xoay nhật ký hàng ngày, lưu giữ 14 phiên bản cũ nhất và nén chúng lại. Lỗi sẽ bị bỏ qua nếu tệp không tồn tại hoặc tệp đang trống. Ngay khi cắt tệp, hệ thống sẽ tạo tệp mới với quyền 0640 cho nhóm người dùng myapp, đồng thời khởi động lại ứng dụng thông qua lệnh postrotate để phần mềm nhận diện tệp nhật ký mới.

Các lệnh kiểm tra và gỡ lỗi hữu ích

Trước khi áp dụng cấu hình mới vào môi trường vận hành thực tế, kỹ sư hệ thống cần sử dụng các lệnh dòng lệnh để rà soát lỗi:

- Chạy chế độ thử nghiệm: Sử dụng lệnh logrotate -d /etc/logrotate.d/myapp để kiểm tra cú pháp và xem trước các hành động hệ thống sẽ thực thi mà không gây ra bất kỳ thay đổi vật lý nào trên tệp.

- Ép buộc xoay vòng lập tức: Sử dụng lệnh logrotate -f /etc/logrotate.d/myapp để ép hệ thống cắt tệp ngay lập tức mà không cần chờ đến lịch hẹn.

Xử lý LogRotate trong môi trường dữ liệu cực lớn

Với những hệ thống phát sinh dữ liệu nhật ký liên tục với tần suất khổng lồ, việc chỉ dựa vào lịch hẹn theo ngày là không đủ an toàn. Lúc này, quản trị viên bắt buộc phải kết hợp tham số thời gian với tham số size. Nhờ đó, ngay khi tệp nhật ký chạm đến ngưỡng dung lượng báo động, LogRotate sẽ chủ động cắt tệp ngay lập tức.

Đặc biệt, trong môi trường ảo hóa Docker Container, các ứng dụng thường có đặc thù là khóa tệp và mở liên tục trong suốt vòng đời của container. Nếu sử dụng lệnh create thông thường, hệ thống sẽ bị lỗi. Thay vào đó, tham số copytruncate là sự lựa chọn mang tính sống còn. Nó cho phép sao chép dữ liệu ra ngoài và làm rỗng tệp gốc, giúp container tiếp tục luồng ghi dữ liệu một cách mượt mà mà không hề nhận ra sự can thiệp.

Những sai lầm kinh điển khi cấu hình hệ thống

- Sử dụng sai ký tự đại diện: Rất nhiều người cấu hình đường dẫn tệp kết thúc bằng dấu sao thay vì sao chấm log. Điều này khiến LogRotate đọc nhầm và xoay vòng lặp lại cả những tệp đã được nén trước đó, gây rối loạn cấu trúc thư mục.

- Bỏ quên cấu hình postrotate: Nhiều ứng dụng vẫn duy trì luồng ghi dữ liệu vào tệp cũ kể cả khi tệp đó đã bị đổi tên. Nếu không có lệnh postrotate để đánh thức ứng dụng tải lại cấu hình, dữ liệu mới sẽ trôi vào tệp cũ, trong khi tệp nhật ký mới tạo ra lại hoàn toàn trống rỗng.

- Dùng sai tham số create đối với ứng dụng liên tục: Với các phần mềm không hỗ trợ cơ chế nhận tín hiệu tải lại, việc dùng tham số create sẽ làm gián đoạn luồng ghi. Tham số copytruncate mới là giải pháp chuẩn xác nhất trong trường hợp này.

Câu hỏi thường gặp về LogRotate

Công cụ này có sẵn trên mọi phiên bản Linux không? Có, đây là một tiện ích nền tảng được cài đặt mặc định trên hầu hết các bản phân phối phổ biến như Ubuntu, Debian, CentOS hay RHEL.

Sự khác biệt cốt lõi giữa tham số create và copytruncate là gì? Tham số create sẽ đổi tên tệp hiện tại và tạo ra một tệp hoàn toàn mới, yêu cầu ứng dụng phải có khả năng chuyển đổi luồng ghi sang tệp mới này. Trong khi đó, copytruncate giữ nguyên tệp gốc đang mở, chỉ sao chép nội dung ra một bản khác rồi xóa trắng bản gốc, phù hợp với các phần mềm cứng nhắc không thể tải lại cấu hình.

Có nên dùng LogRotate cho kiến trúc Container không? Bạn có thể dùng nhưng cần tính toán kỹ lưỡng. Đối với kiến trúc Cloud Native hiện đại, dữ liệu nhật ký từ container thường được xuất thẳng ra luồng hệ thống tiêu chuẩn. Việc quản lý và lưu trữ lúc này nên được giao cho các nền tảng tổng hợp dữ liệu chuyên nghiệp như ELK Stack thay vì dùng giải pháp xoay vòng tệp vật lý cục bộ.

Kết luận

Việc nắm vững bản chất LogRotate là gì và cách thức cấu hình chuẩn xác là kỹ năng bắt buộc đối với mọi quản trị viên Linux. Bằng cách thiết lập các chu kỳ thời gian hợp lý, kết hợp cùng các tham số giới hạn dung lượng và xử lý tệp thông minh, bạn sẽ kiến tạo nên một hệ thống máy chủ vận hành bền bỉ, tối ưu hóa tuyệt đối không gian lưu trữ và xóa bỏ vĩnh viễn rủi ro sập dịch vụ do đầy ổ đĩa.

Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:

- Hotline: 1800 8088 (miễn phí cước gọi)

- Fanpage: https://www.facebook.com/viettelidc  

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

16/10/2026

vMaaS cập nhật thêm mô hình AI mới - Một API, nhiều mô hình lựa chọn linh hoạt, chi phí không đổi

Viettel Model as a Service (vMaaS) cập nhật thêm Gemma 3, Qwen3-VL và Llama Nemotron, đồng thời hỗ trợ thêm hơn 40 mô hình AI theo nhu cầu. Tìm hiểu cách chọn mô hình phù hợp qua một API.

15/10/2026

Thông báo về việc tổ chức đấu giá tài sản thanh lý tháng 10/2026

Công ty Cổ phần Viettel – CHT thông báo về việc đấu giá đối với danh mục tài sản: Tài sản thanh lý bao gồm: Lô 1 - Bình ắc quy + Lô 2 - Tủ Rack và thiết bị cơ điện.

14/10/2026

So sánh IDS và IPS: Sự khác biệt và cách lựa chọn phù hợp

So sánh IDS và IPS giúp doanh nghiệp hiểu rõ cách hai giải pháp phát hiện, ngăn chặn xâm nhập và lựa chọn phương án bảo vệ hệ thống mạng phù hợp.

14/10/2026

NVMe Hosting là gì? Ưu điểm, so sánh và cách lựa chọn

NVMe Hosting là gì? Tìm hiểu ưu điểm, so sánh với SSD SATA và HDD, cùng cách lựa chọn hosting phù hợp để tối ưu hiệu năng website.

14/10/2026

Sự khác biệt giữa các dịch vụ hosting của Việt Nam với quốc tế

Tìm hiểu sự khác biệt giữa các dịch vụ hosting của Việt Nam với quốc tế về tốc độ, chi phí, công nghệ và hỗ trợ kỹ thuật để chọn giải pháp phù hợp.

14/10/2026

So sánh dịch vụ hosting tại Viettel IDC với những nhà cung cấp khác: Nên chọn bên nào?

So sánh dịch vụ hosting tại Viettel IDC với những nhà cung cấp khác về giá, cấu hình, hiệu năng và bảo mật để chọn giải pháp phù hợp cho doanh nghiệp.

14/10/2026

Những nền tảng điện toán đám mây nào phù hợp nhất cho doanh nghiệp nhỏ? Cách lựa chọn hiệu quả

Những nền tảng điện toán đám mây nào phù hợp cho doanh nghiệp nhỏ? Tìm hiểu các lựa chọn phổ biến và tiêu chí chọn nền tảng phù hợp.

14/10/2026

Cách chọn máy chủ phù hợp cho website nhỏ tại Việt Nam: Từ cấu hình đến chi phí

Cách chọn máy chủ phù hợp cho website nhỏ tại Việt Nam dựa trên cấu hình, nhu cầu sử dụng, chi phí và khả năng mở rộng.

14/10/2026

Những yếu tố quan trọng khi lựa chọn dịch vụ Cloud Database để đảm bảo khả năng mở rộng và độ tin cậy

Những yếu tố quan trọng khi lựa chọn dịch vụ Cloud Database giúp doanh nghiệp đảm bảo khả năng mở rộng, hiệu năng và độ tin cậy cho hệ thống.

14/10/2026

Lỗi SQL Server Setup failed: Nguyên nhân và cách khắc phục

Lỗi SQL Server Setup failed do đâu? Tìm hiểu nguyên nhân, cách kiểm tra và khắc phục lỗi để cài đặt SQL Server thành công.