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

Quay vòng nhật ký (quá trình quay vòng nhiều tệp nhật ký vào và ra khỏi quá trình 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 quay vòng nhật ký cho phép tự động quay vòng, nén, xoá và gửi tệp nhật ký qua thư.

Trong Edge 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 mặc định. Ví dụ: trên thành phần Bộ xử lý thông báo, các tệp sau được định cấu hình bằng cơ chế xoay mặc định bằng cách sử dụng logback:

  • /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ự 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-server và edge-qpid-server.

Mỗi thành phần edge-* này cũng tạo thêm một tệp nhật ký là kết quả được chuyển hướng của bảng điều khiển của thành phần tương ứng. Trong trường hợp thành phần Bộ xử lý thông báo, tệp này được gọi là /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Các thành phần edge-* khác tạo ra một tệp tương tự. Việc xoay vòng các tệp này không được thực hiện bằng thư viện logback, mà sử dụng logrotate và crontab.

Trước khi bắt đầu

Bật tính năng quay vòng nhật ký

Kể từ phiên bản Edge cho đám mây riêng tư 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ẽ tự động được tạo trong crontab của người dùng apigee. Theo mặc định, dịch vụ chạy ngầm theo thời gian định trước này sẽ chạy mỗi giờ 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 quá trình cài đặt tất cả trong một hoặc nếu bộ định tuyến và bộ 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 vòng 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 đặt cờ "ENABLE_LOGROTATE=n" trong tệp cấu hình tự động mà bạn dùng để cài đặt. Nếu dịch vụ chạy ngầm theo thời gian định trước không được thiết lập trong quá trình cài đặt, bạn có thể thiết lập sau bằng cách làm theo các bước để bật dịch vụ chạy ngầm theo thời gian định trước logrotate của một thành phần.
  • Đối với thành phần edge-router, một dịch vụ chạy ngầm theo thời gian định trước logrotate bổ sung cũng được định cấu hình theo mặc định. Cron này xoay vòng nhật ký truy cập và nhật ký lỗi do Nginx tạo.

Các ví dụ sau đây 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 cron trên một nút

sudo crontab -u apigee -l

Xem mục 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 edge-message-processor, 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 logrotate cron 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 dưới đây:

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 cấu hình ghi đè sau. Ví dụ dưới đây ghi đè dịch vụ chạy ngầm theo thời gian định trước để chạy vào phút thứ 0 của 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.
  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 cron hoặc xem mục cron của thành phần logrotate.

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 khác. Bảng dưới đây mô tả các cấu hình này:

Cấu hình 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 – cho thấy quyền đọc/ghi đối với người dùng apigee. Mặc định: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Nhật ký cần xoay vòng. Có thể chứa 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 Có nén các tệp đã xoay hay không. Mặc định: "compress"
conf_logrotate_compress_type Loại nén. Mặc định: "delaycompress". Trì hoãn việc nén tệp được xoay gần đây nhất sang chu kỳ logrotate tiếp theo.
conf_logrotate_size Giới hạn kích thước nhật ký để xoay vòng. Mặc định: "10M"

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

Nếu các yêu cầu của bạn về việc xoay vòng <component>.log không được đáp ứng bằng các cấu hình do Apigee cung cấp, bạn có thể 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ụ: các cấu hình do Apigee cung cấp cho phép bạn xoay vòng nhật ký theo kích thước nhưng bạn 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 dịch vụ chạy ngầm theo thời gian định trước logrotate do Apigee cung cấp và thiết lập dịch vụ chạy ngầm theo thời gian định trước của riêng bạn nếu cần.

Nếu cần tham chiếu đến mục cron quay vòng nhật ký của Apigee, bạn có thể tìm thấy mục nà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 đượ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 để quay vòng nhật ký. Nếu muốn sử dụng logrotate nhưng không muốn sử 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à sử dụng lệnh logrotate tương tự để thực hiện việc quay vòng nhật ký.