LogRotate là gì? Cách cấu hình xoay vòng log trên Linux
10/07/2026Sự 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ì?
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á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:
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:
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
Tin nổi bật
Tin liên quan
Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng
Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.
Figma là gì? Nền tảng thiết kế và cộng tác trực tuyến
Figma là gì, có những tính năng nổi bật nào? Tìm hiểu Vector Network, Auto Layout, Dev Mode và vị thế hiện tại của Figma trong ngành thiết kế.
Camera Cloud cần tốc độ mạng bao nhiêu? Cách tính băng thông cần thiết
Camera Cloud cần tốc độ mạng bao nhiêu? Tìm hiểu mức băng thông cần thiết, cách tính upload và các yếu tố ảnh hưởng đến tốc độ khi sử dụng Camera Cloud.
Camera Cloud có bị hack không? Nguyên nhân và cách bảo mật
Camera Cloud có bị hack không? Tìm hiểu các rủi ro bảo mật, nguyên nhân bị xâm nhập và cách bảo vệ camera, tài khoản cùng dữ liệu hiệu quả.
Viettel IDC: Nhà cung cấp VMware Sovereign Cloud duy nhất tại Đông Nam Á
Tại VMware Explore 2026 ở Las Vegas, Broadcom đã giới thiệu nhóm 57 nhà cung cấp dịch vụ đám mây chủ quyền trên nền tảng VMware Cloud Foundation. Viettel IDC là đơn vị duy nhất tại Đông Nam Á có tên trong danh sách này, đánh dấu bước tiến mới của doanh nghiệp Việt Nam trên thị trường hạ tầng cloud khu vực.
Ghidra là gì? Chức năng và ứng dụng trong reverse engineering
Ghidra là gì? Tìm hiểu công cụ reverse engineering mã nguồn mở của NSA, các chức năng chính, ứng dụng thực tế và điểm khác biệt với IDA Pro.
10 công cụ tối ưu hóa website theo từng mục tiêu
Tổng hợp 10 công cụ tối ưu hóa web cho tốc độ, SEO, trải nghiệm người dùng và chuyển đổi, kèm bảng so sánh và gợi ý lựa chọn theo nhu cầu.
So sánh WHOIS và DNS Lookup: Điểm khác nhau và khi nào nên sử dụng
WHOIS và DNS Lookup khác nhau thế nào? Tìm hiểu định nghĩa, bảng so sánh, vai trò của RDAP thay thế WHOIS, và khi nào nên dùng công cụ nào.
Cách test tải hệ thống: Quy trình và công cụ phổ biến
Cách test tải hệ thống hiệu quả gồm những bước nào? Tìm hiểu quy trình, chỉ số cần đo và công cụ phổ biến như JMeter, k6.
Cloud Monitoring là gì? So sánh Hybrid Cloud và Multi Cloud Monitoring
Cloud Monitoring là quá trình theo dõi, quản lý và đánh giá hiệu suất của các tài nguyên và dịch vụ đám mây, bao gồm giám sát máy chủ, cơ sở dữ liệu, ứng dụng và hệ thống mạng
Bình luận ()