DataStax Enterpriseのログの形式

ログ形式は、簡単なパイプ区切りの名前/値のペアのセットです。名前/値のペア(フィールド)は、その特定のイベントの値が存在する場合にのみ、ログ行に含まれます。

ログ形式は、簡単なパイプ区切りの名前/値のペアのセットです。ペア自体はパイプ記号(|)で区切られ、各ペアの名前と値の部分はコロンで区切られています。名前/値のペア(フィールド)は、その特定のイベントの値が存在する場合にのみ、ログ行に含まれます。常に値が指定され、常に存在するフィールドもあれば、指定された操作に関連しないフィールドもあります。自動ツールによる解析を容易にするため、フィールドが存在する場合にログ行に表示される順序は予測できるようになっています。たとえば、CQL文のテキストは引用符で囲まれていませんが、存在する場合は常にログ行の最後のフィールドにあります。

フィールド・ラベル フィールド値 オプション
host desノード・アドレス 未予約
source クライアント・アドレス 未予約
user 認証ユーザー 未予約
timestamp ログ・イベントのシステム時刻 未予約
category DML/DDL/QUERYなど 未予約
type APIレベルの操作 未予約
batch バッチID 予約
ks keyspace 予約
cf カラム・ファミリー 予約
operation テキスト形式の説明 予約

操作フィールド・ラベルのテキスト形式の説明の値は現在、CQLでのみ表示されます。

監査は権限管理と完全に異なります。ただし、ログに記録されるデータ・ポイントにはクライアント・アドレスと認証ユーザーが含まれます。この認証ユーザーは、デフォルトのオーセンティケーターが上書きされていない場合は、一般のユーザーになっていることがあります。要求ロギングは、「DataStax Enterpriseのデータ監査の有効化」に記載されたカテゴリーのリストのいずれかまたはすべてに対してアクティブにできます。

CQLロギングの例

通常、SELECTクエリーはQUERYカテゴリーに分類されます。INSERT、UPDATE、およびDELETE文はDMLとして分類されます。CREATE KEYSPACEやDROP KEYSPACEなど、スキーマに影響するCQL文はDDLとして分類されます。

CQL USE

USE dsp904;

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351003707937|category:DML|type:SET_KS|ks:dsp904|operation:use dsp904;

CLI USE

USE dsp904;

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351004648848|category:DML|type:SET_KS|ks:dsp904

CQLクエリー

SELECT * FROM t0;

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351003741953|category:QUERY|type:CQL_SELECT|ks:dsp904|cf:t0|operation:select * from t0;

CQL BATCH

BEGIN BATCH
  INSERT INTO t0(id, field0) VALUES (0, 'foo')
  INSERT INTO t0(id, field0) VALUES (1, 'bar')
  DELETE FROM t1 WHERE id = 2
APPLY BATCH;

host:192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005482412|category:DML|type:CQL_UPDATE
  |batch:fc386364-245a-44c0-a5ab-12f165374a89|ks:dsp904|cf:t0
  |operation:INSERT INTO t0 ( id , field0 ) VALUES ( 0 , 'foo' )

host:192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005482413|category:DML|type:CQL_UPDATE
  |batch:fc386364-245a-44c0-a5ab-12f165374a89|ks:dsp904|cf:t0
  |operation:INSERT INTO t0 ( id , field0 ) VALUES ( 1 , 'bar' )

host:192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005482413|category:DML|type:CQL_DELETE
  |batch:fc386364-245a-44c0-a5ab-12f165374a89|ks:dsp904|cf:t1
  |operation:DELETE FROM t1 WHERE id = 2

CQL DROP KEYSPACE

DROP KEYSPACE dsp904;

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351004777354|category:DDL|type:DROP_KS
  |ks:dsp904|operation:drop keyspace dsp904;

CQLのプリペアド・ステートメント

host:/10.112.75.154|source:/127.0.0.1|user:allow_all
  |timestamp:1356046999323|category:DML|type:CQL_UPDATE
  |ks:ks|cf:cf|operation:INSERT INTO cf (id, name) VALUES (?, ?) [id=1,name=vic]

Thrift batch_mutate

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005073561|category:DML|type:INSERT
  |batch:7d13a423-4c68-4238-af06-a779697088a9|ks:Keyspace1|cf:Standard1

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005073562|category:DML|type:INSERT
  |batch:7d13a423-4c68-4238-af06-a779697088a9|ks:Keyspace1|cf:Standard1

host:/192.168.56.1|source:/192.168.56.101|user:#User allow_all groups=[]
  |timestamp:1351005073562|category:DML|type:INSERT
  |batch:7d13a423-4c68-4238-af06-a779697088a9|ks:Keyspace1|cf:Standard1

DataStax Java Driverクエリー

host:ip-10-85-22-245.ec2.internal/10.85.22.245|source:/127.0.0.1|user:anonymous
  |timestamp:1370537557052|category:DDL|type:ADD_KS
  |ks:test|operation:create keyspace test with replication = {'class':'NetworkTopologyStrategy', 'Analytics': 1};

host:ip-10-85-22-245.ec2.internal/10.85.22.245|source:/127.0.0.1|user:anonymous
  |timestamp:1370537557208|category:DDL|type:ADD_CF
  |ks:test|cf:new_cf|operation:create COLUMNFAMILY test.new_cf ( id text PRIMARY KEY , col1 int, col2 ascii, col3 int);

host:ip-10-85-22-245.ec2.internal/10.85.22.245|source:/127.0.0.1|user:anonymous
  |timestamp:1370537557236|category:DML|type:CQL_UPDATE
  |ks:test|cf:new_cf|operation:insert into test.new_cf (id, col1, col2, col3) values ('test1', 42, 'blah', 3);

host:ip-10-85-22-245.ec2.internal/10.85.22.245|source:/127.0.0.1|user:anonymous
  |timestamp:1370537704885|category:QUERY|type:CQL_SELECT
  |ks:test|cf:new_cf|operation:select * from test.new_cf;

バッチ更新

バッチ更新は、Thrift batch_mutate呼び出しから受け取るか、CQL BEGIN BATCH....APPLY BATCHブロックで受け取るかにかかわらず、以下の方法でログに記録されます。UUIDがバッチ用に生成された後、各操作が個別に報告されます。レポートの追加フィールドには、バッチIDが表示されます。