Bài viết này sẽ hướng dẫn bạn cách Cấu Hình Logrotate. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php
1. Linux Log Logrotate là gì?
Logrotate là một công cụ chương trình hỗ trợ cho việc quản lý file log trên hệ thống, bao gồm xoay vòng các file log, di chuyển, nén, gửi tự động,.. .
Rotate xoay vòng được thực hiện như tiến trình xữ lý các file log cũ theo một quy định như xoá, nén hoặc move và tạo ra file log mới theo thời gian (ngày, tuần…), theo dung lượng.
Logrotate hoạt động tự động không cần can thiệp thủ công.
2. Hướng dẫn cấu hình Logrotate
Như ảnh trên, lệnh logrotate sẽ kiểm tra công cụ và số phiên bản trên dịch vụ của bạn. Nếu chưa được cài đặt, chúng ta cập nhật system packages và tiến hành cài đặt logrotate
Đối với hệ thống Debian
apt-get update
apt-get install logrotate
Đối với hệ thống CentOS
yum update
yum install logrotate
Các thông số thường gặp trong các tệp tin chính của logrotate
Thông số |
Chức năng |
daily | Mỗi ngày |
weekly | Mỗi tuần |
monthly | Mỗi tháng |
yearly | Mỗi năm |
missingok | Nếu file log bị mất hoặc không có tồn tại *.log thì logrotate sẽ di chuyển tới phần cấu hình log của file log khác mà không phải xuất ra thông báo lỗi |
nomissingok | Ngược lại so với cấu hình missingok |
notifempty | Không rotate log nếu file log này trống |
rotate | số lượng file log cũ đã được giữ lại sau khi rotate |
compress | Logrotate sẽ nén tất cả các file log lại sau khi đã được rotate mặc định bằng gzip |
compresscmd | Khi sử dụng chương trình nén như bzip2, xz hoặc zip |
delaycompress | Được sử dụng khi không muốn file log cũ phải nén ngay sau khi vừa được rotate |
nocompress | Không sử dụng tính năng nén đối với file log cũ |
create | Phân quyền cho file log mới sau khi rotate |
copytruncate | File log cũ được sao chép vào một tệp lưu trữ, và sau đó nó xóa các dòng log cũ |
postrotate [command] endscript | Để chạy lệnh sau khi quá trình rotate kết thúc, chúng ta đặt lệnh thực thi nằm giữa postrotate và endscript |
prerotate [command] endscript | Để chạy lệnh trước khi quá trình rotate bắt đầu, chúng ta đặt lệnh thực thi nằm giữa prerotate và endscript |
Bạn cần chú ý kiểm tra các tệp cấu hình chính của logrotale :
- Tập lệnh shell thực thi các lệnh logrotate hàng ngày được lưu tại /etc/cron.daily/logrotate
- Cấu hình Logrotate được lưu tại /etc/logrotate.conf có chứa các thông tin thiết lập toàn bộ file log mà Logrotate quản lý, bao gồm chu kì lặp, dung lượng file log, nén file,…
- Thông tin cấu hình của file log các ứng dụng được lưu trữ tại /etc/logrotate.d
Ví dụ : Xem thông tin cấu hình của gói bootlog
Trong đó:
missingok: Nếu file log bị mất hoặc không tồn tại *.log thì logrotate sẽ tự động di chuyển tới phần cấu hình log của file log khác mà không cần phải xuất ra thông báo lỗi
daily: Được rotate mỗi ngày
copytruncate: File bootlog cũ được sao chép vào một tệp lưu trữ, và sau đó nó xóa các dòng log cũ
rotate 7: Giữ lại 7 file log cũ sau khi rotate
notifempty: Không rotate log nếu file bootlog này trống
Rotate theo dung lượng file log
Chúng ta có thể quy định tiến trình rotate dựa vào dung lượng file. Với /var/log/wtmp khi size 1M sẽ tạo tệp mới:
cat /etc/logrotate.conf
Ví dụ trên các tùy chọn có ý nghĩa như sau:
size 1M: Logrotate chỉ chạy nếu kích thước tệp bằng (hoặc lớn hơn) kích thước này.
minsize có nghĩa là kích thước nhật ký ít nhất phải là minsize để việc xoay tần số xảy ra. Tần suất hàng ngày (được gọi là hàng ngày từ cron) sẽ không có tác dụng gì nếu kích thước nhỏ hơn minsize.
maxsize có nghĩa là, ngoài tần suất chạy, nếu kích thước vượt quá maxsize, một vòng quay có thể xảy ra. Nếu cấu hình có tần suất hàng tuần được gọi là hàng ngày và nếu kích thước lớn hơn kích thước tối đa, thì việc xoay vòng có thể xảy ra.
create: Rotate tệp gốc và tạo tệp mới với sự cho phép người dùng và nhóm được chỉ định.
rotate: Giới hạn số vòng quay của fle log. Vì vậy, điều này sẽ chỉ giữ lại 1 file log được rotate gần nhất.
Chạy Logrotate thủ công
Khi chúng ta muốn chạy ngay Logrotate, hãy dùng lệnh bên dưới:
logrotate -vf /etc/logrotate.d/
Trong đó các tuỳ chọn là:
-v: Hiển thị thêm thông tin, có ích khi bạn muốn dò lỗi logrotate
-f: Bắt buộc rotate ngay lập tức
3. Một số cấu hình khác
- Sao chép logrotate – copytruncate
- Nén – compress
- logextate dateext – dateext
Cú pháp này sẽ chỉ làm việc một lần trong một ngày. Bởi vì khi nó rotate lần sau vào cùng ngày, tệp được xoay trước đó sẽ có cùng tên tệp. Vì vậy, logrotate sẽ không thành công sau lần chạy đầu tiên cùng ngày.
- Đăng nhập hàng tháng, hàng ngày, hàng tuần – monthly, daily, weekly
- Kết thúc postrotate – postrotate
- Maxage Logrotate – maxage
- Logrotate missingok – missingok
Chúc bạn thực hiện thành công!
THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST
>> SERVER – COLOCATION – CDN giá rẻ
>> Cho thuê Cloud Server – VPS
>> HOSTING
>> WEBSITE
>> TÊN MIỀN