Bật tính năng xoay nhật ký cho các thành phần Edge

Xoay vòng nhật ký – quá trình xoay nhiều tệp nhật ký vào và ngoài mục đích sử dụng – giúp đơn giản hoá việc quản trị các hệ thống tạo ra số lượng lớn tệp nhật ký. Tính năng xoay nhật ký cho phép tự động xoay vòng, nén, xoá và gửi tệp nhật ký qua thư.

Trong Edge dành cho đám mây riêng tư, một số tệp nhật ký chính trên mỗi thành phần apigee được định cấu hình bằng cơ chế xoay vòng mặc định. Ví dụ: trên thành phần Trình xử lý thông báo, các tệp sau đây được định cấu hình với cơ chế xoay mặc định bằng cách sử dụng cơ chế đăng nhập lại:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

Các tệp tương tự cũng tồn tại cho các thành phần edge-* khác (có tên bắt đầu bằng edge-), chẳng hạn như edge-management-server, edge-router, edge-postgres-serveredge-qpid-server.

Mỗi thành phần edge-* này cũng tạo một tệp nhật ký bổ sung. Tệp này là đầu ra được chuyển hướng trong bảng điều khiển của thành phần tương ứng. Trong trường hợp của thành phần Trình xử lý thông báo, tệp này có tên là /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Các thành phần edge-* khác sẽ tạo một tệp tương tự. Việc xoay vòng các tệp này không do thư viện nhật ký thực hiện mà sử dụng logrotatecrontab.

Trước khi bắt đầu

Bật tính năng xoay nhật ký

Kể từ Edge dành cho đám mây riêng tư phiên bản 4.52, khi bạn cài đặt một thành phần edge-*, một mục crontab để xoay vòng nhật ký này sẽ được tạo tự động trong crontab của người dùng apigee. Theo mặc định, lệnh cron này sẽ chạy mỗi giờ một lần và sử dụng tiện ích logrotate để xoay vòng nhật ký. Nếu nhiều thành phần edge-* được cài đặt trên cùng một nút (ví dụ: trong quy trình cài đặt tất cả trong một hoặc nếu bộ định tuyến và trình xử lý thông báo được cài đặt trên một nút), thì mỗi thành phần sẽ có mục nhập cron riêng để xoay nhật ký tương ứng.

Lưu ý:

  • Nếu trong quá trình cài đặt một thành phần edge-*, bạn không muốn tự động thiết lập một cronjob logrotate, hãy thiết lập cờ "ENABLE_LOGROTATE=n" trong tệp cấu hình im lặng mà bạn dùng để cài đặt. Nếu lệnh cron này không được đặt trong quá trình cài đặt, thì bạn có thể thiết lập vào thời điểm khác bằng cách làm theo các bước để bật cron logrotate của một thành phần.
  • Đối với thành phần edge-router, một công việc cron khác logrotate cũng được định cấu hình theo mặc định. Cron này xoay vòng quyền truy cập và nhật ký lỗi do Nginx tạo.

Các ví dụ sau minh hoạ nhiều cấu hình và thao tác quản trị mà bạn có thể thực hiện.

Xem các mục nhập cron trên một nút

sudo crontab -u apigee -l

Xem mục nhập cron logrotate của một thành phần

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s

Ví dụ: để xem cron logrotate của Edge-message-processor, hãy chạy:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

Xem cấu hình logrotate của thành phần

Bạn có thể tìm thấy cấu hình logrotate của một thành phần trong tệp $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Ví dụ: trong trường hợp là trình xử lý thông báo cạnh, bạn có thể tìm thấy cấu hình logrotate của nút trong $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Bật cron logrotate của một thành phần

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Ví dụ: để bật cron logrotate của Edge-message-processor, hãy chạy:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Tắt cron logrotate của một thành phần

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d

Ví dụ: để tắt cron logrotate của Edge-message-processor, hãy chạy:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

Thay đổi lịch biểu cron của một lệnh logrotate cụ thể

