記錄輪替:輪替多個記錄檔的登入與停用程序,簡化產生大量記錄檔的系統管理作業。記錄檔輪替功能可啟用記錄檔的自動輪替、壓縮、移除和郵寄功能。
在 Edge for Private Cloud 中,每個 apigee
元件的部分主要記錄檔已設為採用預設輪替機制。舉例來說,在訊息處理器元件中,下列檔案使用 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
其他 edge-*
元件 (名稱開頭為 edge-
) 也有類似的檔案,例如 edge-management-server
、edge-router
、edge-postgres-server
和 edge-qpid-server
。
edge-*
元件也都會產生額外的記錄檔,系統會將該檔案重新導向個別元件的控制台輸出內容。以訊息處理器元件來說,這個檔案稱為 /opt/apigee/var/log/edge-message-processor/edge-message-processor.log
。其他 edge-*
元件會產生類似的檔案。這些檔案不會由 Logback 程式庫完成輪替,而是使用 logrotate
和 crontab
。
事前準備
- 如果不熟悉
logrotate
設定,請參閱 logrotate 手冊。 - 如果不熟悉
crontab
設定,請參閱 Crontab 手冊。
啟用記錄輪替
從 Edge for Private Cloud 4.52 版開始,當您安裝 edge-*
元件時,系統會自動在 apigee
使用者的 crontab
中建立用於輪替這個記錄檔的 crontab
項目。根據預設,這項 Cron 工作每小時都會執行一次,並使用 logrotate
公用程式輪替記錄檔。如果在同一個節點上安裝多個 edge-*
元件 (例如在全方位安裝中,或是路由器和訊息處理器安裝在某個節點上),每個元件將有專屬的 Cron 項目用於輪替各自的記錄檔。
附註:
- 如果在安裝
edge-*
元件時,您不想自動設定logrotate
cronJob,請在用於安裝的無訊息設定檔中設定「ENABLE_LOGROTATE=n」標記。如未在安裝期間設定 Cron 工作,可以稍後再按照啟用元件的logrotate
Cron 步驟進行設定。 - 對於元件
edge-router
,系統也會預設設定額外的logrotate
Cron 工作。這個 Cron 會輪替 Nginx 產生的存取權和錯誤記錄檔。
以下範例說明您可以執行的各種設定和管理作業。
查看節點上的 Cron 項目
sudo crontab -u apigee -l
查看元件的 logrotate
Cron 項目
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s
舉例來說,如要查看 Edge-訊息處理器的 logrotate
Cron,請執行以下指令:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s
查看元件的 logrotate
設定
您可以在 $APIGEE_ROOT/<component>/logrotate/logrotate.conf
檔案中找到元件的 logrotate
設定。舉例來說,如果是邊緣訊息處理器,則可在 $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf
中找到節點的 logrotate
設定。
啟用元件的 logrotate
Cron
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
舉例來說,如要啟用 Edge-訊息處理器的 logrotate
Cron,請執行以下指令:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
停用元件的 logrotate
Cron
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d
舉例來說,如要停用 Edge-message-processor 的 logrotate
Cron,請執行:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d
變更特定 logrotate
指令的 Cron 排程
在您要變更 logrotate
Cron 排程的節點上,開啟個別元件的設定覆寫檔案。下表為 edge-*
元件的設定覆寫檔案:
元件 | 設定覆寫檔案 |
---|---|
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 |
開啟適當的覆寫檔案,然後設定以下設定覆寫。以下範例會覆寫在每小時 0 分鐘執行的 Cron 工作。
conf_logrotate_cron_duration=0 * * * *
如要指定覆寫設定,請按照下列步驟操作:
- 確保
apigee
使用者可以讀取檔案。 - 將新的 Cron 排程套用至元件:
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
舉例來說,如要將新的 Cron 排程套用至邊緣訊息處理器的 logrotate
,請輸入:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
如要確認是否已套用變更,請檢查 Cron 項目或檢視元件的 logrotate
Cron 項目。
其他 logrotate
設定
與上一節所列的步驟修改 Cron 排程類似,您也可以修改其他設定。下表說明這些設定:
設定 | 說明 |
---|---|
conf_logrotate_bin_location |
logrotate 二進位檔的位置。預設:/usr/sbin/logrotate |
conf_logrotate_status_file |
狀態檔案擷取 logrotate 的執行階段狀態 - 節目具備 apigee 使用者的讀取/寫入權限。預設值:$APIGEE_ROOT/var/run/<component>/logrotate.status |
conf_logrotate_logs |
要輪替的記錄檔。可包含萬用字元。預設值:$APIGEE_ROOT/var/log/<component>/<component>.log
|
conf_logrotate_rotate |
輪替次數。預設值:「5」 |
conf_logrotate_compress |
是否壓縮旋轉的檔案。預設值:「compress」 |
conf_logrotate_compress_type |
壓縮類型。預設值:「delaycompress」。對最新輪替的檔案進行後期壓縮,到下一個 logrotate 循環。 |
conf_logrotate_size |
輪替的記錄大小上限。預設值:「1,000 萬」 |
使用自己的記錄輪替機制和 Cron
如果 Apigee 提供的設定無法滿足 <component>.log 的輪替需求,您可以透過 Logrotate 或其他工具,使用自己的記錄輪替機制。例如,Apigee 提供的設定可讓您依大小輪替記錄,但您想要依據日期/時間或其他因素輪替記錄。在這種情況下,您應停用 Apigee 提供的 logrotate
Cron,並視需要設定自己的 Cron 工作。
如果您需要參照 Apigee 的記錄輪替 Cron 項目,可在 $APIGEE_ROOT/
檔案中找到。例如,在 edge-message-processor
的情況下,這個檔案的名稱為 $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron
。這個檔案包含 Cron 項目和 Apigee 針對記錄輪替執行的指令。如要使用 logrotate
但不想使用 Apigee 設定,您可以建立自己的 logrotate
設定檔,並使用類似的 logrotate
指令執行記錄檔輪替作業。