Edge コンポーネントのログ ローテーションを有効にする

ログ ローテーション - 複数のログファイルをローテーションするプロセスです。 システムの管理が簡素化され、 生成される場合があります。ログ ローテーションにより、自動ローテーション、圧縮、 削除、メール送信などの操作を行えます

Edge for Private Cloud の各 apigee の主なログファイル デフォルトの回転メカニズムが設定されています。たとえば、 Message Processor コンポーネントでは、次のファイルがデフォルトのローテーションで構成されています。 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-routeredge-postgres-serveredge-qpid-server

これらの edge-* コンポーネントはそれぞれ、リダイレクトされる追加のログファイルも生成します。 各コンポーネントのコンソールから出力されます。Message Processor コンポーネントの場合は このファイルの名前は /opt/apigee/var/log/edge-message-processor/edge-message-processor.log です。 他の edge-* コンポーネントでも、同様のファイルが生成されます。これらのファイルは行われるわけではありません。 logback ライブラリを使用しますが、logrotatecrontab を使用します。

始める前に

ログ ローテーションを有効にする

Edge for Private Cloud バージョン 4.52 以降では、edge-* をインストールすると 次の crontab エントリは、 このログのローテーションは、apigee ユーザーの crontab に自動的に作成されます。この cron ジョブは 時刻(デフォルトは 1 時間)に設定され、logrotate ユーティリティを使用してログをローテーションします。edge-* が複数ある場合 コンポーネントが同じノードにインストールされている場合(オールインワン インストールや Router と Message Processor を 1 つのノードにインストールすると、各コンポーネントにはそれぞれ固有の 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-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

適切なオーバーライド ファイルを開き、次の構成オーバーライドを設定します。 以下の例 毎時 0 分に実行される cron ジョブをオーバーライドします。

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 ローテーションされたファイルを圧縮するかどうか。デフォルト: 「compress」
conf_logrotate_compress_type 圧縮のタイプ。デフォルト: 「delaycompress」。圧縮を延期する 最後にローテーションされたファイルを次の logrotate サイクルに振り向けます。
conf_logrotate_size ローテーションのログサイズの上限。デフォルト: 「10M」

独自のログ ローテーション メカニズムと 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 によって実行されるコマンドの両方が含まれています。もし logrotate を使用したいが Apigee の構成ファイルを使用したくない場合は、 logrotate を所有 構成ファイルを開き、同様の logrotate コマンドを使用してログ ローテーションを実行します。