Cách giảm dung lượng lưu trữ nhật ký log trong Linux bằng Logrotate

Tác giả Security+, T.Tư 25, 2024, 10:10:54 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Trong hệ điều hành Linux, hầu hết tất cả các chương trình và dịch vụ chạy nền, Apache, Nginx, MySQL, v.v., đều ghi trạng thái, kết quả và lỗi của chúng vào tệp nhật ký log.

Vị trí của nhật ký log nằm trong thư mục /var/log tiêu chuẩn. Nếu có nhiều site trên máy chủ, hoặc các dịch vụ không được cấu hình đúng, các trang web có nhiều lỗi, thư mục này sẽ nhanh chóng bị lấp đầy và có thể "tắc nghẽn" toàn bộ dung lượng trống trên máy chủ.


Logrotate là một tiện ích quản lý việc xoay và nén các tệp nhật ký log. Điều đó sẽ giúp bảo vệ chủ sở hữu máy chủ khỏi việc ngừng dịch vụ và khiến các trang web không thể truy cập được.

Trong bài viết này, chúng ta sẽ xem xét cách thiết lập xoay vòng nhật ký log để dung lượng ổ đĩa không bị tắc. Hãy thiết lập cấu hình Logrotate tiêu chuẩn và chúng ta cũng sẽ xem cách tùy chỉnh nó để phù hợp với nhu cầu của bạn.

Hầu hết các bản phân phối đều cài đặt tiện ích này theo mặc định. Phiên bản có thể được kiểm tra bằng lệnh:
 
Mã nguồn [Chọn]
logrotate --version

Nếu bạn chưa cài đặt logrotate, thì bạn có thể cài đặt nó bằng các lệnh sau:

Trên Ubuntu:

Mã nguồn [Chọn]
apt install logrotate
Trên Centos:

Mã nguồn [Chọn]
yum install logrotate
Các tập tin cấu hình logrotate được đặt trong:

/etc/logrotate.conf và /etc/logrotate.d directory

Theo mặc định, tệp /etc/logrotate.conf chứa các cài đặt chung.


Thư mục /etc/logrotate.d/ chứa các tệp cấu hình, chương trình, dịch vụ mà chúng ta sẽ xoay vòng nhật ký log của chúng.

Lưu ý: Tất cả các tệp cấu hình nằm trong thư mục /etc/logrotate.d sẽ ghi đè các giá trị mặc định được đặt trong tệp cấu hình /etc/logrotate.conf


Và vì vậy, giả sử chúng ta cần xoay các bản ghi cho vestacp. Như bạn có thể thấy, một tệp cấu hình với các cài đặt tiêu chuẩn đã được tạo tự động cho nó.


Chúng ta hãy xem các chỉ thị sau:

  • /usr/local/vesta/log/*.log là đường dẫn đến các tệp cần xoay.
  • * - chỉ ra rằng tất cả các tệp trong thư mục đã cho /usr/local/vesta/log có phần mở rộng.log sẽ được dọn sạch.
  • missok  - không viết thông báo lỗi nếu thiếu tệp nhật ký log.
  • notifempty  - không thay đổi tệp nhật ký log nếu nó trống.
  • kích thước 30k - giả sử rằng cho đến khi kích thước nhật ký log vượt quá 30k, nó sẽ không được xoay. (Bạn có thể đặt giá trị của riêng mình)
  • yearly - luân chuyển mỗi năm một lần. Điều này được ghi đè hàng tuần theo mặc định. (Chúng ta hãy nhìn lại)
  • create 0600 root root - tạo một tệp sau khi xoay với quyền 0600 chủ sở hữu và nhóm root.


Dưới đây là các lệnh còn lại có thể được sử dụng để thiết lập xoay vòng. Nhiều chỉ thị khác có thể được xem bằng lệnh sau:

Mã nguồn [Chọn]
man logrotate
Hãy thêm vào tệp tiêu chuẩn:

  • rotate 2 - cách này sẽ giữ lại 2 nhật ký log cũ. Điều này sẽ ghi đè xoay vòng 4 mặc định
  • daily - xoay vòng một lần một ngày. Điều này ghi đè mặc định, mỗi tuần một lần hàng tuần.
  • compress  - để nén các tập tin được xoay. (Trong trường hợp này gzip sẽ được sử dụng, nó sẽ thêm vào các tệp.gz)

Bây giờ cấu hình chúng ta cần trông như thế này:


Bạn có thể thêm các giá trị này và các giá trị khác được mô tả trong lệnh man logrotate vào một tệp khác mà bạn cần trong thư mục /etc/logrotate.d/ hoặc bạn có thể điều chỉnh những giá trị đã tồn tại.

Để định cấu hình logrotate cho dịch vụ khác mà bạn cần hoặc dịch vụ không có tệp cấu hình trong thư mục /etc/logrotate.d/, bạn chỉ cần tạo một dịch vụ.

Sau khi tạo/sửa đổi, chúng ta có thể chạy nó bằng lệnh:

Mã nguồn [Chọn]
logrotate -f [config file path]
Bây giờ bạn có thể thêm/thay đổi các cấu hình cần thiết để không gian trống trên máy chủ không bị tắc. Công việc sẽ không bị gián đoạn cho bạn.