ログファイル監査出力
logfile
監査出力は監査のための唯一の出力です。これは、ログディレクトリ内の <clustername>_audit.json
ファイルにデータを書き込みます。
log4j2.properties
を上書きし、監査トレイルのいずれかにアペンダーを指定しない場合、監査イベントはルートアペンダーに転送されます。デフォルトでは、これは elasticsearch.log
ファイルを指します。
ログエントリ形式
監査イベントは JSON ドキュメントとしてフォーマットされ、各イベントは <clustername>_audit.json
ファイルの別々の行に印刷されます。エントリ自体には行末区切り文字は含まれていません。監査イベントの JSON 形式はやや特異であり、ほとんどのフィールドはドット名構文に従い、順序付けられ、非 null の文字列値を含みます。この形式は、CSV に似た構造化された列形式を作成し、視覚的により簡単に検査できるようにします(同等のネストされた JSON ドキュメントと比較して)。
ただし、上記の形式の例外となるいくつかの属性があります。put
、delete
、change
、create
、および invalidate
属性は、event.type: "security_config_change"
属性を持つイベントにのみ存在し、セキュリティ変更が適用される ネストされた JSON 表現を含みます。したがって、セキュリティ構成変更の内容は、監査イベントドキュメントのトップレベルのドット名フィールドとして表示されません。これは、フィールドが特定の種類のセキュリティ変更に特有であり、他の監査イベントには表示されないためです。したがって、列形式の利点は限られています。この場合、ネストされた構造のスペース節約の利点が好まれるトレードオフです。
request.body
属性が存在する場合(検索クエリの監査を参照)、それは JSON RFC 4677 に従ってエスケープされた完全な HTTP リクエストボディを含む文字列値を持ちます。
各エントリタイプのフィールドセットと例を指定する 監査イベントタイプ のリストがあります。
ログファイル出力設定
イベントやログに記録されるその他の情報は、elasticsearch.yml
ファイルの設定を使用して制御できます。監査イベント設定 および ローカルノード情報設定 を参照してください。
リクエストボディを監査イベントに含めると、機密データがプレーンテキストで監査される可能性があることに注意してください。すべてのセキュリティ API(ユーザーのパスワードを変更するものなど)は、監査時に資格情報がフィルタリングされます。
また、ES_PATH_CONF
にある log4j2.properties
ファイルでログファイルの書き込み方法を構成できます(または ソース内の log4j2.properties の関連部分を確認してください)。デフォルトでは、監査情報は標準の Elasticsearch logs
ディレクトリにある <clustername>_audit.json
ファイルに追加されます(通常は $ES_HOME/logs
にあります)。このファイルは、1GB のファイルサイズ制限に達するか、毎日ローテーションおよびアーカイブされます。