Cassandraテーブルへの監査ロギングの構成
Cassandraテーブルに出力するように監査ロギングを構成する手順
監査ロギングを有効にし、「DataStax Enterpriseでのデータ監査の有効化」の説明に従って、ロガーをCassandraテーブルに出力するように設定した場合は、dse.yamlのオプションを設定してロガーを構成できます。
監査イベントは、dse_audit.audit_logテーブルに書き込まれます。dse_audit.audit_logテーブルのデフォルトのコンパクション・ストラテジは、DateTieredCompactionStrategy(DTCS)です。DataStax Enterprise 4.8.0以前で作成されたテーブルのコンパクション・ストラテジは、次のように変更することを推奨します。
ALTER TABLE dse_audit.audit_log WITH COMPACTION={'class':'DateTieredCompactionStrategy'};
ロガーは同期または非同期で実行できます。デフォルトでは、ロガーは同期して実行されます。dse_audit.audit_log
へのパーミッションは、GRANT
またはREVOKE
CQLコマンドを使用して管理できます。
同期して実行すると、イベントはテーブルに書き込まれるまで完了しません。イベントがテーブルに書き込まれてから完了するまでに障害が発生した場合、完了しなかったイベントがログに含まれることがあります。たとえば、クエリーがテーブルに記録されたものの、正常に完了していなかったといった場合があります。
非同期で実行すると、監査イベントはテーブルに書き込むようにキューに登録されますが、イベントが完了するまでログに記録されない場合があります。たとえば、クエリーをログに記録する場合、監査イベントがテーブルに書き込まれる前にクエリーが実行されることがあります。書き込みスレッドのプールがキューからのロギング監査イベントを処理し、バッチ・クエリーのテーブルに書き込みます。監査イベントを非同期で書き込む利点は、負荷が大きくても高いパフォーマンスを維持できる点にありますが、監査イベントがテーブルに書き込まれる前に障害が発生した場合は、イベントが完了していてもログに記録されないことがあります。