Xử lý luân chuyển nhật ký với logrotate - nhận định kèo

/imgposts/z2czdlw0.jpg

Hệ điều hành Ubuntu đã tích hợp sẵn chương trình logrotate, trong khi đó các hệ thống khác cần phải cài đặt thủ công. Để kiểm tra cấu xem kết quả tỷ số bóng đá hình, bạn có thể xem tệp /etc/logrotate.d/nginx.

# Phương pháp kiểm tra
# /usr/sbin/logrotate -f /etc/logrotate.d/nginx
/data/logs/*.log {
    # Thực hiện luân chuyển mỗi ngày
    daily
    # Bỏ qua nếu không tìm thấy tệp nhật ký và tiếp tục xử lý những tệp khác
    missingok
    # Giới hạn số lần luân chuyển của một tệp nhật ký
    rotate 10
    compress
    delaycompress
    notifempty
    create 0640 root root
    # Đảm bảo rằng tập lệnh dưới đây chỉ chạy một lần khi có nhiều tệp nhật ký phù hợp
    sharedscripts
    # Nginx sẽ mở lại các tệp nhật ký sau khi nhận tín hiệu USR1
    postrotate
        [ -s /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

Ví dụ: Quá trình luân chuyển nhật ký của nginx thất bại. Lý do sử dụng sudo là vì logrotate thường chạy mặc định dưới quyền root.

sudo /usr/sbin/logrotate -f /etc/logrotate.d/nginx
lỗi: lỗi khi tạo tệp đầu ra /var/log/nginx/access.log.1.gz: Permission denied
lỗi: lỗi khi tạo tệp đầu ra /var/log/nginx/error.log.1.gz: Permission denied

Sau khi điều chỉnh quyền cho thư mục nhật ký nginx, mọi thứ hoạt động bình thường.

sudo chown -R www-data:adm /var/log/nginx/

Một lần nữa, tôi đã gặp phải vấn đề liên quan đến quyền truy cập trên thư mục /var/log/nginx/, phát hiện ra rằng quyền của thư mục này đã bị thay đổi. Việc thực hiện lại lệnh chown đã giải quyết vấn đề. Tuy nhiên, vẫn chưa rõ nguyên nhân tại sao quyền của thư mục này lại bị thay đổi.