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.
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
- Nếu bạn chưa quen với cấu hình
logrotate, hãy đọc hướng dẫn sử dụng logrotate. - Nếu bạn chưa quen với cấu hình
crontab, hãy đọc hướng dẫn về crontab.
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 cronjoblogrotate, 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ướclogrotatecủ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ướclogrotatebổ 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:
- Đảm bảo người dùng
apigeecó thể đọc được tệp. - Á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/. 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ý.