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コマンドを使用して管理できます。

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

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

手順

  1. テキスト・エディターでdse.yamlを開きます。
    dse.yamlファイルの場所は、インストールのタイプによって異なります。
    Installer-Services /etc/dse/dse.yaml
    パッケージ・インストール /etc/dse/dse.yaml
    Installer-No Services install_location/resources/dse/conf/dse.yaml
    tarボール・インストール install_location/resources/dse/conf/dse.yaml
    cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
    パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
    tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
  2. audit_logging_optionsセクションでオプションを設定します。
    オプション 説明
    cassandra_batch_size ライターがイベントを監査テーブルに書き込む前にデキューするイベントの最大数。デフォルト値は50です。イベントを同期してログに記録するには、このオプションを1未満に設定します。バッチが大きすぎるという警告が表示されたら、この数値を小さい数値に設定するか、cassandra.yamlbatch_size_warn_threshold_in_kbの設定を大きくします。
    cassandra_flush_time イベントが書き出される前にライターによってデキューされる最大時間数(単位はミリ秒)。デフォルト値は500です。イベントを同期してログに記録するには、このオプションを1未満に設定します。このオプションを使用すると、発生した監査イベントがごくわずかである場合に、テーブルに書き込まれるまでの待ち時間を短縮することができます。
    cassandra_num_writers イベントをテーブルに非同期でログに記録しているワーカー・スレッドの数。デフォルト値は0です。イベントを同期してログに記録するには、この値を1未満に設定します。イベントを非同期でログに記録する場合は、このオプションを10に設定してから始めるとよいでしょう。
    cassandra_queue_size 非同期監査ログ・ライター・スレッドを入れるキューのサイズ。デフォルト値は10,000です。キューに入りきれないほど多くの監査イベントがある場合は、キューに空き領域ができるまで新しいイベントはブロックされます。このオプションを1未満に設定すると、キュー・サイズは無制限になります。これによって負荷が非常に大きくなり、リソースが多く消費されます。
    cassandra_dropped_event_log 非同期で実行すると、エラーが発生し、キュー内のイベントがテーブルに書き込まれない場合があります。この場合、イベントはこのログ・ファイルに記録されます。デフォルト設定は/var/log/cassandra/dropped_audit_events.logです。
    cassandra_keyspace_replication このセクションは、監査ログ・テーブルが複製される方法を構成する場合に使用されます。サブオプションはclassおよびreplication_factorです。デフォルトでは、classSimpleStrategyに、replication_factorは3にそれぞれ設定されています。
    cassandra_table_compression このセクションでは、監査ログ・テーブルの圧縮を構成します。サブオプションはsstable_compressionです。デフォルトでは、sstable_compressionSnappyCompressorに設定されています。
    cassandra_table_compaction このセクションでは、監査ログ・テーブルのコンパクション・ストラテジを構成します。サブオプションはclassです。デフォルトでは、classSizeTieredCompactionStrategyに設定されています。
  3. ファイルを保存し、DataStax Enterpriseを再起動します。