1.3. Red Hat Developer Hub での監査ログファイルのローテーション
Red Hat Developer Hub のローテーションファイルにログを記録すると、監査ログを永続的に保存するのに役立ちます。
永続ストレージにより、Pod が再起動された後でもファイルがそのまま保持されます。監査ログファイルのローテーションにより、定期的に新しいファイルが作成され、新しいデータのみが最新のファイルに書き込まれます。
- デフォルトの設定
ローテーションファイルへの監査ロギングは、デフォルトでは無効になっています。有効にすると、デフォルトの動作は次のように変わります。
- 午前 0 時 (ローカルシステムのタイムゾーン) にログをローテーションします。
-
ログファイルの形式:
redhat-developer-hub-audit-%DATE%.log
-
ログファイルは
/var/log/redhat-developer-hub/audit
に保存されます。 - ログファイルの自動削除はありません。
- アーカイブされたログは gzip 圧縮されません。
- ファイルサイズの制限はありません。
監査ログは /var/log/redhat-developer-hub/audit
ディレクトリーに書き込まれます。
- ログファイル名
- 監査ログファイル名の形式は次のとおりです。
redhat-developer-hub-audit-%DATE%.log
ここで、%DATE%
は、auditLog.rotateFile.dateFormat
で指定された形式です。ファイルのローテーションを設定する際に、ファイル名をカスタマイズできます。
- ファイルのローテーション日と頻度
サポートされている
auditLog.rotateFile.frequency
オプションは次のとおりです。-
daily
: 毎日現地時間 00:00 にローテーションします -
Xm
:X
分ごとにローテーションします (X は 0 から 59 までの数字) -
Xh
:X
時間ごとにローテーションします (X は 0 から 23 までの数字) -
test
: 1 分ごとに回転する -
custom
:dateFormat
を使用してローテーションの頻度を設定します (頻度が指定されていない場合はデフォルト)
-
frequency
が Xh
、Xm
、または test
に設定されている場合、dateFormat
設定は、指定された時間コンポーネントを含む形式で設定する必要があります。そうしないと、ローテーションが期待どおりに機能しない可能性があります。
たとえば、時間単位のローテーションには dateFormat: 'YYYY-MM-DD-HH
を使用し、分単位のローテーションには dateFormat: 'YYYY-MM-DD-HH-mm
を使用します。
分単位のローテーションの例:
auditLog: rotateFile: # If you want to rotate the file every 17 minutes dateFormat: 'YYYY-MM-DD-HH-mm' frequency: '17m'
dateFormat
設定は、logFileName
の %DATE%
と、frequency
が custom
に設定されている場合はファイルローテーション頻度の両方を設定します。デフォルトの形式は YYYY-MM-DD
で、日次ローテーションを意味します。サポートされる値は Moment.js 形式 に基づいています。
frequency
が custom
に設定されている場合、指定された dateFormat
で表される日付文字列が変更されたときにローテーションが行われます。
- アーカイブおよび削除
- デフォルトでは、ログファイルはアーカイブまたは削除されません。
- 監査ファイルのローテーションを有効にして設定する
- Developer Hub の管理者は、監査ログのファイルローテーションを有効にし、ファイルログのロケーション、名前の形式、頻度、ログファイルのサイズ、保持ポリシー、アーカイブを設定できます。
監査ログファイルのローテーション設定の例
auditLog: rotateFile: enabled: true 1 logFileDirPath: /custom-path 2 logFileName: custom-audit-log-%DATE%.log 3 frequency: '12h' 4 dateFormat: 'YYYY-MM-DD' 5 utc: false 6 maxSize: 100m 7 maxFilesOrDays: 14 8 zippedArchive: true 9
- 1
- 監査ログファイルのローテーションを使用するには、
enabled
をtrue
に設定します。デフォルトではfalse
に設定されます。 - 2
- ログファイルへの絶対パス。指定されたディレクトリーが存在しない場合は、自動的に作成されます。
- 3
- デフォルトのログファイル名の形式。
- 4
- 頻度が指定されていない場合、毎日現地時間の 00:00 にデフォルトのファイルローテーションが実行されます。
- 5
- デフォルトの日付形式。
- 6
dateFormat
にローカル時間ではなく UTC 時間を使用するには、utc
をtrue
に設定します。- 7
- 監査ログの最大ファイルサイズの上限を設定します。この例では、最大サイズは 100 m です。
- 8
- ファイル数 (たとえば
14
) に設定すると、ログファイルが 14 個を超える場合に最も古いログが削除されます。日数 (たとえば5d
) に設定すると、5 日より古いログが削除されます。 - 9
gzip
を使用してローテーションされたログをアーカイブし、圧縮します。デフォルト値はfalse
です。
-
デフォルトでは、ログファイルはアーカイブまたは削除されません。ログの削除が有効になっている場合、ディレクトリーに
.<sha256 hash>-audit.json
が生成されます。このディレクトリーには、生成されたログを追跡するためにログが置かれています。ディレクトリーに含まれていないログファイルは、自動的に削除されません。 -
バックエンドが起動するたびに新しい
.<sha256 hash>-audit.json
ファイルが生成され、現在のバックエンドで引き続き使用されているものを除き、以前の監査ログは追跡されなくなったり、削除されたりします。