Hướng dẫn cài đặt và sử dụng logrotate để quản lý file log trên Ubuntu 18.04

Các file log là flie quan trọng nhất đối với bảo mật hệ thống Linux. công cụ logrotate được thiết kế đặc biệt để đơn giản hóa việc quản lý các tệp nhật ký trên một hệ thống Linux cho phép tự động xoay, nén, loại bỏ và gửi các tệp nhật ký. Bạn có thể dễ dàng thiết lập logrotate để xử lý một tệp nhật ký hàng ngày, hàng tuần, hàng tháng. Chương trình logrotate được sử dụng để xoay các tệp nhật ký bằng cách xóa các tệp nhật ký cũ nhất khỏi hệ thống của bạn và tạo các tệp nhật ký mới.

Trong hướng dẫn này, tôi sẽ giải thích cách sử dụng logrotate để quản lý các bản ghi trên máy chủ Ubuntu 18.04.

Yêu cầu

  • Máy chủ chạy máy chủ Ubuntu 18.04.
  • Một người dùng không phải root với quyền sudo.

Cài đặt Logrotate

Theo mặc định, logrotate có sẵn trong máy chủ Ubuntu 18.04 LTS. Nếu không thì bạn có thể cài đặt nó bằng cách chạy lệnh sau:

sudo apt-get install logrotate -y

Khi logrotate đã được cài đặt, bạn có thể kiểm tra phiên bản của logrotate bằng cách sử dụng lệnh sau:

sudo logrotate

Đầu ra:

logrotate 3.11.0 - Copyright (C) 1995-2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License

Usage: logrotate [-dfv?] [-d|--debug] [-f|--force] [-m|--mail=command]
        [-s|--state=statefile] [-v|--verbose] [-l|--log=STRING] [--version]
        [-?|--help] [--usage] [OPTION...] 

Định cấu hình Logrotate

Theo mặc định, tệp cấu hình chính của logrotate logrotate.conf có tại /etc/logrotate.conf. Các tệp cấu hình khác có sẵn tại /etc/logrotate.d. Bạn có thể liệt kê chúng bằng lệnh sau:

ls /etc/logrotate.d

Đầu ra:

alternatives apport dpkg mysql-server rsyslog unattended-upgrades
apache2 apt lxd openproject ufw

Các tùy chọn chính của logrotate được liệt kê dưới đây:

missingok : Đừng nêu ra lỗi nếu nhật ký bị thiếu

weekly : luân phiên các tệp nhật ký mỗi tuần một lần

create : Tệp cũ được lưu dưới tên mới và tệp mới được tạo

compress : logrotate nén tệp nhật ký bằng gzip để tiết kiệm dung lượng

rotate 4 : logrotate quay một log nhất định bốn lần trước khi xóa nó, vì vậy nó giữ bốn tuần nhật ký trực tuyến

notifyempty : Không xoay tệp nhật ký khi nó trống

Theo mặc định, logrotate chạy trên cơ sở hàng ngày bằng cách thực thi kịch bản lệnh shell /etc/cron.daily/logrotate. Hãy kiểm tra việc logrotation apache bằng cách chạy lệnh sau:

sudo logrotate -d /etc/logrotate.d/apache2

Đầu ra:

reading config file /etc/logrotate.d/apache2
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries

Handling 1 logs

rotating pattern: /var/log/apache2/*.log after 1 days (14 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/access.log
Creating new state
 Now: 2018-10-11 16:04
 Last rotated at 2018-10-11 16:00
 log does not need rotating (log has been already rotated)
considering log /var/log/apache2/error.log
Creating new state
 Now: 2018-10-11 16:04
 Last rotated at 2018-10-11 16:00
 log does not need rotating (log has been already rotated)
considering log /var/log/apache2/other_vhosts_access.log
Creating new state
 Now: 2018-10-11 16:04
 Last rotated at 2018-10-11 16:00
 log does not need rotating (log has been already rotated)
not running prerotate script, since no logs will be rotated
not running postrotate script, since no logs were rotated

Theo mặc định, logrotate được chạy dưới dạng cron job hàng ngày. Bạn có thể kiểm tra /etc/cron.daily/logrotate để biết thêm thông tin về công việc cron. Bạn cũng có thể cấu hình công việc cron cho logrotate để chạy hàng giờ, hàng tuần và hàng năm.

Facebook Comments

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *