データベース・テーブルへの監査ロギングの構成

データベース・テーブルに出力するように監査ロギングを構成するための手順。

監査ロギングを有効にし、「DataStax Enterpriseのデータ監査の有効化」の説明に従って、データベース・テーブルに出力するようにロガーを設定した場合は、dse.yamlのオプションを設定してロガーを構成できます。

監査イベントは、dse_audit.audit_logテーブルに書き込まれます。dse_audit.audit_logテーブルのデフォルトのコンパクション・ストラテジは、TimeWindowCompactionStrategy(TWCS)です。DataStax Enterprise 4.8.0以前で作成されたテーブルのコンパクション・ストラテジは、以下のように変更することを推奨します。
ALTER TABLE dse_audit.audit_log WITH COMPACTION={'class':'TimeWindowCompactionStrategy'};

ロガーは同期または非同期で実行できます。デフォルトでは、ロガーは同期して実行されます。

dse_audit.audit_logテーブルにアクセスするためのパーミッションは、GRANTまたはREVOKE CQLコマンドを使用して管理します。

同期して実行すると、イベントはテーブルに書き込まれるまで完了しません。イベントがテーブルに書き込まれてから完了するまでに障害が発生した場合、完了しなかったイベントがログに含まれることがあります。たとえば、クエリーがテーブルに記録されたものの、正常に完了していなかったといった場合があります。

非同期で実行すると、監査イベントはテーブルに書き込むようにキューに登録されますが、イベントが完了するまでログに記録されない場合があります。たとえば、クエリーをログに記録する場合、監査イベントがテーブルに書き込まれる前にクエリーが実行されることがあります。書き込みスレッドのプールがキューからのロギング監査イベントを処理し、バッチ・クエリーのテーブルに書き込みます。監査イベントを非同期で書き込む利点は、負荷が大きくても高いパフォーマンスを維持できる点にありますが、監査イベントがテーブルに書き込まれる前に障害が発生した場合は、イベントが完了していてもログに記録されないことがあります。

手順

  1. テキスト・エディターでdse.yamlを開きます。
    dse.yamlファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/dse.yaml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/dse/conf/dse.yaml
    cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/cassandra/cassandra.yaml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/cassandra/conf/cassandra.yaml
  2. 以下のaudit_logging_optionsを設定します。
    cassandra_audit_writer_options
    CassandraAuditWriterの構成オプション。
    cassandra_audit_writer_options:
        mode: sync
        batch_size: 50
        flush_time: 500
        num_writers: 10
        queue_size: 10000
        write_consistency: QUORUM
        dropped_event_log: /var/log/cassandra/dropped_audit_events.log
  3. ファイルを保存し、DataStax Enterpriseを再起動します。