Linux Log Logrotate Là Gì? Hướng Dẫn Cấu Hình Logrotate

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 ServerVPS

>> HOSTING

>> EMAIL

>> WEBSITE

>> TÊN MIỀN

Đánh giá bài viết
Was this article helpful?
Đánh giá
Đánh giá bài viết
Đăng ký nhận tin

Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vinahost

    Bài viết liên quan
    Bình luận
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận