啟用邊緣元件的記錄檔輪替功能

記錄輪替 (旋轉和不使用多個記錄檔的過程), 簡化系統管理 會產生大量記錄檔使用記錄檔旋轉功能,即可自動旋轉、壓縮 移除和郵寄記錄檔。

在 Edge for Private Cloud 中,各個apigee的主要記錄檔 元件已設定預設的旋轉機制。舉例來說 訊息處理器元件,下列檔案採用預設旋轉角度設定 與邏輯機制互動

  • /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-routeredge-postgres-serveredge-qpid-server

每個 edge-* 元件都會產生一個額外的記錄檔,並將重新導向 顯示個別元件控制台的輸出內容就「訊息處理者」元件來說 這個檔案的名稱為 /opt/apigee/var/log/edge-message-processor/edge-message-processor.log。 其他 edge-* 元件會產生類似的檔案。這些檔案的這並非旋轉工作的方式 回呼程式庫,而是使用 logrotatecrontab

事前準備

啟用記錄輪替

從 Private Cloud 4.52 版開始,安裝 edge-* 那麼 crontab 項目 輪替這項記錄會自動在「apigee」使用者的crontab中建立。這項 Cron 工作會在每次 ,並使用 logrotate 公用程式輪替記錄。如果有多個edge-* 元件會安裝在同一個節點上 (例如,在全方位安裝中, 路由器和訊息處理器會安裝在單一節點上,則每個元件都會有自己的 輪替各自的記錄檔

注意:

  • 如果在安裝 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-message-processor 的 logrotate Cron,請執行:

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

查看元件logrotate設定

您可以在檔案中找到元件的 logrotate 設定 $APIGEE_ROOT/<component>/logrotate/logrotate.conf。 舉例來說,如果是 Edge-message-processor,節點的 logrotate 設定可 在 $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf 中找到。

啟用元件的 logrotate Cron

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

舉例來說,如要啟用 Edge-message-processor 的 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

開啟適當的覆寫檔案,然後指定下列設定覆寫值。 以下範例 會覆寫 Cron 工作,使其在每小時第 0 分鐘執行。

conf_logrotate_cron_duration=0 * * * *

如要指定覆寫設定,請按照下列步驟操作:

  1. 請確認 apigee 使用者可讀取檔案。
  2. 將新的 Cron 排程套用至元件:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

舉例來說,如要將較新的 Cron 排程套用至 Edge-message-processor 的 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 是否壓縮旋轉的檔案。預設值:「壓縮」
conf_logrotate_compress_type 壓縮類型。預設值:「delaycompress」。延遲壓縮 最新輪替檔案至下一個 Logrotate 週期。
conf_logrotate_size 輪替的記錄大小限制。預設值:「1,000 萬」

使用自己的記錄輪替機制和 Cron

如果設定不符合旋轉 <component>.log 的要求 您可以透過 Logrotate 等工具,使用自己的記錄輪替機制 或其他實體。舉例來說,Apigee 提供的設定可讓您按大小輪替記錄檔 希望根據日期/時間或其他因素輪替記錄。此時,您應該 停用 Apigee 提供的 logrotate Cron 工作,並視需要設定自己的 Cron 工作。

如需查看 Apigee 的記錄檔輪替 Cron 項目,可以在檔案中找到 $APIGEE_ROOT//logrotate/logrotate.cron。舉例來說 edge-message-processor,這個檔案稱為 $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron。這個檔案 包含 Cron 項目和 Apigee 為記錄輪替執行的指令。如果發生以下情況: 不想使用 Apigee 的設定logrotate,只要建立 擁有 logrotate 設定檔,並使用類似的 logrotate 指令執行記錄輪替。