Trên nút mà bạn muốn thay đổi lịch biểu cron logrotate, hãy mở tệp ghi đè cấu hình của thành phần tương ứng. Các tệp ghi đè cấu hình của thành phần edge-* được liệt kê trong bảng bên dưới:

Thành phần Tệp ghi đè cấu hình
edge-message-processor $APIGEE_ROOT/customer/application/message-processor.properties
edge-management-server $APIGEE_ROOT/customer/application/management-server.properties
edge-router $APIGEE_ROOT/customer/application/router.properties
edge-postgres-server $APIGEE_ROOT/customer/application/postgres-server.properties
edge-qpid-server $APIGEE_ROOT/customer/application/qpid-serverproperties

Mở tệp ghi đè thích hợp và đặt chế độ ghi đè cấu hình sau. Ví dụ bên dưới ghi đè tác vụ theo thời gian định để chạy ở phút thứ 0 mỗi giờ.

conf_logrotate_cron_duration=0 * * * *

Cách đặt chế độ ghi đè cấu hình:

  1. Đảm bảo người dùng apigee có thể đọc được tệp này.
  2. Áp dụng lịch biểu cron mới hơn cho thành phần:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Ví dụ: để áp dụng lịch biểu cron mới hơn cho logrotate của Edge-message-processor, hãy nhập:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

Để xác minh rằng các thay đổi đã được áp dụng, hãy kiểm tra các mục nhập cron hoặc xem mục nhập cron logrotate của thành phần.

Cấu hình logrotate bổ sung

Tương tự như các bước được liệt kê trong phần trên để sửa đổi lịch biểu cron, bạn cũng có thể sửa đổi các cấu hình bổ sung. Bảng dưới đây mô tả các cấu hình này:

Cấu hình Nội dung mô tả
conf_logrotate_bin_location Vị trí của tệp nhị phân logrotate. Mặc định: /usr/sbin/logrotate
conf_logrotate_status_file Tệp trạng thái ghi lại trạng thái thời gian chạy của logrotate – hiển thị có quyền đọc/ghi cho người dùng apigee. Mặc định: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Nhật ký nào cần xoay vòng. Có thể bao gồm ký tự đại diện. Mặc định: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Số lần xoay. Mặc định: "5"
conf_logrotate_compress Liệu có nén các tệp xoay hay không. Mặc định: “nén”
conf_logrotate_compress_type Loại nén. Mặc định: “delaycompress” (tạm hoãn). Trì hoãn quá trình nén tệp xoay gần đây nhất sang chu kỳ xoay nhật ký tiếp theo.
conf_logrotate_size Ghi nhật ký giới hạn kích thước đối với chế độ xoay. Mặc định: "10 triệu"

Sử dụng cơ chế xoay vòng nhật ký và cron của riêng bạn

Nếu cấu hình do Apigee cung cấp không đáp ứng yêu cầu xoay vòng <component>.log, bạn sẽ sử dụng cơ chế xoay vòng nhật ký của riêng mình bằng các công cụ như logrotate hoặc các công cụ khác. Ví dụ: với các cấu hình do Apigee cung cấp, bạn có thể xoay vòng nhật ký theo kích thước, nhưng bạn lại muốn xoay vòng nhật ký dựa trên ngày/giờ hoặc các yếu tố khác. Trong những trường hợp như vậy, bạn nên tắt cron logrotate do Apigee cung cấp và thiết lập các cron khác của riêng mình nếu cần.

Nếu cần tham khảo mục nhập cron xoay vòng nhật ký của Apigee, bạn có thể tìm thấy trong tệp $APIGEE_ROOT//logrotate/logrotate.cron. Ví dụ: trong trường hợp của edge-message-processor, tệp này sẽ được gọi là $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Tệp này bao gồm cả mục nhập cron và lệnh do Apigee thực thi để xoay nhật ký. Nếu muốn sử dụng logrotate nhưng không muốn dùng cấu hình của Apigee, bạn có thể tạo tệp cấu hình logrotate của riêng mình và dùng lệnh logrotate tương tự để thực hiện xoay nhật ký.