Giới thiệu
Logrotate là một tiện ích Linux giúp đơn giản hóa việc quản trị các tệp nhật ký. Nó thường chạy mỗi ngày một lần thông qua công việc định kỳ và quản lý nhật ký dựa trên các quy tắc / cài đặt tùy chỉnh từ tệp cấu hình của nó.
Một số cài đặt hữu ích của nó bao gồm tự động xoay, nén, xóa và gửi các tệp nhật ký.
Cài đặt
Hầu hết các hệ thống Linux đều được cài đặt Logrotate theo mặc định. Kiểm tra xem bạn đã cài đặt nó trên cá thể Vultr của bạn chưa bằng cách ban hành logrotate
lệnh. Bạn sẽ thấy một đầu ra với phiên bản Logrotate mà máy chủ của bạn đang chạy.
Nếu bạn chưa cài đặt, hãy thực hiện các bước bên dưới để tiến hành cài đặt.
Trên các hệ thống Debian / Ubuntu:
sudo apt-get update
sudo apt-get install logrotate
Trên các hệ thống Redhat / CentOS:
sudo yum update
sudo yum install logrotate
Hiểu về Logrotate
Các bộ phận chuyển động làm cho logrotate chạy là:
-
Các công cụ thực tế logrotate
.
-
Tập tin cấu hình của Logrotate nằm ở /etc/logrotate.conf
. Tệp này giữ cấu hình cho tất cả các tệp nhật ký mà Logrotate quản lý.
-
Một công việc /etc/cron.daily/logrotate
định kỳ hàng ngày phát hành lệnh logrotate để chạy dựa trên các cài đặt trong tệp cấu hình của nó. Nếu công việc định kỳ này không tồn tại trên hệ thống của bạn, hãy tạo nó và thêm đoạn mã bên dưới vào nó.
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
Thêm về cấu hình
Nếu bạn nhìn trộm bên trong /etc/logrotate.conf
, bạn sẽ thấy rằng nó có dòng include /etc/logrotate.d
trong đó. Những gì dòng này làm là bảo Logrotate nhìn vào bên trong /etc/logrotate.d
thư mục và chạy mọi tệp cấu hình trong đó. Thư mục này thường là nơi các ứng dụng được cài đặt trên hệ thống linux của bạn sẽ thêm các cấu hình logrotate của chúng. Ví dụ, Apache2 thường sẽ tạo một /etc/logrotate.d/apache
tệp cấu hình khi cài đặt.
Quản lý nhật ký
Để kiểm tra Logrotate, chúng tôi sẽ:
-
Tạo tệp nhật ký kiểm tra mới với 1MB hoặc dữ liệu ngẫu nhiên:
sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
-
Tạo cấu hình Logrotate mới bằng cách chạy sudo nano /etc/logrotate.d/testlog
. Sao chép đoạn mã sau vào tệp trống và nhấn Ctrl + X để lưu và thoát.
/tmp/testfile.log {
size 1k
copytruncate
missingok
rotate 5
}
Các tùy chọn cấu hình trong đoạn trích trên hướng dẫn Logrotate:
size 1k
: Xoay tệp nhật ký nếu kích thước lớn hơn hoặc bằng 1k.
missingok
: Bỏ qua các thông báo lỗi nếu testfile.log
không tồn tại.
copytruncate
: Tạo một bản sao của tệp nhật ký hiện tại và sau đó cắt nó. Điều này rất hữu ích khi một ứng dụng không thể đóng tệp nhật ký của nó vì nó liên tục nối vào nó.
rotate 5
: giới hạn số lần quay tệp nhật ký là 5. Điều này sẽ xóa các phiên bản cũ của tệp nhật ký lớn hơn 5 ngày.
LƯU Ý: Bạn có thể xem tất cả các tùy chọn cấu hình cho logrotate tại đây .
-
Chạy lệnh Logrotate bằng tay:
sudo logrotate /etc/logrotate.conf
Sau khi chạy lệnh trên, liệt kê tất cả các tệp trong thư mục tmp ls -l /tmp
để xác nhận testfile.log đã thực sự được xoay. Bạn sẽ thấy một danh sách tương tự như sau đây cho thấy testfile.log
đã thực sự được xoay. Điều này sẽ tiếp tục mỗi ngày và giữ 5 bản mới nhất.
[root@vultr ~]# ls -l /tmp
-rw-r--r-- 1 root root 0 Nov 14 23:31 testfile.log
-rw-r--r-- 1 root root 1000000 Nov 14 23:30 testfile.log-20141114
-rw-r--r-- 1 root root 634 Nov 10 00:23 vultr_ipv6
-rw-------. 1 root root 0 Oct 15 20:44 yum.log
Phần kết luận
Nhật ký có thể nhanh chóng tạo ra sự cố trên máy chủ bằng cách trở nên quá lớn và gây ra sự cố về dung lượng ổ đĩa. Quản lý nhật ký là rất quan trọng đối với bất kỳ hệ thống nào, nhưng thậm chí tốt hơn là tự động hóa việc quản lý này. Logrotate giúp quay, lưu trữ và xóa nhật ký dễ dàng.
Viết bởi Lami Adabonyan