December 29, 2015

Cấu hình xoay vòng log file

Cấu hình xoay vòng log file

Phần lớn các bản phân phối sẽ cài đặt một cấu hình syslog mặc định cho hệ thống, bao gồm logging to messages và các log file khác trong thư mục /var/log. Để ngăn cản nhưng file này ngày càng lớn trở nên cồng kềnh và có thể làm đầy ổ cứng gây ảnh hưởng đến các dịch vụ khác đang chạy. một hệ thống xoay vòng log (log rotation) nên được cài đặt. Hệ thống cron đưa ra các lệnh để thiết lập những log files mới, những log file cũ được đổi tên bằng cách thay một con số ở hậu tố. ví dụ khi có sự xoay vòng log xảy ra file /var/log/messages sẽ được chuyển thành /var/log/messages.1 và hệ thống sẽ tạo mới một file /var/log/mesages. Sự xoay vòng này có thể được cấu hình cho một số lượng lớn các file. Tùy theo cấu hình mà các file này sẽ được lưu lại bao nhiêu bản cũ nhất trên server trước khi bị xóa đi.
Tiện ích thi hành rotation là logrotate. Lệnh này được cấu hình sử dụng cho một hoặc nhiều files - được xác định bởi các tham số đi cùng. File cấu hình mặc định là /etc/logrotate.conf
File cấu hình logrotate sẽ tương tự như bên dưới
Code:
[root@log ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
 
# keep 4 weeks worth of backlogs
rotate 4
 
# create new (empty) log files after rotating old ones
create
 
# use date as a suffix of the rotated file
dateext
 
# uncomment this if you want your log files compressed
#compress
 
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
 
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
 
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}
 
# system-specific logs may be also be configured here.
Có hai kiểu xoay vòng log thường được sử dụng:
  • Xoay vòng log theo dung lượng file
  • Xoay vòng log theo thời gian


Mỗi kiểu đều có ưu nhược điểm riêng. Tùy thuộc vào đặc điểm của từng hệ thống mà ta chọn kiểu xoay vòng log thích hợp
Để cấu hình xoay vòng log cho các dịch vụ ta sẽ đặt các file cấu hình xoay vòng log trong thư mục /etc/logrotate.d

Ví dụ:
 Cấu hình xoay vòng log cho log của web server apache ta làm như sau.
Tạo file cấu hình cấu hình xoay vòng log
Vim /etc/logrotate.d/httpd

Thêm phần cấu hình bên dưới vào file cấu hình.
Code:
/var/log/httpd/*log {
  size 70M
  compress
  dateext
  notifempty
  rotate 7
  missingok
  sharedscripts
  postrotate
    /etc/init.d/httpd restart
  endscript
}
Size 70M: hệ thống sẽ xoay vòng log khi dung lượng file log lớn hơn 70M. Tại đây chúng ta cũng có thể cấu hình xoay vòng log dựa trên thời gian bằng cách dùng các chỉ thị sau (daily, weekly, monthly). Để xoay vòng log theo ngày, tuần và tháng.
Compress: nén các file log cũ theo chuẩn gzip. Mục đích giảm không gian đĩa cứng
Dateext: ngày sẽ được thêm vào trong tên file mới.
Rotate 7: hệ thống chỉ lưu giữ 7 file log trên server. Các file cũ hơn sẽ được xóa bỏ khỏi hệ thống
Misingok: hệ thống sẽ không tạo ra lỗi. Nếu tập tin không được tìm thấy.
Sharedscripts: chạy các script bất kỳ trước (prerotate) hoặc sau khi (postrotate) xoay vòng cho mỗi file log.

Tham khảo thêm tại: http://linuxcommand.org/man_pages/logrotate8.html

0 comments:

Post a Comment