Thiết lập logrotate Hệ điều hành máy chủ Asianux Server 3
Trang 1Hướng dẫn thiết lập logrotate
Hệ điều hành máy chủ Asianux Server 3
VietSoftware Inc
Asianux Vietnam
Ha noi, 16-20/06/2008
Trang 2Tại sao cần phải thiết lập logrotate
+Trong quá trình chạy các dịch vụ trên server , các dịch vụ sẽ
phát sinh ra thông tin trong quá trình chạy (các thông báo lỗi,
các cảnh báo , các thay đổi , các sự kiện liên quan tới quá trình
chạy dịch vụ ,…)
+ Các thông tin đó sẽ được lưu trữ vào một hoặc
nhiều file , các file đó gọi là các log file Sau một quá trình chạy , dịch vụ sẽ sinh ra các các log file quá lớn
+Dẫn tới tình trạng
các dịch vụ có thể sẽ ko đọc được các các log file (tràn bộ nhớ ) hoặc là các log file sẽ làm đầy ổ cứng khiến dịch vụ
không thể chạy được Để giải quyết vấn đề này
chúng ta dùng logrotate
Trang 3logrotate là một công cụ trên các hệ thống linux dùng để thiết lập
chính sách quay vòng định kỳ cho các log file
logrotate sẽ đưa nội dung của các log file quá lớn sang một file khác
để tránh tình trạng các log file chiếm dung lượng ổ cứng quá lớn
một cách không cần thiết
Tại sao cần phải thiết lập logrotate
Trang 4Thiết lập logrotate
a>Thiết lập file /etc/logrotate.conf
Thiết lập file config cho dịch vụ logrotate như sau
# see "man logrotate" for details
# rotate log files weekly
# keep 4 weeks worth of backlogs
rotate 4
(4 lần – đến lần thứ 4 thì 4 bị xóa, 1 thành 2, 2 thành 3, 3 thành 4)
# create new (empty) log files after rotating old ones
create
Trang 5Thiết lập logrotate
# uncomment this if you want your log files compressed
compress (nén log files dưới dạng zip)
# RPM packages drop log rotation information into this directory include /etc/logrotate.d
# no packages own wtmp we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be also be configured here
Trang 6b>Thiết lập file /etc/logrotate.d/httpd
Tạo ra một file tên httpd trong mục /etc/logrotate.d như sau
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript
}
Trang 7c> Chạy logrotate qua crontab
Đưa dòng sau vào crontab
0 12 * * * /usr/sbin/logrotate -f /etc/logrotate.conf > /dev/null 2>&1 Dòng này sẽ chạy logrotate mỗi ngày vào lúc 12h
(Nên để logrotate như thế nào còn tùy vào dịch vụ )
Trang 8d>Thiết lập các file trong /etc/logrotate.d/
Kiểm tra đường dẫn của lệnh killall trước rồi hãy config các file sau :
#locate “killall”
d1 /etc/logrotate/cyrus
[root@mailserver logrotate.d]# more cyrus
daily
/opt/MBS/log/cyrus.* {
nocompress
rotate 10
mail root@localhost
postrotate
/usr/bin/killall -HUP syslogd
endscript
size 1000
compress
delaycompress
}
Trang 9d>Thiết lập các file trong /etc/logrotate.d/
d2./etc/logrotate/httpd
[root@mailserver logrotate.d]# more httpd
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript
}
Trang 10Chạy lệnh : # logrotate -f /etc/logrotate.d/mailbox (sẽ xóa file /var/mail/root
và tạo touch ra file root mới trắng trơn )
Chạy lệnh
Trang 11Thank you!