Tablestoreインスタンス内のリソースに対して操作を実行すると、システムは自動的に監査ログを収集し、インデックスを作成します。[監査ログ] ページで、収集されたログをリアルタイムでクエリおよび分析できます。
前提条件
監査ログ機能が有効になっていること。詳細については、監査ログ機能を有効にする を参照してください。
手順
監査ログページに移動します。
Tablestoreコンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、監査ログをクリックします。
監査ログページで、クエリステートメントフィールドにクエリステートメントを入力します。
クエリステートメントは、検索ステートメントと分析ステートメントで構成され、
Search statement|Analytic statement
形式です。例:* | SELECT TableName, count(*) AS OperationCount GROUP BY TableName
。検索ステートメントと分析ステートメントは、縦棒(|)で区切られます。検索ステートメントは、Simple Log Service独自の構文を使用します。検索ステートメントは単独で実行できます。ただし、分析ステートメントは検索ステートメントと一緒に実行する必要があります。ログ分析機能を使用して、検索結果のデータまたはLogstore内のすべてのデータを分析できます。
ステートメント
説明
検索ステートメント
検索ステートメントは、1つ以上の検索条件を指定します。指定された条件を満たすログが返されます。詳細については、クエリ構文と関数を参照してください。
検索ステートメントは、キーワード、数値、数値範囲、スペース、またはアスタリスク(*)です。スペースまたはアスタリスク(*)は、フィルター条件が指定されていないことを示します。
分析ステートメント
分析ステートメントは、検索結果のデータまたはLogstore内のすべてのデータを集計または分析するために使用されます。詳細については、集計関数を参照してください。
例:
例1:最も頻繁に呼び出される上位5つの操作をクエリします。
重要Tablestoreコンソールで監査ログ機能を使用する場合、セカンダリインデックスが作成されているかどうかを確認する操作のログが自動的に生成されます。そのため、操作ログをクエリする場合は、
TableName != '$$'
条件を指定してチェックログを除外する必要があります。* | SELECT API,COUNT(API) as count where TableName != '$$' group by API order by count desc limit 5
例2:テーブルを削除したユーザーと、ユーザーが削除したテーブルをクエリします。
* | SELECT TableName,InvokerUid,time where API = 'DeleteTable'
例3:exampleinstanceインスタンスのexampletableテーブルに対して操作を実行したすべてのユーザーと、ユーザーが実行した操作をクエリします。
* | SELECT API,InvokerUid,from_unixtime(time/1000000,'Asia/shanghai') as time where InstanceName = 'exampleinstance' and TableName = 'exampletable'
右上隅の過去15分間をクリックして、ログをクエリする時間範囲を指定します。
__time__
フィールドを使用して、分析ステートメントで閉区間を指定することもできます。例:* | SELECT * FROM log WHERE __time__>1558013658 AND __time__< 1558013660
。上記のいずれかの方法で指定した時間範囲は、分単位で正確です。クエリと分析の結果には、指定した時間範囲の1分前または1分後に生成されたログが含まれる場合があります。秒単位で正確な時間範囲を指定する場合は、分析ステートメントでfrom_unixtime関数またはto_unixtime関数を使用して時間形式を変換する必要があります。
クエリ結果が表示されます。次の図は例を示しています。
説明返されるクエリ結果は、検索ステートメントによって異なります。表示されたクエリ結果が優先されます。
クエリ結果ヒストグラム、生のログ、チャート、ログクラスタリング情報など、監査ログに関する情報を表示できます。
クエリ結果ヒストグラムを表示する
クエリ結果ヒストグラムには、クエリされたログの分布が時系列で表示されます。緑色の四角形をクリックすると、より詳細なログ分布が表示されます。生のログタブで、指定した時間範囲内のクエリ結果を表示することもできます。
生のログをクエリする
生のログタブで、クエリ結果を表示できます。テーブルまたは生のデータをクリックして、ログデータを表示します。詳細については、生のログをクエリするを参照してください。
チャートを表示する
クエリステートメントを実行した後、グラフタブで、クエリと分析の結果を表示するチャートを表示できます。詳細については、チャートを表示するを参照してください。
LogReduce機能を使用する
LogReduceタブで、Logreduceを有効にするをクリックして、ログ収集中に類似性の高いログデータをクラスタリングします。詳細については、LogReduce機能を使用するを参照してください。
次の手順
デフォルトのクエリ設定を構成します。
デフォルトでは、初めて[監査ログ]ページにアクセスしたときにクエリ機能が有効になり、15分以内に生成されたログがクエリされます。ビジネス要件に基づいて、デフォルトのクエリ設定を変更できます。
監査ログページで、アイコンをクリックします。
クエリダイアログボックスで、ページに初めてアクセスしたときにクエリを有効にするをオフまたはオンにして、[カスタムクエリ時間範囲]パラメーターを構成します。
OKをクリックします。
ログをスキャンします。
スキャン機能を使用すると、インデックスを構成せずにログフィールドをスキャンして、関連するログをクエリおよび分析できます。詳細については、ログのスキャンを参照してください。
監査ログページで、アイコンをクリックしてスキャン機能を有効にします。
クエリステートメントフィールドに、スキャンステートメントを入力します。
次のいずれかの形式でスキャンステートメントを入力します:
Search statement | WHERE bool_expression
およびSearch statement|Analytic statement (標準SQL構文)
。右上隅の過去15分間をクリックして、ログをスキャンする時間範囲を指定します。
ログのアラート監視ルールを作成します。
アラート監視ルールを作成して、ログのクエリと分析の結果を監視できます。詳細については、ログのアラート監視ルールを作成するを参照してください。